- 28 Jun, 2016 1 commit
-
-
nikolaos authored
When re-scoping arrow function parameter initializers, temporaries should be moved from the closure of the old scope to the closure of the new scope, if necessary. R=adamk@chromium.org, rossberg@chromium.org BUG=chromium:622663 LOG=N Review-Url: https://codereview.chromium.org/2083083007 Cr-Commit-Position: refs/heads/master@{#37335}
-
- 22 Jun, 2016 3 commits
-
-
littledan authored
Reland of write scopes of non-simple default arguments (patchset #1 id:1 of https://codereview.chromium.org/2081323006/ ) Reason for revert: Infra issue appears to be over TBR=adamk@chromium.org Original issue's description: > Revert of Rewrite scopes of non-simple default arguments (patchset #5 id:80001 of https://codereview.chromium.org/2077283004/ ) > > Reason for revert: > Seems to close tree (but it could be an infra issue) > > Original issue's description: > > Rewrite scopes of non-simple default arguments > > > > Default parameters have additional declaration block scopes inserted > > around them when something in the function scope calls eval. This > > patch sets the parent scope of the expressions introduced due to > > those defaults to the new block scope. > > > > R=adamk > > BUG=chromium:616386 > > > > Committed: https://crrev.com/0e14baf712955a1993f742647bb2adc293702b80 > > Cr-Commit-Position: refs/heads/master@{#37198} > > TBR=adamk@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=chromium:616386 > > Committed: https://crrev.com/dd50262933d2ac087da32be887a7c18385fd998e > Cr-Commit-Position: refs/heads/master@{#37201} TBR=adamk@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:616386 Review-Url: https://codereview.chromium.org/2086353003 Cr-Commit-Position: refs/heads/master@{#37202}
-
littledan authored
Revert of Rewrite scopes of non-simple default arguments (patchset #5 id:80001 of https://codereview.chromium.org/2077283004/ ) Reason for revert: Seems to close tree (but it could be an infra issue) Original issue's description: > Rewrite scopes of non-simple default arguments > > Default parameters have additional declaration block scopes inserted > around them when something in the function scope calls eval. This > patch sets the parent scope of the expressions introduced due to > those defaults to the new block scope. > > R=adamk > BUG=chromium:616386 > > Committed: https://crrev.com/0e14baf712955a1993f742647bb2adc293702b80 > Cr-Commit-Position: refs/heads/master@{#37198} TBR=adamk@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:616386 Review-Url: https://codereview.chromium.org/2081323006 Cr-Commit-Position: refs/heads/master@{#37201}
-
littledan authored
Default parameters have additional declaration block scopes inserted around them when something in the function scope calls eval. This patch sets the parent scope of the expressions introduced due to those defaults to the new block scope. R=adamk BUG=chromium:616386 Review-Url: https://codereview.chromium.org/2077283004 Cr-Commit-Position: refs/heads/master@{#37198}
-
- 10 May, 2016 1 commit
-
-
adamk authored
When the rewriter moves a temporary variable between scopes, it must be sure to maintain the order, so that the rewritten order is the same as it would have been without rewriting. To expose the difference in behavior, this patch removes the superfluous visitation of ForOfStatement::each() from AstExpressionVisitor, which happened to be the only thing keeping all the temporaries in order in mjsunit/harmony/regress/regress-crbug-578038.js. Without the proper order, this test would fail under --stress-opt, because the ".for" variable (behind the "each" proxy) would get two different positions in the scope, one on first parse (with rewriting) and the other on second parse (lazy parsing for optimization). A follow-up patch will remove each() and iterable() from ForOfStatement altogether, but I wanted to keep this patch small to highlight exactly the bit of code needed to make the test pass when not visiting each(). BUG=v8:4791 LOG=n Review-Url: https://codereview.chromium.org/1784893003 Cr-Commit-Position: refs/heads/master@{#36150}
-
- 15 Apr, 2016 1 commit
-
-
nikolaos authored
This patch correctly re-scopes inner scopes that can appear in do expressions used as initializers to arrow parameters. R=rossberg@chromium.org BUG=v8:4904 LOG=N Review URL: https://codereview.chromium.org/1887743002 Cr-Commit-Position: refs/heads/master@{#35542}
-
- 01 Mar, 2016 1 commit
-
-
nikolaos authored
R=rossberg@chromium.org BUG=v8:4783 LOG=N Review URL: https://codereview.chromium.org/1747853002 Cr-Commit-Position: refs/heads/master@{#34382}
-
- 08 Jan, 2016 1 commit
-
-
nikolaos authored
This patch introduces a mechanism for changing the scope of temporary variables, which is necessary for rewriting arrow parameter initializers. It also fixes a potential bug in AstExpressionVisitor, which did not visit the automatically generated members of ForEachStatement. Fixes test/mjsunit/harmony/regress/regress-4658.js R=rossberg@chromium.org BUG=v8:4658 LOG=N Review URL: https://codereview.chromium.org/1564343002 Cr-Commit-Position: refs/heads/master@{#33183}
-
- 26 Nov, 2015 1 commit
-
-
rossberg authored
Moves all files related to AST and scopes into ast/, and all files related to scanner & parser to parsing/. Also eliminates a couple of spurious dependencies. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1481613002 Cr-Commit-Position: refs/heads/master@{#32351}
-
- 21 Oct, 2015 2 commits
-
-
adamk authored
R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1418803002 Cr-Commit-Position: refs/heads/master@{#31441}
-
adamk authored
When eagerly parsing arrow functions, expressions in default parameter initializers are parsed in the enclosing scope, rather than in the function's scope (since that scope does not yet exist). This leads to VariableProxies being added to the wrong scope, and scope chains for FunctionLiterals being incorrect. This patch addresses these problems by adding a subclass of AstExpressionVisitor that moves VariableProxies to the proper scope and fixes up scope chains of FunctionLiterals. This is a revert of the revert https://crrev.com/e41614a058426fb6102e4ab2dd4f98997f00c0fc with a much-improved (though not yet perfect) Scope::ResetOuterScope method which properly fixes not only the outer_scope_ pointer but also fixes the inner_scope_ list in the relevant outer_scopes. More work likely still needs to be done to make this work completely, but it's very close to correct. BUG=v8:4395 LOG=y Review URL: https://codereview.chromium.org/1414283002 Cr-Commit-Position: refs/heads/master@{#31435}
-
- 20 Oct, 2015 2 commits
-
-
bmeurer authored
Revert of [es6] Fix scoping for default parameters in arrow functions (patchset #5 id:80001 of https://codereview.chromium.org/1405313002/ ) Reason for revert: Breaks nosnap: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug%20-%202/builds/2407/steps/Check/logs/regress-4395 Original issue's description: > [es6] Fix scoping for default parameters in arrow functions > > When eagerly parsing arrow functions, expressions in default > parameter initializers are parsed in the enclosing scope, > rather than in the function's scope (since that scope does not > yet exist). This leads to VariableProxies being added to the > wrong scope, and scope chains for FunctionLiterals being incorrect. > > This patch addresses these problems by adding a subclass of > AstExpressionVisitor that moves VariableProxies to the proper > scope and fixes up scope chains of FunctionLiterals. > > More work likely still needs to be done to make this work completely, > but it's very close to correct. > > BUG=v8:4395 > LOG=y > > Committed: https://crrev.com/cf72aad39e51de9b7074ea039377c1812f4a2c6b > Cr-Commit-Position: refs/heads/master@{#31402} TBR=rossberg@chromium.org,caitpotter88@gmail.com,adamk@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4395 Review URL: https://codereview.chromium.org/1417463004 Cr-Commit-Position: refs/heads/master@{#31404}
-
adamk authored
When eagerly parsing arrow functions, expressions in default parameter initializers are parsed in the enclosing scope, rather than in the function's scope (since that scope does not yet exist). This leads to VariableProxies being added to the wrong scope, and scope chains for FunctionLiterals being incorrect. This patch addresses these problems by adding a subclass of AstExpressionVisitor that moves VariableProxies to the proper scope and fixes up scope chains of FunctionLiterals. More work likely still needs to be done to make this work completely, but it's very close to correct. BUG=v8:4395 LOG=y Review URL: https://codereview.chromium.org/1405313002 Cr-Commit-Position: refs/heads/master@{#31402}
-