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, |