Index: src/parsing/parser.cc |
diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc |
index c0f736004ff2cddda0563d6b9748b872c1c9ab8b..b74c027842ecf174e339c0aeaea41844749ce9a5 100644 |
--- a/src/parsing/parser.cc |
+++ b/src/parsing/parser.cc |
@@ -4280,10 +4280,13 @@ FunctionLiteral* Parser::ParseFunctionLiteral( |
// FunctionExpression; even without enclosing parentheses it might be |
// immediately invoked. |
// - The function literal shouldn't be hinted to eagerly compile. |
+ // - For asm.js functions the body needs to be available when module |
+ // validation is active, because we examine the entire module at once. |
bool use_temp_zone = |
FLAG_lazy && !allow_natives() && extension_ == NULL && allow_lazy() && |
function_type == FunctionLiteral::kDeclaration && |
- eager_compile_hint != FunctionLiteral::kShouldEagerCompile; |
+ eager_compile_hint != FunctionLiteral::kShouldEagerCompile && |
+ !(FLAG_validate_asm && scope->asm_function()); |
// Open a new BodyScope, which sets our AstNodeFactory to allocate in the |
// new temporary zone if the preconditions are satisfied, and ensures that |
// the previous zone is always restored after parsing the body. |