Index: src/parser.cc |
diff --git a/src/parser.cc b/src/parser.cc |
index 04efd1ec747089ac0106596972f043a6e212bbe8..f36cc3fd93f3a745c11696d0bf5a9ad6c19e57bb 100644 |
--- a/src/parser.cc |
+++ b/src/parser.cc |
@@ -877,8 +877,10 @@ FunctionLiteral* Parser::DoParseProgram(CompilationInfo* info, Scope** scope, |
ParsingModeScope parsing_mode(this, mode); |
// Enters 'scope'. |
- FunctionState function_state(&function_state_, &scope_, *scope, zone(), |
- ast_value_factory(), info->ast_node_id_gen()); |
+ AstNodeFactory<AstConstructionVisitor> function_factory( |
+ zone(), ast_value_factory(), info->ast_node_id_gen()); |
+ FunctionState function_state(&function_state_, &scope_, *scope, |
+ &function_factory); |
scope_->SetStrictMode(info->strict_mode()); |
ZoneList<Statement*>* body = new(zone()) ZoneList<Statement*>(16, zone()); |
@@ -990,9 +992,10 @@ FunctionLiteral* Parser::ParseLazy(Utf16CharacterStream* source) { |
zone()); |
} |
original_scope_ = scope; |
- FunctionState function_state(&function_state_, &scope_, scope, zone(), |
- ast_value_factory(), |
- info()->ast_node_id_gen()); |
+ AstNodeFactory<AstConstructionVisitor> function_factory( |
+ zone(), ast_value_factory(), info()->ast_node_id_gen()); |
+ FunctionState function_state(&function_state_, &scope_, scope, |
+ &function_factory); |
DCHECK(scope->strict_mode() == SLOPPY || info()->strict_mode() == STRICT); |
DCHECK(info()->strict_mode() == shared_info->strict_mode()); |
scope->SetStrictMode(shared_info->strict_mode()); |
@@ -3491,9 +3494,10 @@ FunctionLiteral* Parser::ParseFunctionLiteral( |
BailoutReason dont_optimize_reason = kNoReason; |
// Parse function body. |
{ |
- FunctionState function_state(&function_state_, &scope_, scope, zone(), |
- ast_value_factory(), |
- info()->ast_node_id_gen()); |
+ AstNodeFactory<AstConstructionVisitor> function_factory( |
+ zone(), ast_value_factory(), info()->ast_node_id_gen()); |
+ FunctionState function_state(&function_state_, &scope_, scope, |
+ &function_factory); |
scope_->SetScopeName(function_name); |
if (is_generator) { |