| Index: src/scopes.h
|
| diff --git a/src/scopes.h b/src/scopes.h
|
| index d08e2948242d1e52e61c33853d5e8281a2063b27..209cd0e74a5f8bbc537b4c23a3c8a51523e45f62 100644
|
| --- a/src/scopes.h
|
| +++ b/src/scopes.h
|
| @@ -93,8 +93,7 @@ class Scope: public ZoneObject {
|
| // doesn't re-allocate variables repeatedly.
|
| static bool Analyze(CompilationInfo* info);
|
|
|
| - static Scope* DeserializeScopeChain(CompilationInfo* info,
|
| - Scope* innermost_scope);
|
| + static Scope* DeserializeScopeChain(Context* context, Scope* global_scope);
|
|
|
| // The scope name is only used for printing/debugging.
|
| void SetScopeName(Handle<String> scope_name) { scope_name_ = scope_name; }
|
| @@ -112,6 +111,12 @@ class Scope: public ZoneObject {
|
| // Lookup a variable in this scope. Returns the variable or NULL if not found.
|
| Variable* LocalLookup(Handle<String> name);
|
|
|
| + // This lookup corresponds to a lookup in the "intermediate" scope sitting
|
| + // between this scope and the outer scope. (ECMA-262, 3rd., requires that
|
| + // the name of named function literal is kept in an intermediate scope
|
| + // in between this scope and the next outer scope.)
|
| + Variable* LookupFunctionVar(Handle<String> name);
|
| +
|
| // Lookup a variable in this scope or outer scopes.
|
| // Returns the variable or NULL if not found.
|
| Variable* Lookup(Handle<String> name);
|
| @@ -317,7 +322,7 @@ class Scope: public ZoneObject {
|
| // In the case of code compiled and run using 'eval', the context
|
| // parameter is the context in which eval was called. In all other
|
| // cases the context parameter is an empty handle.
|
| - void AllocateVariables(Handle<Context> context);
|
| + void AllocateVariables(Scope* global_scope);
|
|
|
| // Current number of var or const locals.
|
| int num_var_or_const() { return num_var_or_const_; }
|
| @@ -504,13 +509,10 @@ class Scope: public ZoneObject {
|
| // scope. If the code is executed because of a call to 'eval', the context
|
| // parameter should be set to the calling context of 'eval'.
|
| Variable* LookupRecursive(Handle<String> name,
|
| - Handle<Context> context,
|
| BindingKind* binding_kind);
|
| void ResolveVariable(Scope* global_scope,
|
| - Handle<Context> context,
|
| VariableProxy* proxy);
|
| - void ResolveVariablesRecursively(Scope* global_scope,
|
| - Handle<Context> context);
|
| + void ResolveVariablesRecursively(Scope* global_scope);
|
|
|
| // Scope analysis.
|
| bool PropagateScopeInfo(bool outer_scope_calls_non_strict_eval);
|
|
|