Chromium Code Reviews| Index: src/ast/ast.h |
| diff --git a/src/ast/ast.h b/src/ast/ast.h |
| index 85f15fb2d0a00a32a1959f49acf482711fcaebf8..ece04edad050b108ccbbc0e971360319efa68817 100644 |
| --- a/src/ast/ast.h |
| +++ b/src/ast/ast.h |
| @@ -527,14 +527,16 @@ class VariableDeclaration final : public Declaration { |
| public: |
| DECLARE_NODE_TYPE(VariableDeclaration) |
| - InitializationFlag initialization() const { |
| - return mode() == VAR ? kCreatedInitialized : kNeedsInitialization; |
| - } |
| + InitializationFlag initialization() const { return initialization_; } |
|
adamk
2016/08/03 17:55:48
Strangely this method is only used inside the pars
|
| protected: |
| VariableDeclaration(Zone* zone, VariableProxy* proxy, VariableMode mode, |
| - Scope* scope, int pos) |
| - : Declaration(zone, proxy, mode, scope, pos, kVariableDeclaration) {} |
| + Scope* scope, InitializationFlag initialization, int pos) |
| + : Declaration(zone, proxy, mode, scope, pos, kVariableDeclaration), |
| + initialization_(initialization) {} |
| + |
| + private: |
| + InitializationFlag initialization_; |
| }; |
| @@ -3059,7 +3061,17 @@ class AstNodeFactory final BASE_EMBEDDED { |
| VariableDeclaration* NewVariableDeclaration(VariableProxy* proxy, |
| VariableMode mode, Scope* scope, |
| int pos) { |
| - return new (zone_) VariableDeclaration(zone_, proxy, mode, scope, pos); |
| + return NewVariableDeclaration( |
| + proxy, mode, scope, |
| + mode == VAR ? kCreatedInitialized : kNeedsInitialization, pos); |
| + } |
| + |
| + VariableDeclaration* NewVariableDeclaration(VariableProxy* proxy, |
| + VariableMode mode, Scope* scope, |
| + InitializationFlag init, |
| + int pos) { |
| + return new (zone_) |
| + VariableDeclaration(zone_, proxy, mode, scope, init, pos); |
| } |
| FunctionDeclaration* NewFunctionDeclaration(VariableProxy* proxy, |