- 25 Mar, 2016 1 commit
-
-
binji authored
BUG=v8:4737 LOG=n R=jarin@chromium.org Review URL: https://codereview.chromium.org/1676613002 Cr-Commit-Position: refs/heads/master@{#35074}
-
- 24 Mar, 2016 1 commit
-
-
littledan authored
This patch implements ES2015 RegExp subclassing semantics, namely the hardest part where RegExp.prototype.exec and certain flag getters can be overridden in order to provide different behavior. This change is hidden behind a new flag, --harmony-regexp-exec. The flag guards the behavior by installing entirely different implementations of the methods which follow the new semantics. Preliminary performance tests show a 3-4x regression in the Octane RegExp benchmark. The new code doesn't call out into several fast paths that the old code supported, so this is expected. The patch is tested mostly by test262, where most RegExp tests are fixed, with the exception of deliberate spec violations for web compatibility, and for the 'sticky' flag, which is not dynamically read by this patch in all cases but rather statically compiled into the RegExp. The latter will require a follow-on patch to implement. A small additional set of tests verifies one particular case, mostly to check whether the flag mechanism works. R=adamk,yangguo@chromium.org LOG=Y BUG=v8:4602 Review URL: https://codereview.chromium.org/1596483005 Cr-Commit-Position: refs/heads/master@{#35068}
-
- 26 Feb, 2016 1 commit
-
-
bmeurer authored
The %TailCall runtime entry and the %_TailCall intrinsic is not used, and will never be used (because %TailCall doesn't actually do a tail call). We will soon have proper ES6 tail calls, which are correct and properly tested. The %Apply runtime entry is basically a super-slow, less correct version of Reflect.apply, so we can as well just use Reflect.apply, which is exposed to builtins via %reflect_apply. R=ishell@chromium.org Review URL: https://codereview.chromium.org/1739233002 Cr-Commit-Position: refs/heads/master@{#34317}
-
- 17 Feb, 2016 1 commit
-
-
bmeurer authored
Also move Object.is implementation to C++ builtin, which is faster than the current implementation. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1695743003 Cr-Commit-Position: refs/heads/master@{#34069}
-
- 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}
-
- 07 Jan, 2016 1 commit
-
-
littledan authored
This patch implements @@species, guarded behind the --harmony-species flag, on Arrays. Methods which return an Array will instead return the appropriate instance based on the ArraySpeciesCreate algorithm. The algorithm is implemented in C++ to get access to realm information and to implement some Array methods in C++, but it is also accessed from JavaScript through a new runtime function. A couple interactive Octane runs show no performance regression with the flag turned off, but turning --harmony-species on will surely have a significant regression, as Array methods now heavily use ObjectDefineProperty. BUG=v8:4093 LOG=Y R=adamk,cbruni Review URL: https://codereview.chromium.org/1560763002 Cr-Commit-Position: refs/heads/master@{#33144}
-
- 04 Jan, 2016 2 commits
-
-
littledan authored
This patch adds the basis for subclassing TypedArrays, Arrays and ArrayBuffers through the @@species hook, added in ES2015. This is the first patch in a series. This patch simply defines the @@species Symbol and installs it on the appropriate constructors. The behavior is guarded behind the --harmony-species flag. R=cbruni BUG=v8:4093 LOG=Y CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel TBR=hpayer@chromium.org Review URL: https://codereview.chromium.org/1558543002 Cr-Commit-Position: refs/heads/master@{#33095}
-
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}
-
- 22 Dec, 2015 1 commit
-
-
bmeurer authored
There's actually no point trying to do Function.prototype.toString in JavaScript, as it always calls into C++ at least once, so it only complicates things (esp. once we start optimizing bound functions). Drive-by-fix: Rename FunctionApply and FunctionCall builtins to also reflect the fact that these are builtins in the Function.prototype and not on Function itself. TBR=hpayer@chromium.org R=yangguo@chromium.org BUG=chromium:535408 LOG=n Review URL: https://codereview.chromium.org/1540953004 Cr-Commit-Position: refs/heads/master@{#32996}
-
- 11 Dec, 2015 2 commits
-
-
jkummerow authored
This avoids a pair of super-high-degree polymorphic load/store ICs, and creates the opportunity to add more fast paths if needed. Review URL: https://codereview.chromium.org/1517963002 Cr-Commit-Position: refs/heads/master@{#32799}
-
adamk authored
The main impetus is to improve performance when --harmony-tostring is enabled, thanks to using a generic property load instead of a megamorphic IC. This also reduces duplication, as the API function v8::Object::ObjectProtoToString can share the runtime implementation. The only functional change in this patch is to drop an accidental difference between the JS and API implementations: the arguments object should toString as "[object Arguments]". The JS side was corrected in https://code.google.com/p/v8/source/detail?r=3279, but the API version was missed in that patch. BUG=chromium:555127, v8:3502 LOG=n CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1509533003 Cr-Commit-Position: refs/heads/master@{#32777}
-
- 10 Dec, 2015 1 commit
-
-
littledan authored
This patch removes Promise functions and methods which are absent from the ES2015 specification when the --es-staging flag is on. The patch is being relanded after being reverted due to an unrelated bug. This version is slightly different as promise_chain is installed on the context regardless of the flag value, so that the Promise::Chain API continues to work until it is deprecated. BUG=v8:3237 R=rossberg LOG=Y Review URL: https://codereview.chromium.org/1513873002 Cr-Commit-Position: refs/heads/master@{#32772}
-
- 04 Dec, 2015 1 commit
-
-
jkummerow authored
Having beefed up GetKeys() to support everything, use it for everything now. This fixes Object.getOwnPropertyNames and Object.getOwnPropertySymbols for Proxies, and gets rid of a bunch of code duplication. BUG=v8:1543 LOG=n Review URL: https://codereview.chromium.org/1498593006 Cr-Commit-Position: refs/heads/master@{#32620}
-
- 02 Dec, 2015 1 commit
-
-
littledan authored
Revert of Disable non-standard Promise functions in staging (patchset #1 id:1 of https://codereview.chromium.org/1478533002/ ) Reason for revert: Will test better; there seems to be a bug related to this. Original issue's description: > Reland of Disable non-standard Promise functions in staging (patchset #1 id:1 of https://codereview.chromium.org/1473603002/ ) > > Reason for revert: > Breakage in Ignition seems unrelated; relanding. > > Original issue's description: > > Revert of Disable non-standard Promise functions in staging (patchset #5 id:80001 of https://codereview.chromium.org/1469543003/ ) > > > > Reason for revert: > > [Sheriff] This breaks ignition on arm sim debug: > > https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/5317 > > > > Seems to not be caught by the cq bot that builds release with dchecks. > > > > Original issue's description: > > > Disable non-standard Promise functions in staging > > > > > > This patch removes Promise functions and methods which are absent > > > from the ES2015 specification when the --es-staging flag is on. > > > > > > BUG=v8:3237 > > > R=rossberg > > > LOG=Y > > > > > > Committed: https://crrev.com/941251af7e04d50ac2243da2870249a42111221a > > > Cr-Commit-Position: refs/heads/master@{#32194} > > > > TBR=rossberg@chromium.org,littledan@chromium.org > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=v8:3237 > > > > Committed: https://crrev.com/86bd2b3c23b562213d5af158849dcd65f347a827 > > Cr-Commit-Position: refs/heads/master@{#32199} > > TBR=rossberg@chromium.org,rmcilroy@chromium.org,machenbach@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=v8:3237 > > Committed: https://crrev.com/9278b7b05a45c2089007e8b61822af96b5d0c8df > Cr-Commit-Position: refs/heads/master@{#32235} TBR=rossberg@chromium.org,rmcilroy@chromium.org,machenbach@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3237 Review URL: https://codereview.chromium.org/1493713004 Cr-Commit-Position: refs/heads/master@{#32530}
-
- 24 Nov, 2015 6 commits
-
-
littledan authored
Reland of Disable non-standard Promise functions in staging (patchset #1 id:1 of https://codereview.chromium.org/1473603002/ ) Reason for revert: Breakage in Ignition seems unrelated; relanding. Original issue's description: > Revert of Disable non-standard Promise functions in staging (patchset #5 id:80001 of https://codereview.chromium.org/1469543003/ ) > > Reason for revert: > [Sheriff] This breaks ignition on arm sim debug: > https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/5317 > > Seems to not be caught by the cq bot that builds release with dchecks. > > Original issue's description: > > Disable non-standard Promise functions in staging > > > > This patch removes Promise functions and methods which are absent > > from the ES2015 specification when the --es-staging flag is on. > > > > BUG=v8:3237 > > R=rossberg > > LOG=Y > > > > Committed: https://crrev.com/941251af7e04d50ac2243da2870249a42111221a > > Cr-Commit-Position: refs/heads/master@{#32194} > > TBR=rossberg@chromium.org,littledan@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=v8:3237 > > Committed: https://crrev.com/86bd2b3c23b562213d5af158849dcd65f347a827 > Cr-Commit-Position: refs/heads/master@{#32199} TBR=rossberg@chromium.org,rmcilroy@chromium.org,machenbach@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3237 Review URL: https://codereview.chromium.org/1478533002 Cr-Commit-Position: refs/heads/master@{#32235}
-
yangguo authored
BUG=v8:4566 LOG=N Committed: https://crrev.com/2755c5a1b1cf7fc4c5c614378e5231636e6dcff5 Cr-Commit-Position: refs/heads/master@{#32200} Review URL: https://codereview.chromium.org/1464303002 Cr-Commit-Position: refs/heads/master@{#32206}
-
yangguo authored
Revert of Implement xorshift128+ for Math.random. (patchset #6 id:100001 of https://codereview.chromium.org/1464303002/ ) Reason for revert: Test failure: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/491/steps/Mjsunit/logs/reflect-own-keys Original issue's description: > Implement xorshift128+ for Math.random. > > BUG=v8:4566 > LOG=N > > Committed: https://crrev.com/2755c5a1b1cf7fc4c5c614378e5231636e6dcff5 > Cr-Commit-Position: refs/heads/master@{#32200} TBR=bmeurer@chromium.org,jkummerow@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4566 Review URL: https://codereview.chromium.org/1475493003 Cr-Commit-Position: refs/heads/master@{#32202}
-
yangguo authored
BUG=v8:4566 LOG=N Review URL: https://codereview.chromium.org/1464303002 Cr-Commit-Position: refs/heads/master@{#32200}
-
machenbach authored
Revert of Disable non-standard Promise functions in staging (patchset #5 id:80001 of https://codereview.chromium.org/1469543003/ ) Reason for revert: [Sheriff] This breaks ignition on arm sim debug: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/5317 Seems to not be caught by the cq bot that builds release with dchecks. Original issue's description: > Disable non-standard Promise functions in staging > > This patch removes Promise functions and methods which are absent > from the ES2015 specification when the --es-staging flag is on. > > BUG=v8:3237 > R=rossberg > LOG=Y > > Committed: https://crrev.com/941251af7e04d50ac2243da2870249a42111221a > Cr-Commit-Position: refs/heads/master@{#32194} TBR=rossberg@chromium.org,littledan@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3237 Review URL: https://codereview.chromium.org/1473603002 Cr-Commit-Position: refs/heads/master@{#32199}
-
littledan authored
This patch removes Promise functions and methods which are absent from the ES2015 specification when the --es-staging flag is on. BUG=v8:3237 R=rossberg LOG=Y Review URL: https://codereview.chromium.org/1469543003 Cr-Commit-Position: refs/heads/master@{#32194}
-
- 10 Nov, 2015 1 commit
-
-
yangguo authored
R=cbruni@chromium.org Review URL: https://codereview.chromium.org/1416093006 Cr-Commit-Position: refs/heads/master@{#31910}
-
- 05 Nov, 2015 2 commits
-
-
yangguo authored
R=littledan@chromium.org BUG=v8:3715, v8:4528 LOG=Y Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 Cr-Commit-Position: refs/heads/master@{#31753} Committed: https://crrev.com/b5c80a31ad266eb38a0cf2ff756be59c66d34aa5 Cr-Commit-Position: refs/heads/master@{#31773} Committed: https://crrev.com/85494e90bb63a3a9e19a1bf862cb6bfcb0162ee9 Cr-Commit-Position: refs/heads/master@{#31782} Committed: https://crrev.com/152163c1646b45f5fc5d31a4ec2eb55d7f4a2ffc Cr-Commit-Position: refs/heads/master@{#31804} Review URL: https://codereview.chromium.org/1419823010 Cr-Commit-Position: refs/heads/master@{#31824}
-
yangguo authored
Revert of Implement flag and source getters on RegExp.prototype. (patchset #6 id:110001 of https://codereview.chromium.org/1419823010/ ) Reason for revert: browser_tests failure with --gtest_filter=ExternallyConnectableMessagingTest.EnablingAndDisabling Original issue's description: > Implement flag and source getters on RegExp.prototype. > > R=littledan@chromium.org > BUG=v8:3715, v8:4528 > LOG=Y > > Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 > Cr-Commit-Position: refs/heads/master@{#31753} > > Committed: https://crrev.com/b5c80a31ad266eb38a0cf2ff756be59c66d34aa5 > Cr-Commit-Position: refs/heads/master@{#31773} > > Committed: https://crrev.com/85494e90bb63a3a9e19a1bf862cb6bfcb0162ee9 > Cr-Commit-Position: refs/heads/master@{#31782} > > Committed: https://crrev.com/152163c1646b45f5fc5d31a4ec2eb55d7f4a2ffc > Cr-Commit-Position: refs/heads/master@{#31804} TBR=littledan@chromium.org,jochen@chromium.org,ulan@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3715, v8:4528 Review URL: https://codereview.chromium.org/1426413002 Cr-Commit-Position: refs/heads/master@{#31818}
-
- 04 Nov, 2015 5 commits
-
-
yangguo authored
R=littledan@chromium.org BUG=v8:3715, v8:4528 LOG=Y Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 Cr-Commit-Position: refs/heads/master@{#31753} Committed: https://crrev.com/b5c80a31ad266eb38a0cf2ff756be59c66d34aa5 Cr-Commit-Position: refs/heads/master@{#31773} Committed: https://crrev.com/85494e90bb63a3a9e19a1bf862cb6bfcb0162ee9 Cr-Commit-Position: refs/heads/master@{#31782} Review URL: https://codereview.chromium.org/1419823010 Cr-Commit-Position: refs/heads/master@{#31804}
-
hablich authored
Revert of Implement flag and source getters on RegExp.prototype. (patchset #6 id:110001 of https://codereview.chromium.org/1419823010/ ) Reason for revert: Breaks Chromium tests and blocks the roll: http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/124490 Original issue's description: > Implement flag and source getters on RegExp.prototype. > > R=littledan@chromium.org > BUG=v8:3715, v8:4528 > LOG=Y > > Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 > Cr-Commit-Position: refs/heads/master@{#31753} > > Committed: https://crrev.com/b5c80a31ad266eb38a0cf2ff756be59c66d34aa5 > Cr-Commit-Position: refs/heads/master@{#31773} > > Committed: https://crrev.com/85494e90bb63a3a9e19a1bf862cb6bfcb0162ee9 > Cr-Commit-Position: refs/heads/master@{#31782} TBR=littledan@chromium.org,jochen@chromium.org,ulan@chromium.org,yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3715, v8:4528 Review URL: https://codereview.chromium.org/1432683002 Cr-Commit-Position: refs/heads/master@{#31801}
-
yangguo authored
R=littledan@chromium.org BUG=v8:3715, v8:4528 LOG=Y Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 Cr-Commit-Position: refs/heads/master@{#31753} Committed: https://crrev.com/b5c80a31ad266eb38a0cf2ff756be59c66d34aa5 Cr-Commit-Position: refs/heads/master@{#31773} Review URL: https://codereview.chromium.org/1419823010 Cr-Commit-Position: refs/heads/master@{#31782}
-
yangguo authored
Revert of Implement flag and source getters on RegExp.prototype. (patchset #3 id:50001 of https://codereview.chromium.org/1419823010/ ) Reason for revert: Performance issue. Original issue's description: > Implement flag and source getters on RegExp.prototype. > > R=littledan@chromium.org > BUG=v8:3715, v8:4528 > LOG=Y > > Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 > Cr-Commit-Position: refs/heads/master@{#31753} > > Committed: https://crrev.com/b5c80a31ad266eb38a0cf2ff756be59c66d34aa5 > Cr-Commit-Position: refs/heads/master@{#31773} TBR=littledan@chromium.org,jochen@chromium.org,ulan@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3715, v8:4528 Review URL: https://codereview.chromium.org/1409013006 Cr-Commit-Position: refs/heads/master@{#31780}
-
yangguo authored
R=littledan@chromium.org BUG=v8:3715, v8:4528 LOG=Y Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 Cr-Commit-Position: refs/heads/master@{#31753} Review URL: https://codereview.chromium.org/1419823010 Cr-Commit-Position: refs/heads/master@{#31773}
-
- 03 Nov, 2015 3 commits
-
-
machenbach authored
Revert of Implement flag and source getters on RegExp.prototype. (patchset #3 id:50001 of https://codereview.chromium.org/1419823010/ ) Reason for revert: [Sheriff] Changes layout tests. Please rebase upstream first. E.g.: http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/2686 Original issue's description: > Implement flag and source getters on RegExp.prototype. > > R=littledan@chromium.org > BUG=v8:3715, v8:4528 > LOG=Y > > Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 > Cr-Commit-Position: refs/heads/master@{#31753} TBR=littledan@chromium.org,jochen@chromium.org,ulan@chromium.org,yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3715, v8:4528 Review URL: https://codereview.chromium.org/1427733005 Cr-Commit-Position: refs/heads/master@{#31758}
-
yangguo authored
R=littledan@chromium.org BUG=v8:3715, v8:4528 LOG=Y Review URL: https://codereview.chromium.org/1419823010 Cr-Commit-Position: refs/heads/master@{#31753}
-
yangguo authored
R=ishell@chromium.org Committed: https://crrev.com/aa26f5d4a11a1e5655d425ff40ced79c8ecdd55f Cr-Commit-Position: refs/heads/master@{#31722} Review URL: https://codereview.chromium.org/1421703004 Cr-Commit-Position: refs/heads/master@{#31735}
-
- 02 Nov, 2015 4 commits
-
-
mlippautz authored
Revert of Initialize maths result array in JS. (patchset #1 id:1 of https://codereview.chromium.org/1421703004/ ) Reason for revert: Failed on http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap/builds/5020 Original issue's description: > Initialize maths result array in JS. > > R=ishell@chromium.org > > Committed: https://crrev.com/aa26f5d4a11a1e5655d425ff40ced79c8ecdd55f > Cr-Commit-Position: refs/heads/master@{#31722} TBR=ishell@chromium.org,yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1409143011 Cr-Commit-Position: refs/heads/master@{#31723}
-
yangguo authored
R=ishell@chromium.org Review URL: https://codereview.chromium.org/1421703004 Cr-Commit-Position: refs/heads/master@{#31722}
-
yangguo authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1425693006 Cr-Commit-Position: refs/heads/master@{#31712}
-
yangguo authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1425333002 Cr-Commit-Position: refs/heads/master@{#31710}
-
- 22 Oct, 2015 2 commits
-
-
yangguo authored
Review URL: https://codereview.chromium.org/1420473002 Cr-Commit-Position: refs/heads/master@{#31481}
-
yangguo authored
R=cbruni@chromium.org Review URL: https://codereview.chromium.org/1413173003 Cr-Commit-Position: refs/heads/master@{#31467}
-
- 20 Oct, 2015 1 commit
-
-
karl authored
Use the simple inline function version of {Min, Max} where possible to improve performance Now uses an forced inline js function instead of a python macro to avoid expressions be evaluated twice Follow-up to CR: https://codereview.chromium.org/1331993004 Review URL: https://codereview.chromium.org/1410473002 Cr-Commit-Position: refs/heads/master@{#31411}
-
- 16 Oct, 2015 1 commit
-
-
yangguo authored
R=cbruni@chromium.org, hpayer@chromium.org Review URL: https://codereview.chromium.org/1411653002 Cr-Commit-Position: refs/heads/master@{#31331}
-
- 15 Oct, 2015 1 commit
-
-
yangguo authored
R=cbruni@chromium.org Review URL: https://codereview.chromium.org/1404943002 Cr-Commit-Position: refs/heads/master@{#31285}
-