Chromium Code Reviews| Index: src/parsing/parser.h |
| diff --git a/src/parsing/parser.h b/src/parsing/parser.h |
| index 0ae8fb9cd100270fb29be1e1287c15b927420f40..d2dcca1a08f649948670f8e9531dcc592484c8af 100644 |
| --- a/src/parsing/parser.h |
| +++ b/src/parsing/parser.h |
| @@ -823,6 +823,18 @@ class V8_EXPORT_PRIVATE Parser : public NON_EXPORTED_BASE(ParserBase<Parser>) { |
| } |
| } |
| + // We have to pessimistically assume that top-level variables will be |
| + // assigned. This is because they might be accessed by a lazily parsed |
|
marja
2017/01/25 12:44:10
You could fix this comment in this CL :) (There's
|
| + // top-level function, which, for efficiency, we preparse without |
| + // variable tracking. In the case of a script (not a module), they |
| + // might also get accessed by another script. |
| + V8_INLINE static void MarkTopLevelVariableAsAssigned(Scope* scope, |
| + VariableProxy* proxy) { |
| + if (scope->is_script_scope() || scope->is_module_scope()) { |
|
adamk
2017/01/27 16:07:36
I thought we currently disable preparsing of funct
|
| + proxy->set_is_assigned(); |
| + } |
| + } |
| + |
| // Returns true if we have a binary expression between two numeric |
| // literals. In that case, *x will be changed to an expression which is the |
| // computed value. |