Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 4e0a86b318c2a8225cefe177bb4bce23269e0677..f0544e7282b6d912dfb05e1eb23874c4e7db853f 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -303,7 +303,7 @@ static Handle<Map> ComputeObjectLiteralMap( |
} |
} |
// If we only have symbols and array indices among keys then we can |
- // use the map cache in the native context. |
+ // use the map cache in the global context. |
const int kMaxKeys = 10; |
if ((number_of_symbol_keys == number_of_properties) && |
(number_of_symbol_keys < kMaxKeys)) { |
@@ -342,14 +342,14 @@ static Handle<Object> CreateObjectLiteralBoilerplate( |
Handle<FixedArray> constant_properties, |
bool should_have_fast_elements, |
bool has_function_literal) { |
- // Get the native context from the literals array. This is the |
+ // Get the global context from the literals array. This is the |
// context in which the function was created and we use the object |
// function from this context to create the object literal. We do |
- // not use the object function from the current native context |
+ // not use the object function from the current global context |
// because this might be the object function from another context |
// which we should not have access to. |
Handle<Context> context = |
- Handle<Context>(JSFunction::NativeContextFromLiterals(*literals)); |
+ Handle<Context>(JSFunction::GlobalContextFromLiterals(*literals)); |
// In case we have function literals, we want the object to be in |
// slow properties mode for now. We don't go in the map cache because |
@@ -464,7 +464,7 @@ Handle<Object> Runtime::CreateArrayLiteralBoilerplate( |
Handle<FixedArray> elements) { |
// Create the JSArray. |
Handle<JSFunction> constructor( |
- JSFunction::NativeContextFromLiterals(*literals)->array_function()); |
+ JSFunction::GlobalContextFromLiterals(*literals)->array_function()); |
Handle<JSArray> object = |
Handle<JSArray>::cast(isolate->factory()->NewJSObject(constructor)); |
@@ -474,8 +474,8 @@ Handle<Object> Runtime::CreateArrayLiteralBoilerplate( |
FixedArrayBase::cast(elements->get(1))); |
ASSERT(IsFastElementsKind(constant_elements_kind)); |
- Context* native_context = isolate->context()->native_context(); |
- Object* maybe_maps_array = native_context->js_array_maps(); |
+ Context* global_context = isolate->context()->global_context(); |
+ Object* maybe_maps_array = global_context->js_array_maps(); |
ASSERT(!maybe_maps_array->IsUndefined()); |
Object* maybe_map = FixedArray::cast(maybe_maps_array)->get( |
constant_elements_kind); |
@@ -1338,7 +1338,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DeclareGlobals) { |
ASSERT(args.length() == 3); |
HandleScope scope(isolate); |
Handle<GlobalObject> global = Handle<GlobalObject>( |
- isolate->context()->global_object()); |
+ isolate->context()->global()); |
Handle<Context> context = args.at<Context>(0); |
CONVERT_ARG_HANDLE_CHECKED(FixedArray, pairs, 1); |
@@ -1446,7 +1446,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DeclareContextSlot) { |
HandleScope scope(isolate); |
ASSERT(args.length() == 4); |
- // Declarations are always made in a function or native context. In the |
+ // Declarations are always made in a function or global context. In the |
// case of eval code, the context passed is the context of the caller, |
// which may be some nested context and not the declaration context. |
RUNTIME_ASSERT(args[0]->IsContext()); |
@@ -1485,7 +1485,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DeclareContextSlot) { |
} |
} else { |
// Slow case: The property is in the context extension object of a |
- // function context or the global object of a native context. |
+ // function context or the global object of a global context. |
Handle<JSObject> object = Handle<JSObject>::cast(holder); |
RETURN_IF_EMPTY_HANDLE( |
isolate, |
@@ -1556,7 +1556,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_InitializeVarGlobal) { |
bool assign = args.length() == 3; |
CONVERT_ARG_HANDLE_CHECKED(String, name, 0); |
- GlobalObject* global = isolate->context()->global_object(); |
+ GlobalObject* global = isolate->context()->global(); |
RUNTIME_ASSERT(args[1]->IsSmi()); |
CONVERT_LANGUAGE_MODE_ARG(language_mode, 1); |
StrictModeFlag strict_mode_flag = (language_mode == CLASSIC_MODE) |
@@ -1599,7 +1599,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_InitializeVarGlobal) { |
} |
// Reload global in case the loop above performed a GC. |
- global = isolate->context()->global_object(); |
+ global = isolate->context()->global(); |
if (assign) { |
return global->SetProperty(*name, args[2], attributes, strict_mode_flag); |
} |
@@ -1616,7 +1616,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_InitializeConstGlobal) { |
Handle<Object> value = args.at<Object>(1); |
// Get the current global object from top. |
- GlobalObject* global = isolate->context()->global_object(); |
+ GlobalObject* global = isolate->context()->global(); |
// According to ECMA-262, section 12.2, page 62, the property must |
// not be deletable. Since it's a const, it must be READ_ONLY too. |
@@ -1640,7 +1640,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_InitializeConstGlobal) { |
// Restore global object from context (in case of GC) and continue |
// with setting the value. |
HandleScope handle_scope(isolate); |
- Handle<GlobalObject> global(isolate->context()->global_object()); |
+ Handle<GlobalObject> global(isolate->context()->global()); |
// BUG 1213575: Handle the case where we have to set a read-only |
// property through an interceptor and only do it if it's |
@@ -1686,7 +1686,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_InitializeConstContextSlot) { |
Handle<Object> value(args[0], isolate); |
ASSERT(!value->IsTheHole()); |
- // Initializations are always done in a function or native context. |
+ // Initializations are always done in a function or global context. |
RUNTIME_ASSERT(args[1]->IsContext()); |
Handle<Context> context(Context::cast(args[1])->declaration_context()); |
@@ -1714,7 +1714,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_InitializeConstContextSlot) { |
// global object. |
if (attributes == ABSENT) { |
Handle<JSObject> global = Handle<JSObject>( |
- isolate->context()->global_object()); |
+ isolate->context()->global()); |
// Strict mode not needed (const disallowed in strict mode). |
RETURN_IF_EMPTY_HANDLE( |
isolate, |
@@ -1835,7 +1835,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_RegExpConstructResult) { |
AssertNoAllocation no_gc; |
HandleScope scope(isolate); |
reinterpret_cast<HeapObject*>(new_object)-> |
- set_map(isolate->native_context()->regexp_result_map()); |
+ set_map(isolate->global_context()->regexp_result_map()); |
} |
JSArray* array = JSArray::cast(new_object); |
array->set_properties(isolate->heap()->empty_fixed_array()); |
@@ -1987,9 +1987,9 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetDefaultReceiver) { |
// Returns undefined for strict or native functions, or |
// the associated global receiver for "normal" functions. |
- Context* native_context = |
- function->context()->global_object()->native_context(); |
- return native_context->global_object()->global_receiver(); |
+ Context* global_context = |
+ function->context()->global()->global_context(); |
+ return global_context->global()->global_receiver(); |
} |
@@ -2004,11 +2004,11 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_MaterializeRegExpLiteral) { |
// Get the RegExp function from the context in the literals array. |
// This is the RegExp function from the context in which the |
// function was created. We do not use the RegExp function from the |
- // current native context because this might be the RegExp function |
+ // current global context because this might be the RegExp function |
// from another context which we should not have access to. |
Handle<JSFunction> constructor = |
Handle<JSFunction>( |
- JSFunction::NativeContextFromLiterals(*literals)->regexp_function()); |
+ JSFunction::GlobalContextFromLiterals(*literals)->regexp_function()); |
// Compute the regular expression literal. |
bool has_pending_exception; |
Handle<Object> regexp = |
@@ -2262,8 +2262,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_SetCode) { |
Handle<FixedArray> literals = |
isolate->factory()->NewFixedArray(number_of_literals, TENURED); |
if (number_of_literals > 0) { |
- literals->set(JSFunction::kLiteralNativeContextIndex, |
- context->native_context()); |
+ literals->set(JSFunction::kLiteralGlobalContextIndex, |
+ context->global_context()); |
} |
target->set_context(*context); |
target->set_literals(*literals); |
@@ -8180,7 +8180,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NewObject) { |
// instead of a new JSFunction object. This way, errors are |
// reported the same way whether or not 'Function' is called |
// using 'new'. |
- return isolate->context()->global_object(); |
+ return isolate->context()->global(); |
} |
} |
@@ -8783,8 +8783,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_PushWithContext) { |
if (args[1]->IsSmi()) { |
// A smi sentinel indicates a context nested inside global code rather |
// than some function. There is a canonical empty function that can be |
- // gotten from the native context. |
- function = isolate->context()->native_context()->closure(); |
+ // gotten from the global context. |
+ function = isolate->context()->global_context()->closure(); |
} else { |
function = JSFunction::cast(args[1]); |
} |
@@ -8809,8 +8809,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_PushCatchContext) { |
if (args[2]->IsSmi()) { |
// A smi sentinel indicates a context nested inside global code rather |
// than some function. There is a canonical empty function that can be |
- // gotten from the native context. |
- function = isolate->context()->native_context()->closure(); |
+ // gotten from the global context. |
+ function = isolate->context()->global_context()->closure(); |
} else { |
function = JSFunction::cast(args[2]); |
} |
@@ -8834,8 +8834,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_PushBlockContext) { |
if (args[1]->IsSmi()) { |
// A smi sentinel indicates a context nested inside global code rather |
// than some function. There is a canonical empty function that can be |
- // gotten from the native context. |
- function = isolate->context()->native_context()->closure(); |
+ // gotten from the global context. |
+ function = isolate->context()->global_context()->closure(); |
} else { |
function = JSFunction::cast(args[1]); |
} |
@@ -8868,7 +8868,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_PushModuleContext) { |
// Initialize the context links. |
context->set_previous(previous); |
context->set_closure(previous->closure()); |
- context->set_global_object(previous->global_object()); |
+ context->set_global(previous->global()); |
isolate->set_context(context); |
return context; |
@@ -8954,7 +8954,7 @@ static Object* ComputeReceiverForNonGlobal(Isolate* isolate, |
Context* top = isolate->context(); |
// Get the context extension function. |
JSFunction* context_extension_function = |
- top->native_context()->context_extension_function(); |
+ top->global_context()->context_extension_function(); |
// If the holder isn't a context extension object, we just return it |
// as the receiver. This allows arguments objects to be used as |
// receivers, but only if they are put in the context scope chain |
@@ -9133,7 +9133,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StoreContextSlot) { |
} |
// In non-strict mode, the property is added to the global object. |
attributes = NONE; |
- object = Handle<JSObject>(isolate->context()->global_object()); |
+ object = Handle<JSObject>(isolate->context()->global()); |
} |
// Set the property if it's not read only or doesn't yet exist. |
@@ -9416,10 +9416,10 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CompileString) { |
ASSERT_EQ(1, args.length()); |
CONVERT_ARG_HANDLE_CHECKED(String, source, 0); |
- // Extract native context. |
- Handle<Context> context(isolate->context()->native_context()); |
+ // Extract global context. |
+ Handle<Context> context(isolate->context()->global_context()); |
- // Check if native context allows code generation from |
+ // Check if global context allows code generation from |
// strings. Throw an exception if it doesn't. |
if (context->allow_code_gen_from_strings()->IsFalse() && |
!CodeGenerationFromStringsAllowed(isolate, context)) { |
@@ -9427,7 +9427,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CompileString) { |
"code_gen_from_strings", HandleVector<Object>(NULL, 0))); |
} |
- // Compile source string in the native context. |
+ // Compile source string in the global context. |
Handle<SharedFunctionInfo> shared = Compiler::CompileEval( |
source, context, true, CLASSIC_MODE, RelocInfo::kNoPosition); |
if (shared.is_null()) return Failure::Exception(); |
@@ -9445,12 +9445,12 @@ static ObjectPair CompileGlobalEval(Isolate* isolate, |
LanguageMode language_mode, |
int scope_position) { |
Handle<Context> context = Handle<Context>(isolate->context()); |
- Handle<Context> native_context = Handle<Context>(context->native_context()); |
+ Handle<Context> global_context = Handle<Context>(context->global_context()); |
- // Check if native context allows code generation from |
+ // Check if global context allows code generation from |
// strings. Throw an exception if it doesn't. |
- if (native_context->allow_code_gen_from_strings()->IsFalse() && |
- !CodeGenerationFromStringsAllowed(isolate, native_context)) { |
+ if (global_context->allow_code_gen_from_strings()->IsFalse() && |
+ !CodeGenerationFromStringsAllowed(isolate, global_context)) { |
isolate->Throw(*isolate->factory()->NewError( |
"code_gen_from_strings", HandleVector<Object>(NULL, 0))); |
return MakePair(Failure::Exception(), NULL); |
@@ -9461,7 +9461,7 @@ static ObjectPair CompileGlobalEval(Isolate* isolate, |
Handle<SharedFunctionInfo> shared = Compiler::CompileEval( |
source, |
Handle<Context>(isolate->context()), |
- context->IsNativeContext(), |
+ context->IsGlobalContext(), |
language_mode, |
scope_position); |
if (shared.is_null()) return MakePair(Failure::Exception(), NULL); |
@@ -9483,7 +9483,7 @@ RUNTIME_FUNCTION(ObjectPair, Runtime_ResolvePossiblyDirectEval) { |
// (And even if it is, but the first argument isn't a string, just let |
// execution default to an indirect call to eval, which will also return |
// the first argument without doing anything). |
- if (*callee != isolate->native_context()->global_eval_fun() || |
+ if (*callee != isolate->global_context()->global_eval_fun() || |
!args[1]->IsString()) { |
return MakePair(*callee, isolate->heap()->the_hole_value()); |
} |
@@ -10388,7 +10388,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugGetPropertyDetails) { |
// entered (if the debugger is entered). The reason for switching context here |
// is that for some property lookups (accessors and interceptors) callbacks |
// into the embedding application can occour, and the embedding application |
- // could have the assumption that its own native context is the current |
+ // could have the assumption that its own global context is the current |
// context and not some internal debugger context. |
SaveContext save(isolate); |
if (isolate->debug()->InDebugger()) { |
@@ -10933,12 +10933,12 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetFrameDetails) { |
// value object is not converted into a wrapped JS objects. To |
// hide this optimization from the debugger, we wrap the receiver |
// by creating correct wrapper object based on the calling frame's |
- // native context. |
+ // global context. |
it.Advance(); |
- Handle<Context> calling_frames_native_context( |
- Context::cast(Context::cast(it.frame()->context())->native_context())); |
+ Handle<Context> calling_frames_global_context( |
+ Context::cast(Context::cast(it.frame()->context())->global_context())); |
receiver = |
- isolate->factory()->ToObject(receiver, calling_frames_native_context); |
+ isolate->factory()->ToObject(receiver, calling_frames_global_context); |
} |
details->set(kFrameDetailsReceiverIndex, *receiver); |
@@ -11030,7 +11030,7 @@ static Handle<JSObject> MaterializeLocalScopeWithFrameInspector( |
// These will be variables introduced by eval. |
if (function_context->closure() == *function) { |
if (function_context->has_extension() && |
- !function_context->IsNativeContext()) { |
+ !function_context->IsGlobalContext()) { |
Handle<JSObject> ext(JSObject::cast(function_context->extension())); |
bool threw = false; |
Handle<FixedArray> keys = |
@@ -11292,7 +11292,7 @@ class ScopeIterator { |
ScopeType scope_type = Type(); |
if (scope_type == ScopeTypeGlobal) { |
// The global scope is always the last in the chain. |
- ASSERT(context_->IsNativeContext()); |
+ ASSERT(context_->IsGlobalContext()); |
context_ = Handle<Context>(); |
return; |
} |
@@ -11320,7 +11320,7 @@ class ScopeIterator { |
ASSERT(context_->IsModuleContext()); |
return ScopeTypeModule; |
case GLOBAL_SCOPE: |
- ASSERT(context_->IsNativeContext()); |
+ ASSERT(context_->IsGlobalContext()); |
return ScopeTypeGlobal; |
case WITH_SCOPE: |
ASSERT(context_->IsWithContext()); |
@@ -11336,8 +11336,8 @@ class ScopeIterator { |
UNREACHABLE(); |
} |
} |
- if (context_->IsNativeContext()) { |
- ASSERT(context_->global_object()->IsGlobalObject()); |
+ if (context_->IsGlobalContext()) { |
+ ASSERT(context_->global()->IsGlobalObject()); |
return ScopeTypeGlobal; |
} |
if (context_->IsFunctionContext()) { |
@@ -11360,7 +11360,7 @@ class ScopeIterator { |
Handle<JSObject> ScopeObject() { |
switch (Type()) { |
case ScopeIterator::ScopeTypeGlobal: |
- return Handle<JSObject>(CurrentContext()->global_object()); |
+ return Handle<JSObject>(CurrentContext()->global()); |
case ScopeIterator::ScopeTypeLocal: |
// Materialize the content of the local scope into a JSObject. |
ASSERT(nested_scope_chain_.length() == 1); |
@@ -12225,7 +12225,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugEvaluate) { |
Handle<SharedFunctionInfo> shared = |
Compiler::CompileEval(function_source, |
context, |
- context->IsNativeContext(), |
+ context->IsGlobalContext(), |
CLASSIC_MODE, |
RelocInfo::kNoPosition); |
if (shared.is_null()) return Failure::Exception(); |
@@ -12296,9 +12296,9 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugEvaluateGlobal) { |
isolate->set_context(*top->context()); |
} |
- // Get the native context now set to the top context from before the |
+ // Get the global context now set to the top context from before the |
// debugger was invoked. |
- Handle<Context> context = isolate->native_context(); |
+ Handle<Context> context = isolate->global_context(); |
bool is_global = true; |
@@ -12329,7 +12329,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugEvaluateGlobal) { |
// Invoke the result of the compilation to get the evaluation function. |
bool has_pending_exception; |
- Handle<Object> receiver = isolate->global_object(); |
+ Handle<Object> receiver = isolate->global(); |
Handle<Object> result = |
Execution::Call(compiled_function, receiver, 0, NULL, |
&has_pending_exception); |
@@ -12463,7 +12463,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugReferencedBy) { |
// Get the constructor function for context extension and arguments array. |
JSObject* arguments_boilerplate = |
- isolate->context()->native_context()->arguments_boilerplate(); |
+ isolate->context()->global_context()->arguments_boilerplate(); |
JSFunction* arguments_function = |
JSFunction::cast(arguments_boilerplate->map()->constructor()); |
@@ -12492,7 +12492,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugReferencedBy) { |
// Return result as JS array. |
Object* result; |
MaybeObject* maybe_result = isolate->heap()->AllocateJSObject( |
- isolate->context()->native_context()->array_function()); |
+ isolate->context()->global_context()->array_function()); |
if (!maybe_result->ToObject(&result)) return maybe_result; |
return JSArray::cast(result)->SetContent(instances); |
} |
@@ -12573,7 +12573,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugConstructedBy) { |
// Return result as JS array. |
Object* result; |
{ MaybeObject* maybe_result = isolate->heap()->AllocateJSObject( |
- isolate->context()->native_context()->array_function()); |
+ isolate->context()->global_context()->array_function()); |
if (!maybe_result->ToObject(&result)) return maybe_result; |
} |
return JSArray::cast(result)->SetContent(instances); |
@@ -12598,7 +12598,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugSetScriptSource) { |
ASSERT(args.length() == 2); |
CONVERT_ARG_HANDLE_CHECKED(JSValue, script_wrapper, 0); |
- CONVERT_ARG_HANDLE_CHECKED(String, source, 1); |
+ Handle<String> source(String::cast(args[1])); |
RUNTIME_ASSERT(script_wrapper->value()->IsScript()); |
Handle<Script> script(Script::cast(script_wrapper->value())); |
@@ -12964,11 +12964,11 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ExecuteInDebugContext) { |
bool pending_exception; |
{ |
if (without_debugger) { |
- result = Execution::Call(function, isolate->global_object(), 0, NULL, |
+ result = Execution::Call(function, isolate->global(), 0, NULL, |
&pending_exception); |
} else { |
EnterDebugger enter_debugger; |
- result = Execution::Call(function, isolate->global_object(), 0, NULL, |
+ result = Execution::Call(function, isolate->global(), 0, NULL, |
&pending_exception); |
} |
} |
@@ -13447,7 +13447,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetFromCache) { |
Handle<JSFunction> factory(JSFunction::cast( |
cache_handle->get(JSFunctionResultCache::kFactoryIndex))); |
// TODO(antonm): consider passing a receiver when constructing a cache. |
- Handle<Object> receiver(isolate->native_context()->global_object()); |
+ Handle<Object> receiver(isolate->global_context()->global()); |
// This handle is nor shared, nor used later, so it's safe. |
Handle<Object> argv[] = { key_handle }; |
bool pending_exception; |