- 02 Nov, 2016 1 commit
-
-
jkummerow authored
Revert of [ic] Experiment: disable map-specific handler cache. (patchset #1 id:1 of https://codereview.chromium.org/2462973003/ ) Reason for revert: Causes performance regressions (up to 10% on the "IC" bucket). :-( Original issue's description: > [ic] Experiment: disable map-specific handler cache. > > IC data handlers support most of the hot cases nowdays. Let's see if > the map-specific code cache still help us to improve things. > > BUG=v8:5561 TBR=ishell@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=v8:5561 Review-Url: https://codereview.chromium.org/2474653002 Cr-Commit-Position: refs/heads/master@{#40701}
-
- 01 Nov, 2016 1 commit
-
-
ishell authored
IC data handlers support most of the hot cases nowdays. Let's see if the map-specific code cache still help us to improve things. BUG=v8:5561 Review-Url: https://codereview.chromium.org/2462973003 Cr-Commit-Position: refs/heads/master@{#40685}
-
- 31 Oct, 2016 1 commit
-
-
ishell authored
This CL adds support for primitive maps to 1) PrototypeIterator, 2) PropertyHandlerCompiler::CheckPrototypes(), 3) Map::GetOrCreatePrototypeChainValidityCell(), 4) Prototype checks in data-driven ICs. BUG=v8:5561 Review-Url: https://codereview.chromium.org/2466553002 Cr-Commit-Position: refs/heads/master@{#40673}
-
- 28 Oct, 2016 2 commits
-
-
neis authored
R=gsathya@chromium.org BUG=v8:1569 Review-Url: https://codereview.chromium.org/2460883002 Cr-Commit-Position: refs/heads/master@{#40649}
-
jochen authored
This is useful for things that don't ever change, but we don't want to eagerly compute the result. Doing this from the embedder is difficult, using DefineOwnProperty would read the property to get the property descriptor, creating an endless recursion. R=verwaest@chromium.org,haraken@chromium.org BUG= Review-Url: https://codereview.chromium.org/2449783006 Cr-Commit-Position: refs/heads/master@{#40648}
-
- 27 Oct, 2016 1 commit
-
-
leszeks authored
Reuses (and renames) the SFI "mark for optimization" flag to also permit marking for baseline recompilation. The flag now represents a "tier up" request, and CompileLazy can get baseline code as well as optimized code. BUG=v8:5512 Review-Url: https://codereview.chromium.org/2448933002 Cr-Commit-Position: refs/heads/master@{#40612}
-
- 26 Oct, 2016 2 commits
-
-
neis authored
For instance, when an import cannot be resolved, actually point at the corresponding import statement. BUG=v8:1569 Review-Url: https://codereview.chromium.org/2451153002 Cr-Commit-Position: refs/heads/master@{#40594}
-
neis authored
Native setters (see AccessorInfo in accessors.h) didn't have the ability to return a result value. As a consequence of this, for instance, Reflect.set on the length property of arrays had the wrong behavior: var y = []; Object.defineProperty(y, 0, {value: 42, configurable: false}) Reflect.set(y, 'length', 0) The Reflect.set call used to return true. Now it returns false as required by the spec. BUG=v8:5401 Review-Url: https://codereview.chromium.org/2397603003 Cr-Commit-Position: refs/heads/master@{#40579}
-
- 25 Oct, 2016 2 commits
-
-
leszeks authored
This lets us investigate regressions caused by this marking while letting others continue their work without being impacted. BUG=v8:5512 Review-Url: https://codereview.chromium.org/2446673002 Cr-Commit-Position: refs/heads/master@{#40563}
-
cbruni authored
Object.create(null) is most likely to be used for dictionary-like objects. Hence it would be beneficial to directly create a slow-mode object and avoid additional overhead later-on. BUG= Review-Url: https://codereview.chromium.org/2430273007 Cr-Commit-Position: refs/heads/master@{#40551}
-
- 21 Oct, 2016 1 commit
-
-
leszeks authored
The current method of marking functions for optimization, which replaces the JSFunction's code object with one that triggers optimization, would never allow unnamed functions to be optimized. This is an issue for a style of programming which heavily relies on passing around closures. This patch sets a bit on the SharedFunctionInfo when a JSFunction is marked. When another JSFunction referring to the same SharedFunctionInfo is lazily compiled, it immediately triggers a non-concurrent optimize. BUG=v8:5512 Review-Url: https://chromiumcodereview.appspot.com/2437043002 Cr-Commit-Position: refs/heads/master@{#40506}
-
- 19 Oct, 2016 1 commit
-
-
titzer authored
R=clemensh@chromium.org,ahaas@chromium.org BUG= Review-Url: https://chromiumcodereview.appspot.com/2428343005 Cr-Commit-Position: refs/heads/master@{#40426}
-
- 17 Oct, 2016 3 commits
-
-
heimbuef authored
This adds more useful information to the v8-heap-stats tool. BUG=v8:5489 Review-Url: https://codereview.chromium.org/2394213003 Cr-Commit-Position: refs/heads/master@{#40361}
-
ishell authored
BUG= Review-Url: https://codereview.chromium.org/2428473002 Cr-Commit-Position: refs/heads/master@{#40358}
-
neis authored
Also hide some implementation details behind abstract predicates and clean up the heap verifier functions. R=adamk@chromium.org BUG=v8:1569 Review-Url: https://codereview.chromium.org/2407183002 Cr-Commit-Position: refs/heads/master@{#40336}
-
- 14 Oct, 2016 1 commit
-
-
jgruber authored
Now that all accesses to the last match info are in C++ and TF code, we can finally turn the last match info into a FixedArray. Similar to the ArrayList, it uses its first field to store its length and grows dynamically in amortized O(1) time. Unlike previously, this means that the last match info pointer stored on the context can actually change (in case the FixedArray needs to grow). BUG=v8:5339 Review-Url: https://codereview.chromium.org/2415103002 Cr-Commit-Position: refs/heads/master@{#40308}
-
- 13 Oct, 2016 3 commits
-
-
mvstanton authored
R=ishell@chromium.org BUG= Review-Url: https://codereview.chromium.org/2410353004 Cr-Commit-Position: refs/heads/master@{#40270}
-
marja authored
It belongs there more logically. In addition, this is a pre-step needed for preparsing the parameters of a preparsed function. In addition, move the "subtract rest parameter from arity" logic from Parser to (Pre)?ParserFormalParameters. BUG=v8:5515 Review-Url: https://codereview.chromium.org/2414003002 Cr-Commit-Position: refs/heads/master@{#40258}
-
jgruber authored
This moves the implementation of @@replace from regexp.js to builtins-regexp.cc (the TurboFan fast path) and runtime-regexp.cc (slow path). The fast path handles all cases in which the regexp itself is an unmodified JSRegExp instance, the given 'replace' argument is not callable and does not contain any '$' characters (i.e. we are doing a string replacement). BUG=v8:5339 Review-Url: https://codereview.chromium.org/2398423002 Cr-Commit-Position: refs/heads/master@{#40253}
-
- 12 Oct, 2016 2 commits
-
-
jgruber authored
This CL is in preparation for the upcoming port of RegExp.prototype.replace, which will need use these methods in runtime-regexp.cc. Moving them in advance makes that diff less noisy. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2398413002 Cr-Commit-Position: refs/heads/master@{#40229}
-
bmeurer authored
We want to extend the use of this code dependency, so the name does no longer reflect the purpose. R=ishell@chromium.org Review-Url: https://codereview.chromium.org/2410293003 Cr-Commit-Position: refs/heads/master@{#40210}
-
- 11 Oct, 2016 2 commits
-
-
adamk authored
This is a re-land of https://codereview.chromium.org/2393303002/ with an additional call to DisposeModuleEmbedderData() added to fix lsan failures. Unifies the approaches used for storing the specifier -> module mapping and the module -> directory mapping, using std::unordered_maps for both and storing them per-Context. This requires adding a method to the v8::Module API to get a hash code for a Module, but allows slimming down the API in return: gone are SetEmbedderData/GetEmbedderData, along with the fourth argument to ResolveModuleCallback. Besides a simpler API, this allows d8 to get closer to the HTML loader, which requires each Realm to have a persistent module map (though this capability is not yet exercised by any tests). BUG=v8:1569 TBR=neis@chromium.org,jochen@chromium.org Review-Url: https://codereview.chromium.org/2405313002 Cr-Commit-Position: refs/heads/master@{#40186}
-
adamk authored
Revert of [modules] Store Module metadata in per-Context EmbedderData (patchset #7 id:120001 of https://codereview.chromium.org/2393303002/ ) Reason for revert: Fails under LeakSanitizer on auto-roll fyi bot: https://build.chromium.org/p/client.v8.fyi/builders/Auto-roll%20-%20release%20process/builds/49447 Original issue's description: > [modules] Store Module metadata in per-Context EmbedderData > > Unifies the approaches used for storing the specifier -> module mapping > and the module -> directory mapping, using std::unordered_maps for both > and storing them per-Context. > > This requires adding a method to the v8::Module API to get a hash code > for a Module, but allows slimming down the API in return: gone are > SetEmbedderData/GetEmbedderData, along with the fourth argument > to ResolveModuleCallback. > > Besides a simpler API, this allows d8 to get closer to the HTML loader, > which requires each Realm to have a persistent module map (though this > capability is not yet exercised by any tests). > > BUG=v8:1569 > > Committed: https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277 > Cr-Commit-Position: refs/heads/master@{#40133} TBR=jochen@chromium.org,neis@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:1569 Review-Url: https://codereview.chromium.org/2406973003 Cr-Commit-Position: refs/heads/master@{#40145}
-
- 10 Oct, 2016 3 commits
-
-
adamk authored
Unifies the approaches used for storing the specifier -> module mapping and the module -> directory mapping, using std::unordered_maps for both and storing them per-Context. This requires adding a method to the v8::Module API to get a hash code for a Module, but allows slimming down the API in return: gone are SetEmbedderData/GetEmbedderData, along with the fourth argument to ResolveModuleCallback. Besides a simpler API, this allows d8 to get closer to the HTML loader, which requires each Realm to have a persistent module map (though this capability is not yet exercised by any tests). BUG=v8:1569 Review-Url: https://codereview.chromium.org/2393303002 Cr-Commit-Position: refs/heads/master@{#40133}
-
petermarshall authored
Also add a test for when the first argument is null or undefined, as there are no tests that cover this currently. BUG=v8:5364 Review-Url: https://codereview.chromium.org/2399423003 Cr-Commit-Position: refs/heads/master@{#40127}
-
jgruber authored
This CL ports RegExp.prototype.test, RegExp.prototype.match and RegExp.prototype.search to C++. Performance regressions are expected but should be improved in an upcoming CL. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2394713003 Cr-Commit-Position: refs/heads/master@{#40122}
-
- 07 Oct, 2016 10 commits
-
-
adamk authored
This allows us to stop using a Symbol, set as the name of the Module's SharedFunctionInfo, as our storage for a hash. As part of this, centralize the code for generating a random, non-zero hash code in one place (there were previously two copies of this code, and I needed to call it from a third file). BUG=v8:5483 TBR=jochen@chromium.org Review-Url: https://codereview.chromium.org/2395233003 Cr-Commit-Position: refs/heads/master@{#40102}
-
neis authored
This implements namespace imports (import * as foo from "bar"), except for the @@iterator property on namespace objects (to be done later). R=adamk@chromium.org BUG=v8:1569 Review-Url: https://codereview.chromium.org/2388153003 Cr-Commit-Position: refs/heads/master@{#40096}
-
petermarshall authored
BUG=v8:5364 Review-Url: https://codereview.chromium.org/2350963004 Cr-Commit-Position: refs/heads/master@{#40093}
-
mstarzinger authored
This removes the restriction of only allowing lazy compilation for top-level eval code with a context. We can by now compile such code without a concrete closure. R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2400973002 Cr-Commit-Position: refs/heads/master@{#40089}
-
jgruber authored
BUG= Committed: https://crrev.com/7db0ecdec3cf330766575cb7973b983f3f1e3020 Review-Url: https://codereview.chromium.org/2381843002 Cr-Original-Commit-Position: refs/heads/master@{#40080} Cr-Commit-Position: refs/heads/master@{#40087}
-
Mike Stanton authored
(GcStress failure was unrelated.) At one time, we hoped to generate the same code for different native contexts. But in truth, much performance comes from optimizing on the native context. Now we abandon this pathway. BUG= TBR=bmeurer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true Review URL: https://codereview.chromium.org/2402663002 . Cr-Commit-Position: refs/heads/master@{#40086}
-
jgruber authored
This reverts commit 7db0ecde. Manual revert since automatic revert is too large for the web interface. BUG= TBR=bmeurer@chromium.org,mstarzinger@chromium.org,yangguo@chromium.org,ahaas@chromium.org NOPRESUBMIT=true NOTREECHECKS=true Review-Url: https://codereview.chromium.org/2396353002 Cr-Commit-Position: refs/heads/master@{#40082}
-
mvstanton authored
Revert of [turbofan] Discard the shared code entry in the optimized code map. (patchset #3 id:40001 of https://codereview.chromium.org/2401653002/ ) Reason for revert: Possible GCSTRESS failure, investigating. Original issue's description: > [turbofan] Discard the shared code entry in the optimized code map. > > At one time, we hoped to generate the same code for different > native contexts. But in truth, much performance comes from optimizing > on the native context. Now we abandon this pathway. > > BUG= > > Committed: https://crrev.com/55af3c44c99a6e4cd6d53df775023d760ad2b2c3 > Cr-Commit-Position: refs/heads/master@{#40079} TBR=mstarzinger@chromium.org,ishell@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2403453002 Cr-Commit-Position: refs/heads/master@{#40081}
-
jgruber authored
BUG= Review-Url: https://codereview.chromium.org/2381843002 Cr-Commit-Position: refs/heads/master@{#40080}
-
mvstanton authored
At one time, we hoped to generate the same code for different native contexts. But in truth, much performance comes from optimizing on the native context. Now we abandon this pathway. BUG= Review-Url: https://codereview.chromium.org/2401653002 Cr-Commit-Position: refs/heads/master@{#40079}
-
- 06 Oct, 2016 1 commit
-
-
mstarzinger authored
Now that the scope chain is deserialized directly from the chain of {ScopeInfo} objects, it is no longer needed to provide a context. This makes the {AllowsLazyCompilationWithoutContext} predicate coincide with the more general {AllowsLazyCompilation}. Remove the former. R=jochen@chromium.org Review-Url: https://codereview.chromium.org/2399853002 Cr-Commit-Position: refs/heads/master@{#40042}
-
- 30 Sep, 2016 2 commits
-
-
neis authored
Before evaluating a module, all variables declared at the top-level in _any_ of the modules in the dependency graph must be initialized. This is observable because a module A can access a variable imported from module B (e.g. a function) at a point when module B's body hasn't been evaluated yet. We achieve this by implementing modules internally as generators with two states (not initialized, initialized). R=adamk@chromium.org BUG=v8:1569 CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg Committed: https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20 Committed: https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88 Review-Url: https://codereview.chromium.org/2375793002 Cr-Original-Original-Commit-Position: refs/heads/master@{#39871} Cr-Original-Commit-Position: refs/heads/master@{#39892} Cr-Commit-Position: refs/heads/master@{#39900}
-
bmeurer authored
Revert of Reland: [modules] Properly initialize declared variables. (patchset #6 id:100001 of https://codereview.chromium.org/2375793002/ ) Reason for revert: Speculative revert for christmas tree Original issue's description: > Reland: [modules] Properly initialize declared variables. > > Before evaluating a module, all variables declared at the top-level > in _any_ of the modules in the dependency graph must be initialized. > This is observable because a module A can access a variable imported > from module B (e.g. a function) at a point when module B's body hasn't > been evaluated yet. > > We achieve this by implementing modules internally as generators with > two states (not initialized, initialized). > > R=adamk@chromium.org > BUG=v8:1569 > CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg > > Committed: https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20 > Committed: https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88 > Cr-Original-Commit-Position: refs/heads/master@{#39871} > Cr-Commit-Position: refs/heads/master@{#39892} TBR=adamk@chromium.org,mstarzinger@chromium.org,machenbach@chromium.org,neis@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:1569 Review-Url: https://codereview.chromium.org/2387593002 Cr-Commit-Position: refs/heads/master@{#39896}
-
- 29 Sep, 2016 1 commit
-
-
neis authored
Before evaluating a module, all variables declared at the top-level in _any_ of the modules in the dependency graph must be initialized. This is observable because a module A can access a variable imported from module B (e.g. a function) at a point when module B's body hasn't been evaluated yet. We achieve this by implementing modules internally as generators with two states (not initialized, initialized). R=adamk@chromium.org BUG=v8:1569 CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg Committed: https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20 Review-Url: https://codereview.chromium.org/2375793002 Cr-Original-Commit-Position: refs/heads/master@{#39871} Cr-Commit-Position: refs/heads/master@{#39892}
-