Chromium Code Reviews| Index: src/scopes.cc |
| diff --git a/src/scopes.cc b/src/scopes.cc |
| index e1297b332ca52bd224bce0129ae3c72d3419ceac..440c7f280b4820c2dd814a2f6187b4705e6de99a 100644 |
| --- a/src/scopes.cc |
| +++ b/src/scopes.cc |
| @@ -160,6 +160,8 @@ void Scope::SetDefaults(ScopeType scope_type, |
| scope_inside_with_ = false; |
| scope_contains_with_ = false; |
| scope_calls_eval_ = false; |
| + asm_module_ = false; |
| + asm_function_ = outer_scope != NULL && outer_scope->asm_module_; |
|
Michael Starzinger
2014/09/18 19:12:34
This only applies of the scope_type is FUNCTION_SC
titzer
2014/09/19 11:38:21
Eh, the scope creation tangle is hard to follow an
Michael Starzinger
2014/09/19 11:40:59
Acknowledged.
|
| // Inherit the strict mode from the parent scope. |
| strict_mode_ = outer_scope != NULL ? outer_scope->strict_mode_ : SLOPPY; |
| outer_scope_calls_sloppy_eval_ = false; |
| @@ -222,6 +224,8 @@ Scope* Scope::DeserializeScopeChain(Context* context, Scope* global_scope, |
| Handle<ScopeInfo>(scope_info), |
| global_scope->ast_value_factory_, |
| zone); |
| + if (scope_info->IsAsmFunction()) current_scope->asm_function_ = true; |
| + if (scope_info->IsAsmModule()) current_scope->asm_module_ = true; |
| } else if (context->IsBlockContext()) { |
| ScopeInfo* scope_info = ScopeInfo::cast(context->extension()); |
| current_scope = new(zone) Scope(current_scope, |
| @@ -1165,6 +1169,9 @@ void Scope::PropagateScopeInfo(bool outer_scope_calls_sloppy_eval ) { |
| if (inner->force_eager_compilation_) { |
| force_eager_compilation_ = true; |
| } |
| + if (asm_module_ && inner->scope_type() == FUNCTION_SCOPE) { |
| + inner->asm_function_ = true; |
| + } |
| } |
| } |