- 29 Apr, 2016 2 commits
-
-
jkummerow authored
Reland of Remove more dead code after Object.observe removal (patchset #1 id:1 of https://codereview.chromium.org/1929293002/ ) This moves __{define,lookup}{Getter,Setter}__ to builtins.cc. Compared to the first attempt, this patch now preserves non-spec-compliant legacy behavior and does not throw on failure. Original review: https://codereview.chromium.org/1904313004 Review-Url: https://codereview.chromium.org/1932163002 Cr-Commit-Position: refs/heads/master@{#35899}
-
machenbach authored
Revert of Remove more dead code after Object.observe removal (patchset #5 id:80001 of https://codereview.chromium.org/1904313004/ ) Reason for revert: [Sheriff] Looks like this breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/6442 Original issue's description: > Remove more dead code after Object.observe removal > > This moves __{define,lookup}{Getter,Setter}__ to builtins.cc to free up the JavaScript implementation of DefineOwnProperty for deletion. TBR=verwaest@chromium.org,jkummerow@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/1929293002 Cr-Commit-Position: refs/heads/master@{#35886}
-
- 28 Apr, 2016 1 commit
-
-
jkummerow authored
This moves __{define,lookup}{Getter,Setter}__ to builtins.cc to free up the JavaScript implementation of DefineOwnProperty for deletion. Review-Url: https://codereview.chromium.org/1904313004 Cr-Commit-Position: refs/heads/master@{#35876}
-
- 25 Apr, 2016 2 commits
-
-
neis authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1919763002 Cr-Commit-Position: refs/heads/master@{#35761}
-
neis authored
More v8natives cleanup to come... R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1922453002 Cr-Commit-Position: refs/heads/master@{#35759}
-
- 22 Apr, 2016 1 commit
-
-
adamk authored
The feature was deprecated in M49 and flagged off in M50. This patch removes it entirely from the codebase. Review URL: https://codereview.chromium.org/1909433003 Cr-Commit-Position: refs/heads/master@{#35714}
-
- 19 Apr, 2016 1 commit
-
-
adamk authored
Now that all 'const' declarations are of the ES2015 variety, the only use of CONST_LEGACY is for function name bindings in sloppy mode named function expressions. This patch aims to delete all code meant to handle other cases, which mostly had to do with hole initialization/hole checks. Since function name bindings are initialized at entry to a function, it's impossible to ever observe one in an uninitialized state. To simplify the patch further, it removes the `IMPORT` VariableMode, as it's not likely to be needed (IMPORT is identical to CONST for the purpose of VariableMode). Review URL: https://codereview.chromium.org/1895973002 Cr-Commit-Position: refs/heads/master@{#35632}
-
- 05 Apr, 2016 1 commit
-
-
neis authored
When seeing a rest pattern, we used to get the remaining elements from the iterator by calling %concat_iterable_to_array on it. This was wrong because it caused an observable [[Get]] for @@iterator (which the iterator may not even provide). This CL gets rid of the call to %concat_iterable_to_array and does the iteration manually in a simple while-loop. It also gets rid of %concat_iterable_to_array itself because there aren't any other uses of it. BUG=v8:4759 LOG=n R=adamk@chromium.org Review URL: https://codereview.chromium.org/1852703002 Cr-Commit-Position: refs/heads/master@{#35251}
-
- 31 Mar, 2016 1 commit
-
-
yangguo authored
R=bmeurer@chromium.org, cbruni@chromium.org, ulan@chromium.org BUG=chromium:124206,chromium:569811 LOG=N Review URL: https://codereview.chromium.org/1834633003 Cr-Commit-Position: refs/heads/master@{#35145}
-
- 28 Mar, 2016 1 commit
-
-
bmeurer authored
This way we avoid the second deoptimization for the Math.floor and Math.ceil builtins when -0 is involved. We still deoptimize the inlined Crankshaft version in various cases, that's a separate issue. The algorithm used for implement CodeStubAssembler::Float64Floor is vaguely based on the fast math version used in the libm of various BSDs, but had to be reengineered to match the EcmaScript specification. R=epertoso@chromium.org BUG=v8:2890, v8:4059 LOG=n Review URL: https://codereview.chromium.org/1828253002 Cr-Commit-Position: refs/heads/master@{#35083}
-
- 22 Mar, 2016 1 commit
-
-
bmeurer authored
This CL adds support for builtins with JavaScript linkage written using the TurboFan CodeStubAssembler, but with a JSCall descriptor (which was already supported thanks to a previous patch by Ben Smith). As a first example, we convert the Math.sqrt builtin and thereby get rid of the %_MathSqrt intrinsic, which causes trouble for the representation selection pass in the JavaScript pipeline. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1824993002 Cr-Commit-Position: refs/heads/master@{#34989}
-
- 18 Mar, 2016 1 commit
-
-
caitpotter88 authored
Implements Stage 4 proposal from http://rwaldron.github.io/exponentiation-operator/, without adding any knowledge of the feature to compiler backends. BUG=v8:3915 LOG=Y R=adamk@chromium.org, rossberg@chromium.org, littledan@chromium.org Review URL: https://codereview.chromium.org/1678303002 Cr-Commit-Position: refs/heads/master@{#34890}
-
- 01 Mar, 2016 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org BUG=v8:3956 LOG=n Review URL: https://codereview.chromium.org/1731063007 Cr-Commit-Position: refs/heads/master@{#34398}
-
- 26 Feb, 2016 1 commit
-
-
jochen authored
The keys are always positive integers, so use an UnseededNumberDictionary to store them instead of an ObjectHashTable R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1741623003 Cr-Commit-Position: refs/heads/master@{#34325}
-
- 22 Feb, 2016 1 commit
-
-
littledan authored
In ES2016, the Proxy enumerate trap is removed. This patch changes for-in iteration on Proxies to use the ownKeys trap. Due to the clean organization of that code, the patch basically consists of deletions. R=adamk LOG=Y BUG=v8:4768 Review URL: https://codereview.chromium.org/1717893002 Cr-Commit-Position: refs/heads/master@{#34200}
-
- 19 Feb, 2016 1 commit
-
-
mvstanton authored
This is a rework of the instanceof operator to support ES6 semantics (as per section 12.10.4 of the spec: https://tc39.github.io/ecma262/#sec-instanceofoperator). It's behind flag --harmony-instanceof for now, which is turned on for staging. BUG=v8:4447 LOG=N Review URL: https://codereview.chromium.org/1692713005 Cr-Commit-Position: refs/heads/master@{#34170}
-
- 06 Feb, 2016 1 commit
-
-
ishell authored
[api] Make ObjectTemplate::SetNativeDataProperty() work even if the ObjectTemplate does not have a constructor. Previously ObjectTemplate::New() logic relied on the fact that all the accessor properties are already installed in the initial map of the function object of the constructor FunctionTemplate. When the FunctionTemplate were instantiated the accessors of the instance templates from the whole inheritance chain were accumulated and added to the initial map. ObjectTemplate::SetSetAccessor() used to explicitly ensure that the ObjectTemplate has a constructor and therefore an initial map to add all accessors to. The new approach is to add all the accessors and data properties to the object exactly when the ObjectTemplate is instantiated. In order to keep it fast we now cache the object boilerplates in the Isolate::template_instantiations_cache (the former function_cache), so the object creation turns to be a deep copying of the boilerplate object. BUG=chromium:579009 LOG=Y Committed: https://crrev.com/6a118774244d087b5979e9291d628a994f21d59d Cr-Commit-Position: refs/heads/master@{#33674} Review URL: https://codereview.chromium.org/1642223003 Cr-Commit-Position: refs/heads/master@{#33798}
-
- 03 Feb, 2016 1 commit
-
-
hablich authored
Revert of [api] Make ObjectTemplate::SetNativeDataProperty() work even if the ObjectTemplate does not have a … (patchset #3 id:80001 of https://codereview.chromium.org/1642223003/ ) Reason for revert: Fails a lot of layout tests and blocks the roll. Can be easily reproduced with a local Chromium checkout. Reference: https://codereview.chromium.org/1652413003/ Original issue's description: > [api] Make ObjectTemplate::SetNativeDataProperty() work even if the ObjectTemplate does not have a constructor. > > Previously ObjectTemplate::New() logic relied on the fact that all the accessor properties are already installed in the initial map of the function object of the constructor FunctionTemplate. > When the FunctionTemplate were instantiated the accessors of the instance templates from the whole inheritance chain were accumulated and added to the initial map. > ObjectTemplate::SetSetAccessor() used to explicitly ensure that the ObjectTemplate has a constructor and therefore an initial map to add all accessors to. > > The new approach is to add all the accessors and data properties to the object exactly when the ObjectTemplate is instantiated. In order to keep it fast we now cache the object boilerplates in the Isolate::template_instantiations_cache (the former function_cache), so the object creation turns to be a deep copying of the boilerplate object. > > This CL also prohibits non-primitive properties in ObjectTemplate to avoid potential cross-context leaks. > > BUG=chromium:579009 > LOG=Y > > Committed: https://crrev.com/6a118774244d087b5979e9291d628a994f21d59d > Cr-Commit-Position: refs/heads/master@{#33674} TBR=verwaest@chromium.org,ishell@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:579009 Review URL: https://codereview.chromium.org/1660263003 Cr-Commit-Position: refs/heads/master@{#33698}
-
- 02 Feb, 2016 1 commit
-
-
ishell authored
[api] Make ObjectTemplate::SetNativeDataProperty() work even if the ObjectTemplate does not have a constructor. Previously ObjectTemplate::New() logic relied on the fact that all the accessor properties are already installed in the initial map of the function object of the constructor FunctionTemplate. When the FunctionTemplate were instantiated the accessors of the instance templates from the whole inheritance chain were accumulated and added to the initial map. ObjectTemplate::SetSetAccessor() used to explicitly ensure that the ObjectTemplate has a constructor and therefore an initial map to add all accessors to. The new approach is to add all the accessors and data properties to the object exactly when the ObjectTemplate is instantiated. In order to keep it fast we now cache the object boilerplates in the Isolate::template_instantiations_cache (the former function_cache), so the object creation turns to be a deep copying of the boilerplate object. This CL also prohibits non-primitive properties in ObjectTemplate to avoid potential cross-context leaks. BUG=chromium:579009 LOG=Y Review URL: https://codereview.chromium.org/1642223003 Cr-Commit-Position: refs/heads/master@{#33674}
-
- 01 Feb, 2016 1 commit
-
-
yangguo authored
In the debugger we are interested in getting the context for the current frame, which is usually a function context. To do that, we used to call Context::declaration_context, which may also return a block context. This is wrong and can lead to crashes. Instead, we now use a newly introduced Context::closure_context, which skips block contexts. This works fine for the debugger, since we have other means to find and materialize block contexts. R=rossberg@chromium.org BUG=chromium:582051 LOG=N Review URL: https://codereview.chromium.org/1648263002 Cr-Commit-Position: refs/heads/master@{#33627}
-
- 20 Jan, 2016 3 commits
-
-
bmeurer authored
This change improves performance for the common case of Object.getOwnPropertyDescriptor by up 3x-4x, where we just return a property descriptor object for a regular data or accessor property. CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_chromium_rel_ng R=yangguo@chromium.org Committed: https://crrev.com/ffa9e82235b20c523ebb1151c6196bc6232296b9 Cr-Commit-Position: refs/heads/master@{#33398} Review URL: https://codereview.chromium.org/1607943003 Cr-Commit-Position: refs/heads/master@{#33415}
-
hablich authored
Revert of [runtime] Introduce maps for the likely cases of FromPropertyDescriptor. (patchset #1 id:1 of https://codereview.chromium.org/1607943003/ ) Reason for revert: Predecessor CL suspect for roll breakage: https://codereview.chromium.org/1610563002 Original issue's description: > [runtime] Introduce maps for the likely cases of FromPropertyDescriptor. > > This change improves performance for the common case of > Object.getOwnPropertyDescriptor by up 3x-4x, where we just > return a property descriptor object for a regular data or > accessor property. > > R=yangguo@chromium.org > > Committed: https://crrev.com/ffa9e82235b20c523ebb1151c6196bc6232296b9 > Cr-Commit-Position: refs/heads/master@{#33398} TBR=yangguo@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1604243002 Cr-Commit-Position: refs/heads/master@{#33403}
-
bmeurer authored
This change improves performance for the common case of Object.getOwnPropertyDescriptor by up 3x-4x, where we just return a property descriptor object for a regular data or accessor property. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1607943003 Cr-Commit-Position: refs/heads/master@{#33398}
-
- 19 Jan, 2016 1 commit
-
-
nikolaos authored
After 1564083002, spread expressions are desugared and should not survive in the AST after parsing. This patch removes dead code related to this. It also eliminates the kSpread bailout reason and the concat_iterable_to_array_builtin. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1592713002 Cr-Commit-Position: refs/heads/master@{#33385}
-
- 08 Jan, 2016 1 commit
-
-
bmeurer authored
Everything necessary to implement Object.keys efficiently is already available in C++ land for quite some time now, and only the thin JavaScript wrapper was left, so get rid of that as well and move the whole builtin to C++ instead. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1567963002 Cr-Commit-Position: refs/heads/master@{#33167}
-
- 05 Jan, 2016 1 commit
-
-
bmeurer authored
Almost all of the Date builtins always call into C++ at least once anyway, so parsing, compiling and executing the JavaScript wrappers is just a waste of time. The most important part here is the Date constructor itself, which is one of the blockers for new.target in TurboFan, because compiling the Date constructor takes too much time with TurboFan (for no reason since we end up in C++ anway). R=cbruni@chromium.org Review URL: https://codereview.chromium.org/1556333002 Cr-Commit-Position: refs/heads/master@{#33109}
-
- 04 Jan, 2016 1 commit
-
-
bmeurer authored
The Object.freeze, Object.isExtensible, Object.isFrozen, Object.isSealed, Object.preventExtensions and Object.seal builtins were already implemented in C++, but they still had some funny JavaScript wrappers that just called into the C++ implementation on every (interesting) execution path. Review URL: https://codereview.chromium.org/1553043002 Cr-Commit-Position: refs/heads/master@{#33074}
-
- 17 Dec, 2015 4 commits
-
-
bradnelson authored
Add an internal field to each wasm function to keep a reference to the module. (So the GC can do the right thing when you only hold references to wasm functions but not the module). Use Realloc carefully, to avoid copying from out of bounds. Make snprintf use platform independent. Don't disconnect external arraybuffers provided for the heap. R=ahaas@chromium.org BUG= Review URL: https://codereview.chromium.org/1531243003 Cr-Commit-Position: refs/heads/master@{#32951}
-
Benedikt Meurer authored
Introduce a new Apply builtin that forms a correct and optimizable foundation for the Function.prototype.apply, Reflect.construct and Reflect.apply builtins (which properly does the PrepareForTailCall as required by the ES2015 spec). The new Apply builtin avoids going to the runtime if it is safe to just access the backing store elements of the argArray, i.e. if you pass a JSArray with no holes, or an unmapped, unmodified sloppy or strict arguments object. mips/mips64 ports by Balazs Kilvady <balazs.kilvady@imgtec.com> CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel BUG=v8:4413, v8:4430 LOG=n R=yangguo@chromium.org Committed: https://chromium.googlesource.com/v8/v8/+/e4d2538911f6cb4b626830ccbb3c1f5746542697 Review URL: https://codereview.chromium.org/1523753002 . Cr-Commit-Position: refs/heads/master@{#32929}
-
Benedikt Meurer authored
Revert of [es6] Correct Function.prototype.apply, Reflect.construct and Reflect.apply. (patchset #5 id:80001 of https://codereview.chromium.org/1523753002/ ) Reason for revert: Breaks TSAN somewhow: http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/7000 Original issue's description: > [es6] Correct Function.prototype.apply, Reflect.construct and Reflect.apply. > > Introduce a new Apply builtin that forms a correct and optimizable > foundation for the Function.prototype.apply, Reflect.construct and > Reflect.apply builtins (which properly does the PrepareForTailCall > as required by the ES2015 spec). > > The new Apply builtin avoids going to the runtime if it is safe to > just access the backing store elements of the argArray, i.e. if you > pass a JSArray with no holes, or an unmapped, unmodified sloppy or > strict arguments object. > > mips/mips64 ports by Balazs Kilvady <balazs.kilvady@imgtec.com> > > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel > BUG=v8:4413, v8:4430 > LOG=n > R=yangguo@chromium.org > > Committed: https://chromium.googlesource.com/v8/v8/+/e4d2538911f6cb4b626830ccbb3c1f5746542697 TBR=yangguo@chromium.org,paul.lind@imgtec.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4413, v8:4430 Review URL: https://codereview.chromium.org/1533803002 . Cr-Commit-Position: refs/heads/master@{#32928}
-
Benedikt Meurer authored
Introduce a new Apply builtin that forms a correct and optimizable foundation for the Function.prototype.apply, Reflect.construct and Reflect.apply builtins (which properly does the PrepareForTailCall as required by the ES2015 spec). The new Apply builtin avoids going to the runtime if it is safe to just access the backing store elements of the argArray, i.e. if you pass a JSArray with no holes, or an unmapped, unmodified sloppy or strict arguments object. mips/mips64 ports by Balazs Kilvady <balazs.kilvady@imgtec.com> CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel BUG=v8:4413, v8:4430 LOG=n R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1523753002 . Cr-Commit-Position: refs/heads/master@{#32927}
-
- 14 Dec, 2015 1 commit
-
-
neis authored
This CL tries to correctly support the following: - stringifying a proxy, - stringifying with a proxy as replacer (callable or arraylike), - stringifying with a replacer that returns a proxy, - parsing with a callable proxy as reviver, - parsing with a reviver that inserts proxies into the object, - and whatever else you can imagine. This also fixes some bugs observable without proxies. BUG=v8:3139,v8:1543 LOG=n Review URL: https://codereview.chromium.org/1515133002 Cr-Commit-Position: refs/heads/master@{#32843}
-
- 11 Dec, 2015 1 commit
-
-
bmeurer authored
No need to have an indirection to get to the initial JSArray maps from the native context; we only cache the fast elements maps anyway, so those could live on the native context directly. This will also integrate nicely with the load/store propagation in TurboFan (once we propagate the immutable flag for FieldAccess as well). Drive-by-fix: Also don't embed any of the initial JSArray maps in TurboFan generated code when allocating a new JSArray, but instead always load the appropriate map from the native context. This way we ensure that we never leak a reference to one of those maps and its as efficient as embedding a constant map. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1516433005 Cr-Commit-Position: refs/heads/master@{#32779}
-
- 10 Dec, 2015 1 commit
-
-
verwaest authored
BUG=v8:3900, v8:3931, v8:1543, v8:3330 LOG=n Review URL: https://codereview.chromium.org/1511893002 Cr-Commit-Position: refs/heads/master@{#32731}
-
- 09 Dec, 2015 4 commits
-
-
verwaest authored
Make Error.prototype.toString spec compliant; and fix various side-effect-free error printing methods R=yangguo@chromium.org LOG=n Committed: https://crrev.com/5dffa35350d0f57402806e6bd87a914e1d5933e4 Cr-Commit-Position: refs/heads/master@{#32695} Review URL: https://codereview.chromium.org/1507273002 Cr-Commit-Position: refs/heads/master@{#32720}
-
machenbach authored
Revert of Make Error.prototype.toString spec compliant; and fix various side-effect-free error printing metho… (patchset #2 id:20001 of https://codereview.chromium.org/1507273002/ ) Reason for revert: [Sheriff] Breaks layout tests. Please rebase upstream first: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/3334 Original issue's description: > Make Error.prototype.toString spec compliant; and fix various side-effect-free error printing methods > > R=yangguo@chromium.org > LOG=n > > Committed: https://crrev.com/5dffa35350d0f57402806e6bd87a914e1d5933e4 > Cr-Commit-Position: refs/heads/master@{#32695} TBR=yangguo@chromium.org,bmeurer@chromium.org,verwaest@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1510173002 Cr-Commit-Position: refs/heads/master@{#32700}
-
mvstanton authored
It's expensive to walk all shared function infos during the gc atomic pause. Instead, use WeakCells to implement this structure without manual clearing. Reland due to a bug when reusing entries in the optimized code map. BUG= Review URL: https://codereview.chromium.org/1508703002 Cr-Commit-Position: refs/heads/master@{#32696}
-
verwaest authored
Make Error.prototype.toString spec compliant; and fix various side-effect-free error printing methods R=yangguo@chromium.org LOG=n Review URL: https://codereview.chromium.org/1507273002 Cr-Commit-Position: refs/heads/master@{#32695}
-
- 08 Dec, 2015 1 commit
-
-
cbruni authored
BUG=v8:1543 LOG=N Review URL: https://codereview.chromium.org/1499593003 Cr-Commit-Position: refs/heads/master@{#32675}
-
- 07 Dec, 2015 1 commit
-
-
verwaest authored
Error still to be done, since that's not yet available in the bootstrapper. BUG=v8:3900, v8:3931, v8:1543, v8:3330 LOG=n Review URL: https://codereview.chromium.org/1499923002 Cr-Commit-Position: refs/heads/master@{#32662}
-