- 11 Feb, 2016 2 commits
-
-
mvstanton authored
BUG= Committed: https://crrev.com/5833e8e8a437cd66405784263ccc45e73470fd42 Cr-Commit-Position: refs/heads/master@{#33870} Review URL: https://codereview.chromium.org/1683043003 Cr-Commit-Position: refs/heads/master@{#33890}
-
bmeurer authored
There are a bunch of places in our builtins where we use %_Arguments and %_ArgumentsLength for no good reason, as arguments object and/or rest parameter is as good and performant in these cases. Now the only uses of %_Arguments and %_ArgumentsLength left are in string.js, which requires dedicated investigation. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_dbg R=yangguo@chromium.org Committed: https://crrev.com/2160429fd458e3c095475e718c97f77ac90d906f Cr-Commit-Position: refs/heads/master@{#33834} Review URL: https://codereview.chromium.org/1678953004 Cr-Commit-Position: refs/heads/master@{#33881}
-
- 10 Feb, 2016 4 commits
-
-
machenbach authored
Revert of Implement symbol @@hasInstance for ES6 instanceof support. (patchset #2 id:20001 of https://codereview.chromium.org/1683043003/ ) Reason for revert: [Sheriff] Breaks: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/1382/ Original issue's description: > Implement symbol @@hasInstance for ES6 instanceof support. > > BUG= > > Committed: https://crrev.com/5833e8e8a437cd66405784263ccc45e73470fd42 > Cr-Commit-Position: refs/heads/master@{#33870} TBR=bmeurer@chromium.org,mvstanton@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/1686123002 Cr-Commit-Position: refs/heads/master@{#33871}
-
mvstanton authored
BUG= Review URL: https://codereview.chromium.org/1683043003 Cr-Commit-Position: refs/heads/master@{#33870}
-
yangguo authored
R=littledan@chromium.org, verwaest@chromium.org BUG=v8:4524 LOG=N Review URL: https://codereview.chromium.org/1679123007 Cr-Commit-Position: refs/heads/master@{#33862}
-
littledan authored
If Array.from is passed an iterable, then it will copy the contents to the newly created Array (or subclass). The iteration protocol here includes calling IteratorClose if the loop is exited early due to an exception thrown. This patch converts Array.from to use a for-of loop rather than explicitly invoking the iteration protocol so that, when IteratorClose is invoked on early for-of exit, then Array.from will call IteratorClose in the appropriate case. R=neis LOG=Y BUG=v8:4739 Review URL: https://codereview.chromium.org/1686433003 Cr-Commit-Position: refs/heads/master@{#33859}
-
- 09 Feb, 2016 3 commits
-
-
bmeurer authored
Revert of [builtins] Remove bunch of uses of %_Arguments and %_ArgumentsLength. (patchset #1 id:1 of https://codereview.chromium.org/1678953004/ ) Reason for revert: Breaks tree Original issue's description: > [builtins] Remove bunch of uses of %_Arguments and %_ArgumentsLength. > > There are a bunch of places in our builtins where we use %_Arguments and > %_ArgumentsLength for no good reason, as arguments object and/or rest > parameter is as good and performant in these cases. Now the only uses > of %_Arguments and %_ArgumentsLength left are in string.js, which > requires dedicated investigation. > > R=yangguo@chromium.org > > Committed: https://crrev.com/2160429fd458e3c095475e718c97f77ac90d906f > Cr-Commit-Position: refs/heads/master@{#33834} TBR=yangguo@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/1677063005 Cr-Commit-Position: refs/heads/master@{#33835}
-
bmeurer authored
There are a bunch of places in our builtins where we use %_Arguments and %_ArgumentsLength for no good reason, as arguments object and/or rest parameter is as good and performant in these cases. Now the only uses of %_Arguments and %_ArgumentsLength left are in string.js, which requires dedicated investigation. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1678953004 Cr-Commit-Position: refs/heads/master@{#33834}
-
bmeurer authored
By now only the default %TypedArray%.prototype.sort compare function and the JS implementation of SameValueZero were still using the odd %_IsMinusZero intrinsic, whose semantics both included a number check (actually HeapNumber test) plus testing if the heap number stores the special -0 value. In both cases we already know that we deal with number so we can reduce it to a simple number test for -0, which can be expressed via dividing 1 by that value and checking the sign of the result. In case of the compare function, we can be even smarter and work with the reciprocal values in case x and y are equal to 0 (although long term we should probably rewrite the fast case for the typed array sorting function in C++ anyway, which will be way, way faster than our handwritten callback-style, type-feedback polluted JS implementation). R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1680783002 Cr-Commit-Position: refs/heads/master@{#33833}
-
- 08 Feb, 2016 1 commit
-
-
littledan authored
ES2016 TypedArray subclassing semantics break the Node.js Buffer module, also used on the web. I wrote a pull request against the web and Node versions to fix the issue, but the pull request has not yet been granted, and this is blocking shipping the change. For now, this patch extends the web compatibility workaround to the --harmony-species flag, so that Symbol.species and associated subclassing semantics can ship independently. R=cbruni BUG=v8:4665 LOG=Y Review URL: https://codereview.chromium.org/1678123002 Cr-Commit-Position: refs/heads/master@{#33826}
-
- 05 Feb, 2016 1 commit
-
-
bmeurer authored
The implementation of Object.getOwnPropertyDescriptor always called into C++ anyway, so there's no need to have this JavaScript wrapper around at all. CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_chromium_rel_ng R=yangguo@chromium.org Committed: https://crrev.com/3fdd37b028f4711d0f6dcb038f575ce08ef0cfa3 Cr-Commit-Position: refs/heads/master@{#33379} Review URL: https://codereview.chromium.org/1606783002 Cr-Commit-Position: refs/heads/master@{#33773}
-
- 04 Feb, 2016 3 commits
-
-
neis authored
Note: This is currently only used by yield*, we still need to support it in other places (such as for-of loops). It can be used manually of course. (This CL does not touch the full-codegen implementation of yield* because that code is already dead. The yield* desugaring already supports return and doesn't need to be touched.) BUG=v8:3566 LOG=y Review URL: https://codereview.chromium.org/1639343005 Cr-Commit-Position: refs/heads/master@{#33744}
-
bmeurer authored
The spec requires all Math functions to first call ToNumber on all arguments before doing any other observable operation. So early return in case of Infinity is not valid. Drive-by-fix: Remove the use of %_Arguments / %_ArgumentsLength and use (strict) arguments instead of allocating a temporary InternalArray explicitly. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1669773002 Cr-Commit-Position: refs/heads/master@{#33717}
-
bmeurer authored
No need to micro-optimize here, and in almost all cases here, using arguments should result in roughly the same code w/ Crankshaft anyway. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1664513007 Cr-Commit-Position: refs/heads/master@{#33716}
-
- 03 Feb, 2016 3 commits
-
-
adamk authored
This removes --harmony-completion, --harmony-concat-spreadable, and --harmony-tolength and moves the appropriate tests from harmony/ to es6/. Review URL: https://codereview.chromium.org/1667453002 Cr-Commit-Position: refs/heads/master@{#33712}
-
kozyatinskiy authored
A lot of deverlopers use deprecated sourceURL syntax. We should add console warning message before removing this. Original CL: https://codereview.chromium.org/1495633002/ BUG=chromium:558998 LOG=Y R=yangguo@chromium.org,hablich@chromium.org,adamk@chromium.org Review URL: https://codereview.chromium.org/1654223003 Cr-Commit-Position: refs/heads/master@{#33709}
-
yangguo authored
BUG=v8:4717 LOG=N Review URL: https://codereview.chromium.org/1663543003 Cr-Commit-Position: refs/heads/master@{#33706}
-
- 02 Feb, 2016 1 commit
-
-
bmeurer authored
There's no point in having %_IsFunction as inline intrinsic, as it is only used in non performance critical code, which is already full of runtime calls anyway, so %IsFunction will do the trick as well. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1658123002 Cr-Commit-Position: refs/heads/master@{#33660}
-
- 28 Jan, 2016 1 commit
-
-
bmeurer authored
The previous versions of Math.max and Math.min made it difficult to optimize those (that's why we already have custom code in Crankshaft), and due to lack of ideas what to do about the variable number of arguments, we will probably need to stick in special code in TurboFan as well; so inlining those builtins is off the table, hence there's no real advantage in having them around as "not quite JS" with extra work necessary in the optimizing compilers to still make those builtins somewhat fast in cases where we cannot inline them (also there's a tricky deopt loop in Crankshaft related to Math.min and Math.max, but that will be dealt with later). So to sum up: Instead of trying to make Math.max and Math.min semi-fast in the optimizing compilers with weird work-arounds support %_Arguments %_ArgumentsLength, we do provide the optimal code as native builtins instead and call it a day (which gives a nice performance boost on some benchmarks). R=jarin@chromium.org Review URL: https://codereview.chromium.org/1641083003 Cr-Commit-Position: refs/heads/master@{#33582}
-
- 27 Jan, 2016 1 commit
-
-
neis authored
In a generator function, the parser rewrites a return statement into a "final" yield. A final yield used to close the generator, which was incorrect because the return may occur inside a try-finally clause and so the generator may not yet terminate. BUG= Review URL: https://codereview.chromium.org/1634553002 Cr-Commit-Position: refs/heads/master@{#33537}
-
- 26 Jan, 2016 2 commits
-
-
littledan authored
Functions like DataView.prototype.getUint8 should have length 1, and DataView.prototype.setUint8 should have length 2, as their endianness arguments are optional. Additionally, TypedArray.prototype.set.length should be 2. This follows the ES2015 specification, and a new test262 test tests for it. This patch fixes the functions' lengths. R=adamk Review URL: https://codereview.chromium.org/1636953003 Cr-Commit-Position: refs/heads/master@{#33531}
-
littledan authored
SpiderMonkey switched to 2, test262 tests for 2, and 2 is a reasonable, natural value. R=yangguo Review URL: https://codereview.chromium.org/1616233002 Cr-Commit-Position: refs/heads/master@{#33504}
-
- 25 Jan, 2016 1 commit
-
-
littledan authored
This patch is a workaround to the performance regression caused by implementing the ES2015 TypedArray prototype chain: Include a per-TypedArray-subclass length getter so that the superclass getter does not become polymorphic. The patch appears to fix a regression in the Gameboy Octane benchmark. BUG=chromium:579905 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1624383003 Cr-Commit-Position: refs/heads/master@{#33501}
-
- 20 Jan, 2016 3 commits
-
-
bmeurer authored
The Object.getOwnPropertyNames method always calls into C++ anyway, so there's no point in having the JavaScript wrapper around at all. Drive-by-fix: Inline GetOwnEnumerablePropertyNames into its single call site. CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_chromium_rel_ng R=yangguo@chromium.org Committed: https://crrev.com/bf027fe756f62b4abcac8aa08134c8c5ed055620 Cr-Commit-Position: refs/heads/master@{#33380} Review URL: https://codereview.chromium.org/1605803002 Cr-Commit-Position: refs/heads/master@{#33417}
-
hablich authored
Revert of [builtins] Migrate Object.getOwnPropertyDescriptor to C++. (patchset #1 id:1 of https://codereview.chromium.org/1606783002/ ) Reason for revert: Breaks roll: https://codereview.chromium.org/1603953002/ Original issue's description: > [builtins] Migrate Object.getOwnPropertyDescriptor to C++. > > The implementation of Object.getOwnPropertyDescriptor always called into > C++ anyway, so there's no need to have this JavaScript wrapper around at > all. > > R=yangguo@chromium.org > > Committed: https://crrev.com/3fdd37b028f4711d0f6dcb038f575ce08ef0cfa3 > Cr-Commit-Position: refs/heads/master@{#33379} TBR=yangguo@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review URL: https://codereview.chromium.org/1609023003 Cr-Commit-Position: refs/heads/master@{#33404}
-
hablich authored
Revert of [runtime] Migrate Object.getOwnPropertyNames to C++. (patchset #2 id:20001 of https://codereview.chromium.org/1605803002/ ) Reason for revert: Breaks roll: https://codereview.chromium.org/1603953002/ Original issue's description: > [runtime] Migrate Object.getOwnPropertyNames to C++. > > The Object.getOwnPropertyNames method always calls into C++ anyway, > so there's no point in having the JavaScript wrapper around at all. > > Drive-by-fix: Inline GetOwnEnumerablePropertyNames into its single > call site. > > R=yangguo@chromium.org > > Committed: https://crrev.com/bf027fe756f62b4abcac8aa08134c8c5ed055620 > Cr-Commit-Position: refs/heads/master@{#33380} TBR=yangguo@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review URL: https://codereview.chromium.org/1609173002 Cr-Commit-Position: refs/heads/master@{#33399}
-
- 19 Jan, 2016 4 commits
-
-
littledan authored
This patch implements one aspect of ES2015 RegExp subclassing: String.prototype.replace is separated into two parts, a method on RegExp.prototype in case the first argument is a RegExp, and the String.prototype.replace method, which handles the string pattern case. This separation is described in the ES2015 specification. Most of the patch is simply moving code from string.js to regexp.js. R=yangguo LOG=Y BUG=v8:4343 Review URL: https://codereview.chromium.org/1590673002 Cr-Commit-Position: refs/heads/master@{#33393}
-
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}
-
bmeurer authored
The Object.getOwnPropertyNames method always calls into C++ anyway, so there's no point in having the JavaScript wrapper around at all. Drive-by-fix: Inline GetOwnEnumerablePropertyNames into its single call site. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1605803002 Cr-Commit-Position: refs/heads/master@{#33380}
-
bmeurer authored
The implementation of Object.getOwnPropertyDescriptor always called into C++ anyway, so there's no need to have this JavaScript wrapper around at all. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1606783002 Cr-Commit-Position: refs/heads/master@{#33379}
-
- 18 Jan, 2016 1 commit
-
-
neis authored
R=bmeurer@chromium.org BUG=chromium:578775 LOG=n Review URL: https://codereview.chromium.org/1605483002 Cr-Commit-Position: refs/heads/master@{#33356}
-
- 15 Jan, 2016 1 commit
-
-
bmeurer authored
The Object.getOwnPropertySymbols() calls into C++ at least once on every possible path, so no point in having the JavaScript wrapper. Drive-by-cleanup: Also move Symbol.prototype creation to C++ as well. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1587153003 Cr-Commit-Position: refs/heads/master@{#33318}
-
- 14 Jan, 2016 1 commit
-
-
littledan authored
Previous changes with subclassable builtins and @@species were a bit aggressive in making TypedArray.prototype.subarray act like the ES2016 specification in terms of returning an instance of the subclass as a result. It turns out that Node.js, and extracted libraries for the web, subclass TypedArrays but don't expect the subclass constructor to be called by subarray. @@species will provide an escape hatch, but it has not shipped yet, and will take some time for uptake by libraries. For now, this patch makes TypedArray.prototype.subarray fall back to constructing an instance of the parent TypedArray class, such as Uint8Array. R=adamk LOG=Y BUG=v8:4665 Review URL: https://codereview.chromium.org/1583773005 Cr-Commit-Position: refs/heads/master@{#33312}
-
- 13 Jan, 2016 2 commits
-
-
bmeurer authored
Also migrate the Number constructor to a native builtin, using the same mechanism already used by the String constructor. Otherwise just parsing and compiling the Number constructor to optimized code already eats 2ms on desktop for no good reason, and the resulting optimized code is not even close to awesome. Drive-by-fix: Use correct context for the [[Construct]] case of the String constructor as well, and share some code with it. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1573243009 Cr-Commit-Position: refs/heads/master@{#33265}
-
adamk authored
Review URL: https://codereview.chromium.org/1580123002 Cr-Commit-Position: refs/heads/master@{#33255}
-
- 12 Jan, 2016 5 commits
-
-
bmeurer authored
No need to distribute the setup of the Function global property across three different places, instead do everything in a single place during bootstrapping. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1577703005 Cr-Commit-Position: refs/heads/master@{#33242}
-
bmeurer authored
This migrates the remaining Date builtins to C++ and removes obsolete intrinsics and JavaScript wrappers. This reduces the overhead imposed by the Date builtins, and will allow us to optimize them later in the TurboFan compiler, while the interpreter doesn't need to worry about them. R=yangguo@chromium.org BUG=chromium:576574 LOG=n Committed: https://crrev.com/1e51af1a5c80b1650de47dd4bc8f846fa2d85281 Cr-Commit-Position: refs/heads/master@{#33228} Review URL: https://codereview.chromium.org/1579613002 Cr-Commit-Position: refs/heads/master@{#33231}
-
machenbach authored
Revert of [builtins] Refactor the remaining Date builtins. (patchset #2 id:20001 of https://codereview.chromium.org/1579613002/ ) Reason for revert: [Sheriff] Breaks https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20noi18n%20-%20debug/builds/5711 Original issue's description: > [builtins] Refactor the remaining Date builtins. > > This migrates the remaining Date builtins to C++ and removes obsolete > intrinsics and JavaScript wrappers. This reduces the overhead imposed > by the Date builtins, and will allow us to optimize them later in the > TurboFan compiler, while the interpreter doesn't need to worry about > them. > > R=yangguo@chromium.org > BUG=chromium:576574 > LOG=n > > Committed: https://crrev.com/1e51af1a5c80b1650de47dd4bc8f846fa2d85281 > Cr-Commit-Position: refs/heads/master@{#33228} 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 BUG=chromium:576574 Review URL: https://codereview.chromium.org/1574223002 Cr-Commit-Position: refs/heads/master@{#33230}
-
bmeurer authored
This migrates the remaining Date builtins to C++ and removes obsolete intrinsics and JavaScript wrappers. This reduces the overhead imposed by the Date builtins, and will allow us to optimize them later in the TurboFan compiler, while the interpreter doesn't need to worry about them. R=yangguo@chromium.org BUG=chromium:576574 LOG=n Review URL: https://codereview.chromium.org/1579613002 Cr-Commit-Position: refs/heads/master@{#33228}
-
littledan authored
This patch makes Promise.prototype.then use @@species as specified in ES2015. The fix is hoped for by certain users, such as legacy core.js versions which encounter an unhandled Promise reject (complete with an ugly console message) when Promise subclassing is supported in a mostly correct way, and we do error checking on Promise constructors, but @@species is not supported. BUG=chromium:575314,v8:4633 LOG=Y R=adamk Review URL: https://codereview.chromium.org/1577223002 Cr-Commit-Position: refs/heads/master@{#33225}
-