- 18 Mar, 2016 1 commit
-
-
verwaest authored
BUG=chromium:594953 LOG=n Review URL: https://codereview.chromium.org/1817443003 Cr-Commit-Position: refs/heads/master@{#34893}
-
- 15 Mar, 2016 1 commit
-
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1794233006 Cr-Commit-Position: refs/heads/master@{#34775}
-
- 14 Mar, 2016 1 commit
-
-
verwaest authored
This significantly speeds up String(array). BUG= Review URL: https://codereview.chromium.org/1775403008 Cr-Commit-Position: refs/heads/master@{#34745}
-
- 11 Mar, 2016 1 commit
-
-
machenbach authored
Revert of Replace PushIfAbsent by a Stack object and move StringBuilderJoin to JS (patchset #6 id:100001 of https://codereview.chromium.org/1775403008/ ) Reason for revert: [Sheriff] This lets a gc stress test time out: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/2337/steps/Mjsunit%20%28flakes%29/logs/regress-542823 The test ran in <2sec before this. Please fix the test as well on a reland. Original issue's description: > Replace PushIfAbsent by a Stack object and move StringBuilderJoin to JS > > This significantly speeds up String(array). > BUG= > > Committed: https://crrev.com/c91faa0b39b62025460eb9f8b578e20d88f3549e > Cr-Commit-Position: refs/heads/master@{#34696} TBR=cbruni@chromium.org,adamk@chromium.org,bmeurer@chromium.org,verwaest@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/1785003004 Cr-Commit-Position: refs/heads/master@{#34706}
-
- 10 Mar, 2016 1 commit
-
-
verwaest authored
This significantly speeds up String(array). BUG= Review URL: https://codereview.chromium.org/1775403008 Cr-Commit-Position: refs/heads/master@{#34696}
-
- 01 Mar, 2016 1 commit
-
-
neis authored
The code used to [[Get]] the first element twice instead of once, which can be observed (one of the kangax tests does so). R=rossberg BUG= Review URL: https://codereview.chromium.org/1747933002 Cr-Commit-Position: refs/heads/master@{#34383}
-
- 25 Feb, 2016 1 commit
-
-
jkummerow authored
When there is no receiver object, plain function calls are a few percent faster than %_Call(). This patch also fixes the HAS_INDEX macro used in a bunch of Array.prototype functions to properly check for elements inherited from prototypes. Review URL: https://codereview.chromium.org/1706213002 Cr-Commit-Position: refs/heads/master@{#34269}
-
- 23 Feb, 2016 1 commit
-
-
littledan authored
A recent ES2016 draft spec clarification indicates that, if -0 is passed into Array.prototype.indexOf or Array.prototype.lastIndexOf as the starting index, and the result is found at index 0, then +0 rather than -0 should be returned. This patch ensures that V8 has that result, which is consistent with what some other browsers return. The patch allows a couple test262 tests to pass. R=adamk LOG=Y Review URL: https://codereview.chromium.org/1729653002 Cr-Commit-Position: refs/heads/master@{#34229}
-
- 19 Feb, 2016 1 commit
-
-
bmeurer authored
This intrinsic was only supported in fullcodegen, and is actually no longer relevant for SunSpider peak performance it seems, so let's get rid of it and maybe just implement Array.prototype.join with a fast path at some point instead. R=mstarzinger@chromium.org Committed: https://crrev.com/ccf12b4bede3f1ce3ce14fb33bcc4041525a40af Cr-Commit-Position: refs/heads/master@{#34084} Review URL: https://codereview.chromium.org/1708523002 Cr-Commit-Position: refs/heads/master@{#34146}
-
- 17 Feb, 2016 3 commits
-
-
machenbach authored
Revert of [fullcodegen] Remove the hacky %_FastOneByteArrayJoin intrinsic. (patchset #1 id:1 of https://codereview.chromium.org/1708523002/ ) Reason for revert: [Sheriff] Speculative revert for adding arm flakes: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm%20-%20sim/builds/5756 https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20novfp3/builds/3375/ And some more... Original issue's description: > [fullcodegen] Remove the hacky %_FastOneByteArrayJoin intrinsic. > > This intrinsic was only supported in fullcodegen, and is actually no > longer relevant for SunSpider peak performance it seems, so let's get > rid of it and maybe just implement Array.prototype.join with a fast > path at some point instead. > > R=mstarzinger@chromium.org > > Committed: https://crrev.com/ccf12b4bede3f1ce3ce14fb33bcc4041525a40af > Cr-Commit-Position: refs/heads/master@{#34084} TBR=mstarzinger@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/1709693002 Cr-Commit-Position: refs/heads/master@{#34091}
-
bmeurer authored
This intrinsic was only supported in fullcodegen, and is actually no longer relevant for SunSpider peak performance it seems, so let's get rid of it and maybe just implement Array.prototype.join with a fast path at some point instead. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1708523002 Cr-Commit-Position: refs/heads/master@{#34084}
-
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}
-
- 11 Feb, 2016 1 commit
-
-
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 1 commit
-
-
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 2 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}
-
- 03 Feb, 2016 1 commit
-
-
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}
-
- 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 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 1 commit
-
-
neis authored
And remove confusing comment. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1531843003 Cr-Commit-Position: refs/heads/master@{#32935}
-
- 12 Dec, 2015 1 commit
-
-
adamk authored
Array.prototype.includes shipped in Chrome 47. Review URL: https://codereview.chromium.org/1513843006 Cr-Commit-Position: refs/heads/master@{#32818}
-
- 11 Dec, 2015 1 commit
-
-
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}
-
- 08 Dec, 2015 1 commit
-
-
jkummerow authored
Use %DeleteProperty_Strict instead. Review URL: https://codereview.chromium.org/1508743002 Cr-Commit-Position: refs/heads/master@{#32673}
-
- 07 Dec, 2015 1 commit
-
-
jkummerow authored
Also delete a bunch of dead code from src/js/. Review URL: https://codereview.chromium.org/1502593002 Cr-Commit-Position: refs/heads/master@{#32650}
-
- 03 Dec, 2015 1 commit
-
-
neis authored
An array is either a JSArray or a proxy whose target is an array. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1497483004 Cr-Commit-Position: refs/heads/master@{#32558}
-
- 26 Nov, 2015 1 commit
-
-
yangguo authored
R=verwaest@chromium.org Committed: https://crrev.com/93eb633214e0f97bf70ae30d2a07b7fbbaa78266 Cr-Commit-Position: refs/heads/master@{#32285} Review URL: https://codereview.chromium.org/1463803002 Cr-Commit-Position: refs/heads/master@{#32339}
-
- 25 Nov, 2015 2 commits
-
-
machenbach authored
Revert of [debugger] flood function for stepping before calling it. (patchset #7 id:120001 of https://codereview.chromium.org/1463803002/ ) Reason for revert: [Sheriff] Breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/3074 Original issue's description: > [debugger] flood function for stepping before calling it. > > R=verwaest@chromium.org > > Committed: https://crrev.com/93eb633214e0f97bf70ae30d2a07b7fbbaa78266 > Cr-Commit-Position: refs/heads/master@{#32285} TBR=verwaest@chromium.org,mstarzinger@chromium.org,yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1474943005 Cr-Commit-Position: refs/heads/master@{#32299}
-
yangguo authored
R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1463803002 Cr-Commit-Position: refs/heads/master@{#32285}
-
- 20 Nov, 2015 1 commit
-
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1463083004 Cr-Commit-Position: refs/heads/master@{#32143}
-
- 05 Nov, 2015 1 commit
-
-
bmeurer authored
The %_CallFunction doesn't implement the call sequence properly, it doesn't do the receiver wrapping, nor does it check for classConstructor. Also the eager deoptimization for %_CallFunction was seriously b0rked (we must have been lucky with TurboFan so far). R=yangguo@chromium.org BUG=v8:4413 LOG=n Review URL: https://codereview.chromium.org/1419813010 Cr-Commit-Position: refs/heads/master@{#31821}
-
- 04 Nov, 2015 1 commit
-
-
adamk authored
The "harmony"-prefixed files have been included in the snapshot for several releases now, and were only separate originally to enable loading them via a runtime flag. This patch simply merges them into the main implementation files for Arrays and TypedArrays, respectively. Review URL: https://codereview.chromium.org/1416243007 Cr-Commit-Position: refs/heads/master@{#31767}
-
- 28 Oct, 2015 1 commit
-
-
littledan authored
This patch wraps callsites to %AddElement to fall back to adding a named property in case it is given an argument of 2**32 or greater. The change is needed because %AddElement is called by Array functions in various places, and ES2015 changes these Array functions to use ToLength rather than ToUint32, so several callsites of %AddElement which used to be reliable array indices may be larger numbers. While the proper long-term solution may be to call out to Object.defineProperty, this fix should allow the ToLength semantics to be shipped while preserving correctness and not requiring a rewrite. BUG=v8:4516 LOG=Y R=adamk TEST=Interactively ran Array.prototype.slice on an Array-like which exceeded array bounds, and found that this did not check-fail at runtime as it did before. Microbenchmarked this technique against the previous version on a simple reverse implementation and found at most a 1% slowdown, as opposed to other techniques, like calling %DefineDataPropertyUnchecked, which had a 20% slowdown or Object.defineProperty with a 80% slowdown. Review URL: https://codereview.chromium.org/1420663003 Cr-Commit-Position: refs/heads/master@{#31640}
-
- 27 Oct, 2015 3 commits
-
-
littledan authored
Reland of Check that array length stays a safe integer in Array.prototype.push (patchset #1 id:1 of https://codereview.chromium.org/1418093007/ ) Reason for revert: The test failure was unrelated; relanding. Original issue's description: > Revert of Check that array length stays a safe integer in Array.prototype.push (patchset #7 id:120001 of https://codereview.chromium.org/1428483002/ ) > > Reason for revert: > Caused for-in-opt test to fail > > Original issue's description: > > Check that array length stays a safe integer in Array.prototype.push > > > > This patch adds a check in Array.prototype.push to assert that the new > > length does not become greater than 2**53-1. Such a length would be > > dangerous because integer arithmetic becomes imprecise after the > > boundary. The check is also required by a test262 test. > > > > R=adamk > > LOG=Y > > BUG=v8:3087 > > > > Committed: https://crrev.com/e68adf4548dd101dc08fcbff14444152fb1b7fe7 > > Cr-Commit-Position: refs/heads/master@{#31588} > > TBR=adamk@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=v8:3087 > > Committed: https://crrev.com/78abedb94431a233842fcb2f7a910805a05bed09 > Cr-Commit-Position: refs/heads/master@{#31590} TBR=adamk@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3087 Review URL: https://codereview.chromium.org/1424823005 Cr-Commit-Position: refs/heads/master@{#31610}
-
littledan authored
Revert of Check that array length stays a safe integer in Array.prototype.push (patchset #7 id:120001 of https://codereview.chromium.org/1428483002/ ) Reason for revert: Caused for-in-opt test to fail Original issue's description: > Check that array length stays a safe integer in Array.prototype.push > > This patch adds a check in Array.prototype.push to assert that the new > length does not become greater than 2**53-1. Such a length would be > dangerous because integer arithmetic becomes imprecise after the > boundary. The check is also required by a test262 test. > > R=adamk > LOG=Y > BUG=v8:3087 > > Committed: https://crrev.com/e68adf4548dd101dc08fcbff14444152fb1b7fe7 > Cr-Commit-Position: refs/heads/master@{#31588} TBR=adamk@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3087 Review URL: https://codereview.chromium.org/1418093007 Cr-Commit-Position: refs/heads/master@{#31590}
-
littledan authored
This patch adds a check in Array.prototype.push to assert that the new length does not become greater than 2**53-1. Such a length would be dangerous because integer arithmetic becomes imprecise after the boundary. The check is also required by a test262 test. R=adamk LOG=Y BUG=v8:3087 Review URL: https://codereview.chromium.org/1428483002 Cr-Commit-Position: refs/heads/master@{#31588}
-
- 22 Oct, 2015 1 commit
-
-
yangguo authored
R=cbruni@chromium.org Review URL: https://codereview.chromium.org/1413173003 Cr-Commit-Position: refs/heads/master@{#31467}
-
- 20 Oct, 2015 2 commits
-
-
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}
-
littledan authored
This patch refactors array methods to have the InnerArray{Map,Filter} methods convert to a GlobalArray rather than the callers. BUG=chromium:544991 R=yangguo,adamk CC=mstarzinger,jochen LOG=Y Review URL: https://codereview.chromium.org/1408213004 Cr-Commit-Position: refs/heads/master@{#31403}
-
- 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=rossberg@chromium.org BUG=chromium:451967 LOG=N Review URL: https://codereview.chromium.org/1404783002 Cr-Commit-Position: refs/heads/master@{#31296}
-