- 07 Apr, 2016 1 commit
-
-
mike authored
As originally implemented, a SingleNameBinding within a BindingPattern was incorrectly interpreted as an assignment if an initializer was present and that initializer was itself an AssignmentExpresion. For example: let x; { let [x = y = 1] = []; } print(x); // expected: undefined, actual: 1 Extend the heuristic that detects the "context" of a destructuring pattern to account for AssignmentExpressions within SingleNameBindings. BUG=v8:4891 LOG=N R=adamk@chromium.org Review URL: https://codereview.chromium.org/1859423002 Cr-Commit-Position: refs/heads/master@{#35334}
-
- 10 Mar, 2016 1 commit
-
-
adamk authored
These flags have been on by default since version 4.9, which has been in stable Chrome for over a week now, demonstrating that they're here to stay. Also moved the tests out of harmony/ and into es6/. Review URL: https://codereview.chromium.org/1776683003 Cr-Commit-Position: refs/heads/master@{#34692}
-
- 08 Mar, 2016 1 commit
-
-
neis authored
R=adamk@chromium.org BUG= Review URL: https://codereview.chromium.org/1767063002 Cr-Commit-Position: refs/heads/master@{#34575}
-
- 18 Feb, 2016 1 commit
-
-
rossberg authored
Implements iterator finalisation by desugaring for-of loops with an additional try-finally wrapper. See comment in parser.cc for details. Also improved some AST printing facilities while there. @Ross, I had to disable the bytecode generation test for for-of, because it got completely out of hand after this change (the new bytecode has 150+ lines). See the TODO that I assigned to you. Patch set 1 is WIP patch by Georg (http://crrev.com/1695583003), patch set 2 relative changes. @Georg, FYI, I changed the following: - Moved try-finally out of the loop body, for performance, and in order to be able to handle `continue` correctly. - Fixed scope management in ParseForStatement, which was the cause for the variable allocation failure. - Fixed pre-existing zone initialisation bug in rewriter, which caused the crashes. - Enabled all tests, adjusted a few others, added a couple more. BUG=v8:2214 LOG=Y Review URL: https://codereview.chromium.org/1695393003 Cr-Commit-Position: refs/heads/master@{#34111}
-
- 08 Jan, 2016 1 commit
-
-
littledan authored
Reland of Ship ES2015 sloppy-mode function hoisting, let, class (patchset #1 id:1 of https://codereview.chromium.org/1565263002/ ) Reason for revert: Crash fixed by https://codereview.chromium.org/1564923007 Original issue's description: > Revert of Ship ES2015 sloppy-mode function hoisting, let, class (patchset #7 id:120001 of https://codereview.chromium.org/1551443002/ ) > > Reason for revert: > Causes frequent crashes in Canary: chromium:537816 > > Original issue's description: > > Ship ES2015 sloppy-mode function hoisting, let, class > > > > This patch doesn't ship all features of ES2015 variable/scoping > > changes, notably omitting the removal of legacy const. I think > > function hoisting, let and class in sloppy mode can stand to > > themselves as a package, and the legacy const change is much > > riskier and more likely to be reverted, so my intention is to > > pursue those as a separate, follow-on patch. > > > > R=adamk@chromium.org > > BUG=v8:4285,v8:3305 > > LOG=Y > > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel > > > > Committed: https://crrev.com/fcff8588a5a01587643d6c2507c7b882c78a2957 > > Cr-Commit-Position: refs/heads/master@{#33133} > > TBR=adamk@chromium.org > # Not skipping CQ checks because original CL landed more than 1 days ago. > BUG=v8:4285,v8:3305,chromium:537816 > LOG=Y > > Committed: https://crrev.com/adac5956c6216056a211cfaa460a00ac1500d8f8 > Cr-Commit-Position: refs/heads/master@{#33162} TBR=adamk@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4285,v8:3305,chromium:537816 Review URL: https://codereview.chromium.org/1571793002 Cr-Commit-Position: refs/heads/master@{#33189}
-
- 07 Jan, 2016 1 commit
-
-
littledan authored
Revert of Ship ES2015 sloppy-mode function hoisting, let, class (patchset #7 id:120001 of https://codereview.chromium.org/1551443002/ ) Reason for revert: Causes frequent crashes in Canary: chromium:537816 Original issue's description: > Ship ES2015 sloppy-mode function hoisting, let, class > > This patch doesn't ship all features of ES2015 variable/scoping > changes, notably omitting the removal of legacy const. I think > function hoisting, let and class in sloppy mode can stand to > themselves as a package, and the legacy const change is much > riskier and more likely to be reverted, so my intention is to > pursue those as a separate, follow-on patch. > > R=adamk@chromium.org > BUG=v8:4285,v8:3305 > LOG=Y > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/fcff8588a5a01587643d6c2507c7b882c78a2957 > Cr-Commit-Position: refs/heads/master@{#33133} TBR=adamk@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=v8:4285,v8:3305,chromium:537816 LOG=Y Review URL: https://codereview.chromium.org/1565263002 Cr-Commit-Position: refs/heads/master@{#33162}
-
- 06 Jan, 2016 1 commit
-
-
littledan authored
This patch doesn't ship all features of ES2015 variable/scoping changes, notably omitting the removal of legacy const. I think function hoisting, let and class in sloppy mode can stand to themselves as a package, and the legacy const change is much riskier and more likely to be reverted, so my intention is to pursue those as a separate, follow-on patch. R=adamk@chromium.org BUG=v8:4285,v8:3305 LOG=Y CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1551443002 Cr-Commit-Position: refs/heads/master@{#33133}
-
- 12 Dec, 2015 1 commit
-
-
adamk authored
It shipped in Chrome 47. Review URL: https://codereview.chromium.org/1519073004 Cr-Commit-Position: refs/heads/master@{#32816}
-
- 18 Nov, 2015 1 commit
-
-
adamk authored
This is in preparation for the addition of --harmony-destructuring-assignment. BUG=v8:811 LOG=n Review URL: https://codereview.chromium.org/1450193002 Cr-Commit-Position: refs/heads/master@{#32098}
-
- 05 Nov, 2015 3 commits
-
-
adamk authored
http://crrev.com/80a1e004f4ef619b54a2d87bf2108719a8411860 was reverted due to a Blink test failure. That test has been marked as failing on the Blink side in https://chromium.googlesource.com/chromium/src/+/ac11c6df133. BUG=v8:811 LOG=y TBR=rossberg@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1409093005 Cr-Commit-Position: refs/heads/master@{#31842}
-
machenbach authored
Revert of Revert "Revert of [es6] Implement destructuring binding in try/catch" (patchset #2 id:20001 of https://codereview.chromium.org/1411323008/ ) Reason for revert: [Sheriff] Breaks a layout test: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/2750 Please request rebase upstream first if intended. Original issue's description: > Revert "Revert of [es6] Implement destructuring binding in try/catch" > > Reland try/catch destructuring with a fix for the MemorySanitizer failure: > initialization_pos needs to be initialized in the DeclarationDescriptor. > > This is a one line fix to http://crrev.com/a316db995e6e4253664920652ed4e5a38b2caeba > > BUG=v8:811 > LOG=y > > Committed: https://crrev.com/80a1e004f4ef619b54a2d87bf2108719a8411860 > Cr-Commit-Position: refs/heads/master@{#31834} TBR=littledan@chromium.org,rossberg@chromium.org,adamk@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:811 Review URL: https://codereview.chromium.org/1421193006 Cr-Commit-Position: refs/heads/master@{#31840}
-
adamk authored
Reland try/catch destructuring with a fix for the MemorySanitizer failure: initialization_pos needs to be initialized in the DeclarationDescriptor. This is a one line fix to http://crrev.com/a316db995e6e4253664920652ed4e5a38b2caeba BUG=v8:811 LOG=y Review URL: https://codereview.chromium.org/1411323008 Cr-Commit-Position: refs/heads/master@{#31834}
-
- 04 Nov, 2015 3 commits
-
-
caitpotter88 authored
Emit an early error when BindingPatterns are used in a VariableDeclaration or LexicalBinding without an Initializer. BUG=v8:4532 LOG=N R=adamk@chromium.org, rossberg@chromium.org, wingo@igalia.com Review URL: https://codereview.chromium.org/1416753009 Cr-Commit-Position: refs/heads/master@{#31802}
-
adamk authored
Revert of [es6] Implement destructuring binding in try/catch (patchset #3 id:40001 of https://codereview.chromium.org/1417483014/ ) Reason for revert: MSAN errors on arm64: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/5123/ Original issue's description: > [es6] Implement destructuring binding in try/catch > > The approach is to desugar > > try { ... } > catch ({x, y}) { ... } > > into > > try { ... } > catch (.catch) { > let x = .catch.x; > let y = .catch.y; > ... > } > > using the PatternRewriter's normal facilities. This has the side benefit > of throwing the appropriate variable conflict errors for declarations > made inside the catch block. > > No change is made to non-destructured cases, which will hopefully save > us some work if https://github.com/tc39/ecma262/issues/150 is adopted > in the spec. > > There's one big problem with this patch, which is a lack of PreParser > support for the redeclaration errors. But it seems we're already lacking > good PreParser support for such errors, so I'm not sure that should > block this moving forward. > > BUG=v8:811 > LOG=y > > Committed: https://crrev.com/a316db995e6e4253664920652ed4e5a38b2caeba > Cr-Commit-Position: refs/heads/master@{#31797} TBR=rossberg@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:811 Review URL: https://codereview.chromium.org/1408063013 Cr-Commit-Position: refs/heads/master@{#31798}
-
adamk authored
The approach is to desugar try { ... } catch ({x, y}) { ... } into try { ... } catch (.catch) { let x = .catch.x; let y = .catch.y; ... } using the PatternRewriter's normal facilities. This has the side benefit of throwing the appropriate variable conflict errors for declarations made inside the catch block. No change is made to non-destructured cases, which will hopefully save us some work if https://github.com/tc39/ecma262/issues/150 is adopted in the spec. There's one big problem with this patch, which is a lack of PreParser support for the redeclaration errors. But it seems we're already lacking good PreParser support for such errors, so I'm not sure that should block this moving forward. BUG=v8:811 LOG=y Review URL: https://codereview.chromium.org/1417483014 Cr-Commit-Position: refs/heads/master@{#31797}
-
- 06 Oct, 2015 1 commit
-
-
littledan authored
Previously, cases like var [foo] led to a parser crash because the parser tried to do something with the initializer, which was not syntactically present. This patch fixes the parser issue (implicitly creating an undefined initializer) and inserts a check for array destructuring that the right-hand side is coercible to an object, so it can have iterator methods called on it safely. BUG=v8:4462 LOG=Y R=adamk Review URL: https://codereview.chromium.org/1384413002 Cr-Commit-Position: refs/heads/master@{#31128}
-
- 05 Oct, 2015 1 commit
-
-
littledan authored
Previously, using legacy const in for-of/in loops led to a check-fail in the parser. This was due to the fact that the destructuring bind led to an undefined initialization to undefined in the parser, which caused the for loop code to go down a strange path. This patch eliminates the undefined initialization in variables declared in for-in/of loops, so that that path is not used and the error is fixed. BUG=v8:4461 LOG=Y R=adamk Review URL: https://codereview.chromium.org/1385913003 Cr-Commit-Position: refs/heads/master@{#31117}
-
- 01 Oct, 2015 1 commit
-
-
rossberg authored
Var-bindings may shadow parameters from a non-simple parameter list. When that happens: they create separate bindings, but are initialised with the respective parameter value. Thus: (function(x, f = () => x) { var x; var y = x; x = 2; return [x, y, f()] })(1) --> [2, 1, 1] This CL implements that by inserting a suitable assignment for every shadwowing var-variable (e.g., x = outer_x above) at the beginning of the function's body block. R=adamk@chromium.org BUG=v8:4440,v8:811 LOG=N Review URL: https://codereview.chromium.org/1371333004 Cr-Commit-Position: refs/heads/master@{#31042}
-
- 30 Sep, 2015 1 commit
-
-
adamk authored
Arrow functions have been enabled by default since the 4.5 branch. Review URL: https://codereview.chromium.org/1373633002 Cr-Commit-Position: refs/heads/master@{#31031}
-
- 16 Sep, 2015 1 commit
-
-
caitpotter88 authored
Add support for `get` and `set` as shorthand properties. Also supports them for CoverInitializedName in BindingPatterns and (once implemented) AssignmentPatterns. BUG=v8:4412, v8:3584 LOG=N R=adamk, aperez, wingo, rossberg Review URL: https://codereview.chromium.org/1328083002 Cr-Commit-Position: refs/heads/master@{#30769}
-
- 26 Aug, 2015 1 commit
-
-
conradw authored
TC39 agreed to disallow "use strict" directives in function body when non-simple parameter lists are used. This is a continuation of caitp's CL https://codereview.chromium.org/1281163002/ with some refactorings removed for now. Still TODO: there is a lot of duplication between the is_simple field of FormalParametersBase and the NonSimpleParameter property ExpressionClassifier keeps track of. It should be possible to remove the former with a minor refactoring of arrow function parsing. This will be attempted in a follow-up CL. BUG= LOG=N Review URL: https://codereview.chromium.org/1300103005 Cr-Commit-Position: refs/heads/master@{#30388}
-
- 25 Aug, 2015 1 commit
-
-
rossberg authored
R=adamk@chromium.org BUG=v8:2160 LOG=N Review URL: https://codereview.chromium.org/1311163002 Cr-Commit-Position: refs/heads/master@{#30361}
-
- 17 Aug, 2015 1 commit
-
-
rossberg authored
Based on caitp's https://codereview.chromium.org/1127063003/ R=adamk@chromium.org, littledan@chromium.org BUG=v8:2160 LOG=N Review URL: https://codereview.chromium.org/1287063004 Cr-Commit-Position: refs/heads/master@{#30192}
-
- 07 Aug, 2015 2 commits
-
-
rossberg authored
Fixes the use of eval calls in strict parameter lists in particular. R=adamk@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1276273002 Cr-Commit-Position: refs/heads/master@{#30074}
-
rossberg authored
Plus some renaming for consistency. R=adamk@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1278783002 Cr-Commit-Position: refs/heads/master@{#30064}
-
- 05 Aug, 2015 2 commits
-
-
adamk authored
It was shipped in V8 4.4. Review URL: https://codereview.chromium.org/1273543002 Cr-Commit-Position: refs/heads/master@{#30038}
-
rossberg authored
Previously, examples like (({a = x}, x) => {})({}, 0) did not throw a ReferenceError like they should. This CL - Splits up DeclareFormalParameters such that the formals can be recorded first and declared later. - Declaration then takes the complete parameter list into account. If it is not simple, temporaries are introduced for all parameters. - BuildParameterInitializationBlock desugars all parameters from non-simple lists into let-bindings. - Refactored Pre/ParserFormalParameters, so that the arity information is no longer duplicated in Parser. - Rest is currently handled specially, until rest-via-destructuring has landed. R=adamk@chromium.org, littledan@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1259283002 Cr-Commit-Position: refs/heads/master@{#30025}
-
- 20 Jul, 2015 1 commit
-
-
rossberg authored
Also, more tests for parameters containing functions or eval or both. R=adamk@chromium.org, caitpotter88@gmail.com, littledan@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1225413005 Cr-Commit-Position: refs/heads/master@{#29752}
-
- 15 Jul, 2015 1 commit
-
-
rossberg authored
R=adamk@chromium.org, littledan@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1240463002 Cr-Commit-Position: refs/heads/master@{#29674}
-
- 01 Jul, 2015 1 commit
-
-
adamk authored
The enumerable expression in a for-in/of loop is supposed to have a TDZ for any lexically bound names in that loop (there can be more than one with destructuring). This patch accomplishes this with an almost-correct desugaring. The only thing missing is proper debugger support (the let declarations added by the desugaring, while invisible to code due to shadowing, are visible to the debugger). BUG=v8:4210 LOG=n Review URL: https://codereview.chromium.org/1218543003 Cr-Commit-Position: refs/heads/master@{#29396}
-
- 22 Jun, 2015 3 commits
-
-
dslomov authored
Scoping for initializers is yet incorrect. Defaults are not supported. R=arv@chromium.org,rossberg@chromium.org BUG=v8:811 LOG=N Committed: https://crrev.com/42f30f4ded2b1ca0c4caa7639e6206e93c78ee70 Cr-Commit-Position: refs/heads/master@{#29184} Review URL: https://codereview.chromium.org/1189743003 Cr-Commit-Position: refs/heads/master@{#29192}
-
machenbach authored
Revert of [destructuring] Implement parameter pattern matching. (patchset #7 id:120001 of https://codereview.chromium.org/1189743003/) Reason for revert: [Sheriff] Breaks tsan: http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/4392 Original issue's description: > [destructuring] Implement parameter pattern matching. > > Scoping for initializers is yet incorrect. Defaults are not supported. > > R=arv@chromium.org,rossberg@chromium.org > BUG=v8:811 > LOG=N > > Committed: https://crrev.com/42f30f4ded2b1ca0c4caa7639e6206e93c78ee70 > Cr-Commit-Position: refs/heads/master@{#29184} TBR=arv@chromium.org,rossberg@chromium.org,caitpotter88@gmail.com,wingo@igalia.com,dslomov@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:811 Review URL: https://codereview.chromium.org/1195163007 Cr-Commit-Position: refs/heads/master@{#29188}
-
dslomov authored
Scoping for initializers is yet incorrect. Defaults are not supported. R=arv@chromium.org,rossberg@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1189743003 Cr-Commit-Position: refs/heads/master@{#29184}
-
- 21 May, 2015 2 commits
-
-
dslomov authored
Also support patterns in ``for (var p in/of ...)`` This CL extends the rewriting we used to do for ``for (let p in/of...)`` to ``for (var p in/of ...)``. For all for..in/of loop declaring variable, we rewrite for (var/let/const pattern in/of e) b into for (x' in/of e) { var/let/const pattern = e; b } This adds a small complication for debugger: for a statement for (var v in/of e) ... we used to have var v; for (v in/of e) ... and there was a separate breakpoint on ``var v`` line. This breakpoint is actually useless since it is immediately followed by a breakpoint on evaluation of ``e``, so this CL removes that breakpoint location. Similiraly, for let, it used to be that for (let v in/of e) ... became for (x' in/of e) { let v; v = x'; ... } ``let v``generetaed a useless breakpoint (with the location at the loop's head. This CL removes that breakpoint as well. R=arv@chromium.org,rossberg@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1149043005 Cr-Commit-Position: refs/heads/master@{#28565}
-
dslomov authored
R=arv@chromium.org,rossberg@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1152503002 Cr-Commit-Position: refs/heads/master@{#28547}
-
- 20 May, 2015 2 commits
-
-
dslomov authored
R=arv@chromium.org,rossberg@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1151503002 Cr-Commit-Position: refs/heads/master@{#28522}
-
dslomov authored
(everything except Spread is implemeneted) R=arv@chromium.org,rossberg@chromium.org,wingo@igalia.com BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1139603005 Cr-Commit-Position: refs/heads/master@{#28500}
-
- 19 May, 2015 2 commits
-
-
dslomov authored
R=arv@chromium.org,rossberg@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1129083009 Cr-Commit-Position: refs/heads/master@{#28487}
-
dslomov authored
R=arv@chromium.org,rossberg@chromium.org,wingo@igalia.com BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1146683002 Cr-Commit-Position: refs/heads/master@{#28482}
-
- 18 May, 2015 1 commit
-
-
dslomov authored
R=arv@chromium.org,rossberg@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1139773005 Cr-Commit-Position: refs/heads/master@{#28457}
-