Index: src/parsing/parser.cc |
diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc |
index ee2a696d458b2441135e61a88fcb25f748e7db68..ed2bfb63cd983abb64f68632f39d55a101bd3a1c 100644 |
--- a/src/parsing/parser.cc |
+++ b/src/parsing/parser.cc |
@@ -392,10 +392,10 @@ FunctionLiteral* Parser::DefaultConstructor(bool call_super, Scope* scope, |
} |
FunctionLiteral* function_literal = factory()->NewFunctionLiteral( |
- name, ast_value_factory(), function_scope, body, |
- materialized_literal_count, expected_property_count, parameter_count, |
+ name, function_scope, body, materialized_literal_count, |
+ expected_property_count, parameter_count, |
FunctionLiteral::kNoDuplicateParameters, |
- FunctionLiteral::ANONYMOUS_EXPRESSION, FunctionLiteral::kIsFunction, |
+ FunctionLiteral::kAnonymousExpression, |
FunctionLiteral::kShouldLazyCompile, kind, pos); |
return function_literal; |
@@ -1103,13 +1103,12 @@ FunctionLiteral* Parser::DoParseProgram(ParseInfo* info) { |
if (ok) { |
ParserTraits::RewriteDestructuringAssignments(); |
result = factory()->NewFunctionLiteral( |
- ast_value_factory()->empty_string(), ast_value_factory(), scope_, |
- body, function_state.materialized_literal_count(), |
+ ast_value_factory()->empty_string(), scope_, body, |
+ function_state.materialized_literal_count(), |
function_state.expected_property_count(), 0, |
FunctionLiteral::kNoDuplicateParameters, |
- FunctionLiteral::ANONYMOUS_EXPRESSION, FunctionLiteral::kGlobalOrEval, |
- FunctionLiteral::kShouldLazyCompile, FunctionKind::kNormalFunction, |
- 0); |
+ FunctionLiteral::kGlobalOrEval, FunctionLiteral::kShouldLazyCompile, |
+ FunctionKind::kNormalFunction, 0); |
} |
} |
@@ -1195,11 +1194,12 @@ FunctionLiteral* Parser::ParseLazy(Isolate* isolate, ParseInfo* info, |
DCHECK(is_sloppy(scope->language_mode()) || |
is_strict(info->language_mode())); |
DCHECK(info->language_mode() == shared_info->language_mode()); |
- FunctionLiteral::FunctionType function_type = shared_info->is_expression() |
- ? (shared_info->is_anonymous() |
- ? FunctionLiteral::ANONYMOUS_EXPRESSION |
- : FunctionLiteral::NAMED_EXPRESSION) |
- : FunctionLiteral::DECLARATION; |
+ FunctionLiteral::FunctionType function_type = |
+ shared_info->is_expression() |
+ ? (shared_info->is_anonymous() |
+ ? FunctionLiteral::kAnonymousExpression |
+ : FunctionLiteral::kNamedExpression) |
+ : FunctionLiteral::kDeclaration; |
bool ok = true; |
if (shared_info->is_arrow()) { |
@@ -1261,7 +1261,7 @@ FunctionLiteral* Parser::ParseLazy(Isolate* isolate, ParseInfo* info, |
result = ParseFunctionLiteral( |
raw_name, Scanner::Location::invalid(), kSkipFunctionNameCheck, |
shared_info->kind(), RelocInfo::kNoPosition, function_type, |
- FunctionLiteral::NORMAL_ARITY, shared_info->language_mode(), &ok); |
+ FunctionLiteral::kNormalArity, shared_info->language_mode(), &ok); |
} |
// Make sure the results agree. |
DCHECK(ok == (result != NULL)); |
@@ -2266,7 +2266,7 @@ Statement* Parser::ParseFunctionDeclaration( |
: kFunctionNameValidityUnknown, |
is_generator ? FunctionKind::kGeneratorFunction |
: FunctionKind::kNormalFunction, |
- pos, FunctionLiteral::DECLARATION, FunctionLiteral::NORMAL_ARITY, |
+ pos, FunctionLiteral::kDeclaration, FunctionLiteral::kNormalArity, |
language_mode(), CHECK_OK); |
// Even if we're not at the top-level of the global or a function |
@@ -4265,7 +4265,7 @@ FunctionLiteral* Parser::ParseFunctionLiteral( |
// nested function, and hoisting works normally relative to that. |
Scope* declaration_scope = scope_->DeclarationScope(); |
Scope* original_declaration_scope = original_scope_->DeclarationScope(); |
- Scope* scope = function_type == FunctionLiteral::DECLARATION && |
+ Scope* scope = function_type == FunctionLiteral::kDeclaration && |
is_sloppy(language_mode) && |
!allow_harmony_sloppy_function() && |
(original_scope_ == original_declaration_scope || |
@@ -4399,7 +4399,7 @@ FunctionLiteral* Parser::ParseFunctionLiteral( |
// - The function literal shouldn't be hinted to eagerly compile. |
bool use_temp_zone = |
FLAG_lazy && !allow_natives() && extension_ == NULL && allow_lazy() && |
- function_type == FunctionLiteral::DECLARATION && |
+ function_type == FunctionLiteral::kDeclaration && |
eager_compile_hint != FunctionLiteral::kShouldEagerCompile; |
// Open a new BodyScope, which sets our AstNodeFactory to allocate in the |
// new temporary zone if the preconditions are satisfied, and ensures that |
@@ -4471,9 +4471,8 @@ FunctionLiteral* Parser::ParseFunctionLiteral( |
: FunctionLiteral::kNoDuplicateParameters; |
FunctionLiteral* function_literal = factory()->NewFunctionLiteral( |
- function_name, ast_value_factory(), scope, body, |
- materialized_literal_count, expected_property_count, arity, |
- duplicate_parameters, function_type, FunctionLiteral::kIsFunction, |
+ function_name, scope, body, materialized_literal_count, |
+ expected_property_count, arity, duplicate_parameters, function_type, |
eager_compile_hint, kind, pos); |
function_literal->set_function_token_position(function_token_pos); |
if (should_be_used_once_hint) |
@@ -4713,7 +4712,7 @@ ZoneList<Statement*>* Parser::ParseEagerFunctionBody( |
ZoneList<Statement*>* result = new(zone()) ZoneList<Statement*>(8, zone()); |
static const int kFunctionNameAssignmentIndex = 0; |
- if (function_type == FunctionLiteral::NAMED_EXPRESSION) { |
+ if (function_type == FunctionLiteral::kNamedExpression) { |
DCHECK(function_name != NULL); |
// If we have a named function expression, we add a local variable |
// declaration to the body of the function with the name of the |
@@ -4800,7 +4799,7 @@ ZoneList<Statement*>* Parser::ParseEagerFunctionBody( |
result->Add(inner_block, zone()); |
} |
- if (function_type == FunctionLiteral::NAMED_EXPRESSION) { |
+ if (function_type == FunctionLiteral::kNamedExpression) { |
// Now that we know the language mode, we can create the const assignment |
// in the previously reserved spot. |
// NOTE: We create a proxy and resolve it here so that in the |