- 16 Mar, 2016 1 commit
-
-
yangguo authored
Reland of Allow Math.random to be called when creating a custom startup snapshot. (patchset #1 id:1 of https://codereview.chromium.org/1798863003/ ) Reason for revert: This seems not to change performance. Original issue's description: > Revert of Allow Math.random to be called when creating a custom startup snapshot. (patchset #2 id:20001 of https://codereview.chromium.org/1780173002/ ) > > Reason for revert: > Regresses performance on base64 benchmark. > > Original issue's description: > > Allow Math.random to be called when creating a custom startup snapshot. > > > > R=jkummerow@chromium.org > > BUG=v8:4810 > > LOG=N > > > > Committed: https://crrev.com/6a7ec6a3bf779cdd41c66a768fd7a37195ed7b7f > > Cr-Commit-Position: refs/heads/master@{#34705} > > TBR=jkummerow@chromium.org > # Not skipping CQ checks because original CL landed more than 1 days ago. > BUG=v8:4810, chromium:594484 > LOG=N > > Committed: https://crrev.com/b7be51cd33bc81d768dbf5632ba0c68843448e37 > Cr-Commit-Position: refs/heads/master@{#34739} TBR=jkummerow@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=v8:4810, chromium:594484 LOG=N Review URL: https://codereview.chromium.org/1806713003 Cr-Commit-Position: refs/heads/master@{#34820}
-
- 15 Mar, 2016 2 commits
-
-
littledan authored
src/js/regexp.js was one of the few files that was left in sloppy mode. The ES2017 draft specification requires that writes to lastIndex throw when the property is non-writable, and test262 tests enforce this behavior. This patch puts that file in strict mode. BUG=v8:4504 R=yangguo@chromium.org LOG=Y Review URL: https://codereview.chromium.org/1776883005 Cr-Commit-Position: refs/heads/master@{#34801}
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1794233006 Cr-Commit-Position: refs/heads/master@{#34775}
-
- 14 Mar, 2016 2 commits
-
-
verwaest authored
This significantly speeds up String(array). BUG= Review URL: https://codereview.chromium.org/1775403008 Cr-Commit-Position: refs/heads/master@{#34745}
-
yangguo authored
Revert of Allow Math.random to be called when creating a custom startup snapshot. (patchset #2 id:20001 of https://codereview.chromium.org/1780173002/ ) Reason for revert: Regresses performance on base64 benchmark. Original issue's description: > Allow Math.random to be called when creating a custom startup snapshot. > > R=jkummerow@chromium.org > BUG=v8:4810 > LOG=N > > Committed: https://crrev.com/6a7ec6a3bf779cdd41c66a768fd7a37195ed7b7f > Cr-Commit-Position: refs/heads/master@{#34705} TBR=jkummerow@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=v8:4810, chromium:594484 LOG=N Review URL: https://codereview.chromium.org/1798863003 Cr-Commit-Position: refs/heads/master@{#34739}
-
- 11 Mar, 2016 3 commits
-
-
adamk authored
ES2015 Object.prototype.toString semantics were enabled in version 4.9, which has been in stable Chrome for nearly two weeks at this point. R=littledan@chromium.org Review URL: https://codereview.chromium.org/1784033002 Cr-Commit-Position: refs/heads/master@{#34732}
-
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}
-
yangguo authored
R=jkummerow@chromium.org BUG=v8:4810 LOG=N Review URL: https://codereview.chromium.org/1780173002 Cr-Commit-Position: refs/heads/master@{#34705}
-
- 10 Mar, 2016 6 commits
-
-
littledan authored
- Make separate iterator functions for TypedArrays which do a type check (and in the future should check for detached TypedArrays) - Share the toString method with Arrays BUG=v8:4785 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1780113002 Cr-Commit-Position: refs/heads/master@{#34698}
-
littledan authored
When the TypedArray iterator constructor code path was added, a technically incorrect optimization was added which uses the arraylike code path on array arguments, even though the %ArrayIterator% could have been monkey-patched to give different behavior. A previous patch removed this optimization, and this patch restores it due to the huge performance regression that resulted. The optimization was previously removed in https://codereview.chromium.org/1767893002 BUG=chromium:593644 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1779373002 Cr-Commit-Position: refs/heads/master@{#34697}
-
verwaest authored
This significantly speeds up String(array). BUG= Review URL: https://codereview.chromium.org/1775403008 Cr-Commit-Position: refs/heads/master@{#34696}
-
littledan authored
This check is guaranteed by the Promise spec and tested by test262 tests. It only has to run for subclasses. This patch adds the check to the Promise code. BUG=v8:4633 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1780823003 Cr-Commit-Position: refs/heads/master@{#34693}
-
rossberg authored
R=mstarzinger@chromium.org,bmeurer@chromium.org,adamk@chromium.org BUG=v8:3956 LOG=Y Review URL: https://codereview.chromium.org/1773653002 Cr-Commit-Position: refs/heads/master@{#34669}
-
littledan authored
BUG=v8:4348 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1783643002 Cr-Commit-Position: refs/heads/master@{#34647}
-
- 08 Mar, 2016 2 commits
-
-
littledan authored
A previous spec compliance fix for TypedArrays caused a ~4x performance regression. This patch removes the regression by calling out to a path within the runtime which implements array copying more efficiently. BUG=chromium:592007 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1767893002 Cr-Commit-Position: refs/heads/master@{#34601}
-
littledan authored
We have compatibility workarounds to return 'undefined' on accessors to RegExp.prototype. This patch adds two UseCounters for two categories of this non-spec-compliant path: - source - ignorecase, multiline, global R=yangguo BUG=chromium:581577 LOG=Y Review URL: https://codereview.chromium.org/1762423002 Cr-Commit-Position: refs/heads/master@{#34597}
-
- 07 Mar, 2016 1 commit
-
-
littledan authored
The ES2015 specification requires that String.prototype.startsWith, String.prototype.endsWith and String.prototype.includes use the IsRegExp internal algorithm to determine whether to throw a TypeError to prevent a RegExp from being accidentally cast to a String for those methods. That internal algorithm checks the presence/truthiness of Symbol.match to make its determination. This patch switches the builtins to use this correct test, rather than checking for the [[RegExpMatcher]] internal slot as the builtins previously did. R=yangguo Review URL: https://codereview.chromium.org/1762183002 Cr-Commit-Position: refs/heads/master@{#34547}
-
- 02 Mar, 2016 1 commit
-
-
littledan authored
The ES2016 draft spec defines a sort of fast path for constructing a TypedArray based on another TypedArray. This patch implements that alternative path in TypedArray construction. It is verified by test262 tests, which now pass. This patch also has a slight cleanup of TypedArray code by using a macro for TypedArray type checks, as is done for other types. This patch includes a minor spec violation: In the same-type case, the spec indicates that the underlying ArrayBuffer should be copied until the end, and this is fixed up by making the [[ArrayLength]] shorter. This is observable with the buffer getter. This patch just copies the used part of the underlying ArrayBuffer. R=adamk BUG=v8:4726 LOG=Y Review URL: https://codereview.chromium.org/1754593003 Cr-Commit-Position: refs/heads/master@{#34443}
-
- 01 Mar, 2016 5 commits
-
-
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}
-
neis authored
We must not use for-of since that could be observed. R=yangguo@chromium.org BUG=v8:4769 LOG=n Review URL: https://codereview.chromium.org/1748633002 Cr-Commit-Position: refs/heads/master@{#34387}
-
neis authored
ArrayIteratorPrototype must not provide Symbol.iterator. R=rossberg BUG= Review URL: https://codereview.chromium.org/1749093002 Cr-Commit-Position: refs/heads/master@{#34386}
-
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}
-
littledan authored
This patch fixes %TypedArray%.from to follow the ES2016 draft spec more precisely. Specifically, the input is first converted to an ArrayLike, and then afterwards, the mapping function is run and the results written into the TypedArray. This fixes a test262 test. R=adamk LOG=Y BUG=v8:4782 Review URL: https://codereview.chromium.org/1743463004 Cr-Commit-Position: refs/heads/master@{#34373}
-
- 29 Feb, 2016 1 commit
-
-
verwaest authored
This gets rid of the JavaScript wrapper. That way we can more quickly handle non-JSReceivers and indexed properties; and don't need to optimize the JavaScript wrapper either. BUG= Review URL: https://codereview.chromium.org/1742283002 Cr-Commit-Position: refs/heads/master@{#34356}
-
- 26 Feb, 2016 8 commits
-
-
littledan authored
Reland of Test262 roll, 2016-2-23 (patchset #1 id:1 of https://codereview.chromium.org/1736223002/ ) Reason for revert: Intl change relanded https://codereview.chromium.org/1745483002/ Original issue's description: > Revert of Test262 roll, 2016-2-23 (patchset #2 id:20001 of https://codereview.chromium.org/1738033002/ ) > > Reason for revert: > An Intl change that this depends on breaks a bot > > Original issue's description: > > Test262 roll, 2016-2-23 > > > > R=adamk > > > > Committed: https://crrev.com/34492040fbfb04fead21416245c8696b9847e751 > > Cr-Commit-Position: refs/heads/master@{#34312} > > TBR=adamk@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Committed: https://crrev.com/3b829ad80628bf521aa78255c2e5e20040a57b5f > Cr-Commit-Position: refs/heads/master@{#34313} TBR=adamk@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/1739533006 Cr-Commit-Position: refs/heads/master@{#34338}
-
littledan authored
Reland of Make Intl install properties more like how other builtins do (patchset #1 id:1 of https://codereview.chromium.org/1733293003/ ) This reland fixes a bug by pulling properties off the utils object, so that it can be garbage collected in nosnap builds. Original commit message: Intl has been somewhat of an oddball for how it integrates with V8. One aspect is that it largely didn't use utils to install itself into the snapshot, which led to some missing names, which new test262 tests check for, and duplicated code. This patch brings Intl a bit closer to how the rest of the builtins do things, though not entirely as it is currently structured to do unusual things, such as creating new constructors from JavaScript rather than C++. New test262 tests check for some of the names that are added in this patch. R=adamk CC=jshin BUG=v8:4778 LOG=Y Review URL: https://codereview.chromium.org/1745483002 Cr-Commit-Position: refs/heads/master@{#34337}
-
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}
-
littledan authored
Revert of Make Intl install properties more like how other builtins do (patchset #1 id:1 of https://codereview.chromium.org/1733293003/ ) Reason for revert: Breaks a bot: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap/builds/6812 Original issue's description: > Make Intl install properties more like how other builtins do > > Intl has been somewhat of an oddball for how it integrates with V8. > One aspect is that it largely didn't use utils to install itself > into the snapshot, which led to some missing names, which new > test262 tests check for, and duplicated code. This patch brings > Intl a bit closer to how the rest of the builtins do things, though > not entirely as it is currently structured to do unusual things, > such as creating new constructors from JavaScript rather than C++. > New test262 tests check for some of the names that are added in > this patch. > > R=adamk > CC=jshin > BUG=v8:4778 > LOG=Y > > Committed: https://crrev.com/a40830577d80f699282dd83864619656b7a7966c > Cr-Commit-Position: refs/heads/master@{#34311} TBR=adamk@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4778 Review URL: https://codereview.chromium.org/1737873003 Cr-Commit-Position: refs/heads/master@{#34314}
-
littledan authored
Revert of Test262 roll, 2016-2-23 (patchset #2 id:20001 of https://codereview.chromium.org/1738033002/ ) Reason for revert: An Intl change that this depends on breaks a bot Original issue's description: > Test262 roll, 2016-2-23 > > R=adamk > > Committed: https://crrev.com/34492040fbfb04fead21416245c8696b9847e751 > Cr-Commit-Position: refs/heads/master@{#34312} TBR=adamk@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/1736223002 Cr-Commit-Position: refs/heads/master@{#34313}
-
littledan authored
R=adamk Review URL: https://codereview.chromium.org/1738033002 Cr-Commit-Position: refs/heads/master@{#34312}
-
littledan authored
Intl has been somewhat of an oddball for how it integrates with V8. One aspect is that it largely didn't use utils to install itself into the snapshot, which led to some missing names, which new test262 tests check for, and duplicated code. This patch brings Intl a bit closer to how the rest of the builtins do things, though not entirely as it is currently structured to do unusual things, such as creating new constructors from JavaScript rather than C++. New test262 tests check for some of the names that are added in this patch. R=adamk CC=jshin BUG=v8:4778 LOG=Y Review URL: https://codereview.chromium.org/1733293003 Cr-Commit-Position: refs/heads/master@{#34311}
-
littledan authored
BUG=v8:4315 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1734223004 Cr-Commit-Position: refs/heads/master@{#34310}
-
- 25 Feb, 2016 2 commits
-
-
bmeurer authored
Migrate Math.imul, Math.fround, Math.acos, Math.asin and Math.atan to C++ builtins, as these ones call into C++ anyway and so there's no need to have this extra wrapper around it. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1731543004 Cr-Commit-Position: refs/heads/master@{#34274}
-
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}
-
- 24 Feb, 2016 1 commit
-
-
littledan authored
The Intl object used to keep around functions which are bound to the receiver and memoized in the object (as required by the ECMA-402 spec) in ordinary properties with names like __boundformat__. This patch instead stores those methods in private symbol properties, so they are not exposed to users. A search in GitHub didn't find any uses of __boundformat__ (whereas the same search found plenty of usages of other V8 Intl features), so I think this should be fine in terms of web compatibility. BUG=v8:3785 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1728823002 Cr-Commit-Position: refs/heads/master@{#34230}
-
- 23 Feb, 2016 2 commits
-
-
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}
-
littledan authored
It turns out that some old polyfill library uses RegExp.prototype.flags as a way of feature testing. It's not clear how widespread this is. For now, as a minimal workaround, we can return undefined from getters like RegExp.prototype.global when the receiver is RegExp.prototype. This patch implements that strategy but omits a UseCounter to make backports easier. R=adamk CC=yangguo@chromium.org BUG=chromium:581577 LOG=Y CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1640803003 Cr-Commit-Position: refs/heads/master@{#34201}
-
- 22 Feb, 2016 2 commits
-
-
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}
-
littledan authored
The Proxy enumerate trap and Reflect.enumerate are removed from the ES2016 draft specification. This patch removes the Reflect.enumerate function, and a follow-on patch will be responsible for the Proxy trap changes. R=adamk LOG=Y BUG=v8:4768 Review URL: https://codereview.chromium.org/1721453002 Cr-Commit-Position: refs/heads/master@{#34196}
-
- 20 Feb, 2016 1 commit
-
-
demoneaux authored
Most libraries use `JSON.stringify` with all three arguments [1] to allow for configuration, even if `replacer` and `space` are falsey, causing the optimized native stringifying to be missed. This commit allows for the common case where `replacer` and `space` are not used to be fast. [1]: https://github.com/hapijs/hapi/pull/3014 BUG=v8:4730 LOG=N R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1710933002 Cr-Commit-Position: refs/heads/master@{#34174}
-