| Index: src/scopes.h
|
| ===================================================================
|
| --- src/scopes.h (revision 1302)
|
| +++ src/scopes.h (working copy)
|
| @@ -166,10 +166,13 @@
|
| bool is_function_scope() const { return type_ == FUNCTION_SCOPE; }
|
| bool is_global_scope() const { return type_ == GLOBAL_SCOPE; }
|
|
|
| + // Information about which scopes calls eval.
|
| + bool calls_eval() const { return scope_calls_eval_; }
|
| + bool outer_scope_calls_eval() const { return outer_scope_calls_eval_; }
|
| +
|
| // The scope immediately surrounding this scope, or NULL.
|
| Scope* outer_scope() const { return outer_scope_; }
|
|
|
| -
|
| // ---------------------------------------------------------------------------
|
| // Accessors.
|
|
|
| @@ -290,6 +293,7 @@
|
| // Computed via PropagateScopeInfo.
|
| bool outer_scope_calls_eval_;
|
| bool inner_scope_calls_eval_;
|
| + bool outer_scope_is_eval_scope_;
|
| bool force_eager_compilation_;
|
|
|
| // Computed via AllocateVariables; function scopes only.
|
| @@ -298,15 +302,18 @@
|
|
|
| // Create a non-local variable with a given name.
|
| // These variables are looked up dynamically at runtime.
|
| - Variable* NonLocal(Handle<String> name);
|
| + Variable* NonLocal(Handle<String> name, Variable::Mode mode);
|
|
|
| // Variable resolution.
|
| - Variable* LookupRecursive(Handle<String> name, bool inner_lookup);
|
| + Variable* LookupRecursive(Handle<String> name,
|
| + bool inner_lookup,
|
| + Variable** invalidated_local);
|
| void ResolveVariable(Scope* global_scope, VariableProxy* proxy);
|
| void ResolveVariablesRecursively(Scope* global_scope);
|
|
|
| // Scope analysis.
|
| - bool PropagateScopeInfo(bool outer_scope_calls_eval);
|
| + bool PropagateScopeInfo(bool outer_scope_calls_eval,
|
| + bool outer_scope_is_eval_scope);
|
| bool HasTrivialContext() const;
|
|
|
| // Predicates.
|
|
|