- 19 Apr, 2016 1 commit
-
-
machenbach authored
BUG=v8:4437,v8:2899,chromium:604310 LOG=n Review URL: https://codereview.chromium.org/1402373002 Cr-Commit-Position: refs/heads/master@{#35614}
-
- 04 Apr, 2016 1 commit
-
-
littledan authored
- RegExp.prototype.toString() doesn't have any special handling of RegExp instances and simply calls the source and flags getters - Use the original values of global and sticky, rather than based on the current flag getters, as specified in https://github.com/tc39/ecma262/pull/494 R=yangguo@chromium.org,adamk LOG=Y BUG=v8:4602 Review URL: https://codereview.chromium.org/1846303002 Cr-Commit-Position: refs/heads/master@{#35225}
-
- 01 Apr, 2016 1 commit
-
-
littledan authored
Revert of Remove RegExp.prototype.source getter compat workaround (patchset #2 id:20001 of https://codereview.chromium.org/1837843002/ ) Reason for revert: TC39 decided that this compatibility fix should be standardized. Original issue's description: > Remove RegExp.prototype.source getter compat workaround > > The getter RegExp.prototype.source is specified in ES2015 to throw when > called on a non-RegExp instance, such as RegExp.prototype. We had previously > put in a compatibility workaround for all RegExp getters to make them > throw on access specifically with RegExp.prototype as the receiver; however, > we only have evidence that this is needed for properties other than source. > This patch removes the compatibility workaround for get RegExp.prototype.source > and gives it semantics precisely as per the ES2015 specification. > > R=adamk > BUG=chromium:581577,v8:4827 > LOG=Y > > Committed: https://crrev.com/80803aa89e31839b8f73959776fa7e1923c6b461 > Cr-Commit-Position: refs/heads/master@{#35086} R=adamk@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=chromium:581577,v8:4827 LOG=Y Review URL: https://codereview.chromium.org/1847783003 Cr-Commit-Position: refs/heads/master@{#35180}
-
- 29 Mar, 2016 3 commits
-
-
adamk authored
R=littledan@chromium.org BUG=v8:4602 LOG=y Review URL: https://codereview.chromium.org/1838393002 Cr-Commit-Position: refs/heads/master@{#35120}
-
adamk authored
This patch adds fast paths for @@replace and @@split that call into the old, side-effect free (and faster) versions of those builtin operations when possible (roughly, when the receiver is a RegExp and the 'exec' method is untampered). Also add some micro-optimizations that further improve performance. Taken altogether, this takes us from a ~70% regression on the Octane RegExp benchmark to a ~9% regression. The test262.status lines for RegExps has been reorganized to make it clearer the status of individual tests. More work will likely be required to increase spec compliance before the --harmony-regexp-exec flag is shipped; some of that work is happening on the spec side. BUG=v8:4602 LOG=y Review URL: https://codereview.chromium.org/1836123002 Cr-Commit-Position: refs/heads/master@{#35118}
-
yangguo authored
R=jochen@chromium.org BUG=v8:4361 LOG=N Review URL: https://codereview.chromium.org/1819313002 Cr-Commit-Position: refs/heads/master@{#35099}
-
- 28 Mar, 2016 1 commit
-
-
littledan authored
The getter RegExp.prototype.source is specified in ES2015 to throw when called on a non-RegExp instance, such as RegExp.prototype. We had previously put in a compatibility workaround for all RegExp getters to make them throw on access specifically with RegExp.prototype as the receiver; however, we only have evidence that this is needed for properties other than source. This patch removes the compatibility workaround for get RegExp.prototype.source and gives it semantics precisely as per the ES2015 specification. R=adamk BUG=chromium:581577,v8:4827 LOG=Y Review URL: https://codereview.chromium.org/1837843002 Cr-Commit-Position: refs/heads/master@{#35086}
-
- 22 Mar, 2016 2 commits
-
-
ishell authored
BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1820293002 Cr-Commit-Position: refs/heads/master@{#35007}
-
littledan authored
String.prototype.match is specified to call out to the current value of RegExp.prototype[Symbol.match] when passed a string argument, rather than the original value. This patch updates the RegExp code to do that. R=yangguo@chromium.org BUG=v8:4602 LOG=Y Review URL: https://codereview.chromium.org/1821773003 Cr-Commit-Position: refs/heads/master@{#35001}
-
- 16 Mar, 2016 1 commit
-
-
neis authored
R=littledan@chromium.org BUG=v8:3455 LOG=n Review URL: https://codereview.chromium.org/1772343008 Cr-Commit-Position: refs/heads/master@{#34814}
-
- 15 Mar, 2016 1 commit
-
-
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}
-
- 11 Mar, 2016 1 commit
-
-
littledan authored
This patch removes some [PASS, FAIL_OK] lines which consistently pass, and it declares some tests to be test bugs as appropriate. R=adamk Review URL: https://codereview.chromium.org/1784063002 Cr-Commit-Position: refs/heads/master@{#34733}
-
- 10 Mar, 2016 8 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
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}
-
neis authored
R=littledan@chromium.org BUG= Review URL: https://codereview.chromium.org/1779133002 Cr-Commit-Position: refs/heads/master@{#34690}
-
mstarzinger authored
This is because compiler.cc is awesome. There are cases where we do not yet have a SharedFunctionInfo that can tell us whether we are compiling a generator function, we query the FunctionLiteral instead. R=rmcilroy@chromium.org BUG=v8:4681 LOG=n Review URL: https://codereview.chromium.org/1780193002 Cr-Commit-Position: refs/heads/master@{#34677}
-
mstarzinger authored
This ensures our optimizing compilers as well as the interpreter are never tasked with compiling the generator-resuming builtin methods. The corresponding intrinsics for those methods are not supported and it is not possible to provide a C++ reference implementation for them. We do this by assigning builtin function ids to them that we can recognize during the compiler dispatch. Note that this also affects the interpreter, because methods having a builtin function id assigned are not interpreted ({function_data} field is overlapping). If this ever changes we can still do an early check in the compiler dispatch (similar to the optimizing compilers) easily. This applies to the following methods: - Generator.prototype.next (calls Runtime_GeneratorNext). - Generator.prototype.return (calls Runtime_GeneratorReturn). - Generator.prototype.throw (calls Runtime_GeneratorThrow). R=neis@chromium.org BUG=v8:4681 LOG=n Review URL: https://codereview.chromium.org/1779123003 Cr-Commit-Position: refs/heads/master@{#34675}
-
mstarzinger authored
This ensures the interpreter is not tasked with compiling generator functions. It currently does not support suspending activations at yielding points, but we still want to be able to activate it for the rest of JavaScript in the meantime. R=rmcilroy@chromium.org BUG=v8:4681 LOG=n Review URL: https://codereview.chromium.org/1782013002 Cr-Commit-Position: refs/heads/master@{#34672}
-
machenbach authored
BUG=v8:4680 LOG=n NOTRY=true TBR=rmcilroy@chromium.org NOTREECHECKS=true NOPRESUBMIT=true Review URL: https://codereview.chromium.org/1778323002 Cr-Commit-Position: refs/heads/master@{#34659}
-
littledan authored
BUG=v8:4348 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1783643002 Cr-Commit-Position: refs/heads/master@{#34647}
-
- 09 Mar, 2016 1 commit
-
-
adamk authored
BUG=v8:4247 LOG=y Review URL: https://codereview.chromium.org/1781573003 Cr-Commit-Position: refs/heads/master@{#34640}
-
- 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 4 commits
-
-
oth authored
Marks additional generator tests as failing. BUG=V8:4680 LOG=N Review URL: https://codereview.chromium.org/1744353003 Cr-Commit-Position: refs/heads/master@{#34410}
-
oth authored
Fixes a bug in the constant pool padding calculation. BUG=v8:4680 LOG=N Review URL: https://codereview.chromium.org/1749853002 Cr-Commit-Position: refs/heads/master@{#34403}
-
caitpotter88 authored
BUG=v8:4663, v8:4725 LOG=N R=littledan@chromium.org, adamk@chromium.org Review URL: https://codereview.chromium.org/1744193002 Cr-Commit-Position: refs/heads/master@{#34399}
-
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}
-
- 26 Feb, 2016 4 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}
-
rmcilroy authored
Moves skips to explicit fails and groups errors be failure reason. Almost all failures are due to lack of generator support. BUG=v8:4680 LOG=N TBR=oth@chromium.org Review URL: https://codereview.chromium.org/1740843003 Cr-Commit-Position: refs/heads/master@{#34334}
-
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}
-
- 24 Feb, 2016 3 commits
-
-
littledan authored
There was a bug in for-of loops without newly declared variables: If, in performing the assignment, an exception were thrown, then IteratorClose would not be called. The problem was that the assignment is done as part of assign_each, which happens before the loop is put back in the state which is recognized to be breaking/throwing/returning early. This patch modifies the for-of desugaring by setting the loop state before, rather than after, evaluating the assign_each portion, which is responsible for evaluating the assignment in for-of loops which do not have a declaration. This patch, together with https://codereview.chromium.org/1728973002 , allow all test262 iterator return-related tests to pass. R=rossberg BUG=v8:4776 LOG=Y Review URL: https://codereview.chromium.org/1731773003 Cr-Commit-Position: refs/heads/master@{#34262}
-
littledan authored
In the for-of desugaring, IteratorClose is a subtle thing to get right. When return exists, the logic for which exception to throw is as follows: 1. Get the 'return' property and property any exception that might come from the property read 2. Call return, not yet propagating an exception if it's thrown. 3. If we are closing the iterator due to an exception, propagate that error. 4. If return threw, propagate that error. 5. Check if return's return value was not an object, and throw if so Previously, we were effectively doing step 5 even if an exception "had already been thrown" by step 3. Because this took place in a finally block, the exception "won the race" and was the one propagated to the user. The fix is a simple change to the desugaring to do step 5 only if step 3 didn't happen. R=rossberg BUG=v8:4775 LOG=Y Review URL: https://codereview.chromium.org/1728973002 Cr-Commit-Position: refs/heads/master@{#34261}
-
littledan authored
This patch moves for-of closing to staging. There are a couple of minor semantics bugs remaining in finalization along edge cases, but we don't know of any stability issues. BUG=v8:3566 R=rossberg LOG=Y Review URL: https://codereview.chromium.org/1725203002 Cr-Commit-Position: refs/heads/master@{#34254}
-
- 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 1 commit
-
-
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}
-
- 19 Feb, 2016 2 commits
-
-
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}
-
littledan authored
In ES2015, Date.prototype.toGMTString is simply an alias of Date.prototype.toUTCString, so it has the same identity as a function and doesn't have its own name. Firefox has already shipped this behavior. Previously, we copied JSC behavior by making it a separate function. This change makes an addition test262 test pass. BUG=v8:4708 LOG=Y R=adamk Review URL: https://codereview.chromium.org/1709373002 Cr-Commit-Position: refs/heads/master@{#34131}
-
- 15 Feb, 2016 1 commit
-
-
oth authored
Adds support for ES6 super keyword and performing loads, stores, and calls to super class members. Implements SetHomeObject and enables ThisFunctionVariable. BUG=v8:4280,v8:4682 LOG=N Review URL: https://codereview.chromium.org/1689573004 Cr-Commit-Position: refs/heads/master@{#33977}
-