| Index: src/bootstrapper.cc
|
| ===================================================================
|
| --- src/bootstrapper.cc (revision 4906)
|
| +++ src/bootstrapper.cc (working copy)
|
| @@ -455,8 +455,9 @@
|
| global_context()->set_object_function(*object_fun);
|
|
|
| // Allocate a new prototype for the object function.
|
| - Handle<JSObject> prototype = Factory::NewJSObject(Top::object_function(),
|
| - TENURED);
|
| + Handle<JSObject> prototype = Factory::NewJSObject(
|
| + Isolate::Current()->object_function(),
|
| + TENURED);
|
|
|
| global_context()->set_initial_object_prototype(*prototype);
|
| SetPrototype(object_fun, prototype);
|
| @@ -505,7 +506,7 @@
|
| global_context_ =
|
| Handle<Context>::cast(
|
| GlobalHandles::Create(*Factory::NewGlobalContext()));
|
| - Top::set_context(*global_context());
|
| + Isolate::Current()->set_context(*global_context());
|
|
|
| // Allocate the message listeners object.
|
| {
|
| @@ -560,7 +561,7 @@
|
| Handle<JSObject>(
|
| JSObject::cast(js_global_function->instance_prototype()));
|
| SetProperty(prototype, Factory::constructor_symbol(),
|
| - Top::object_function(), NONE);
|
| + Isolate::Current()->object_function(), NONE);
|
| } else {
|
| Handle<FunctionTemplateInfo> js_global_constructor(
|
| FunctionTemplateInfo::cast(js_global_template->constructor()));
|
| @@ -662,7 +663,8 @@
|
| global_context()->set_security_token(*inner_global);
|
|
|
| Handle<String> object_name = Handle<String>(HEAP->Object_symbol());
|
| - SetProperty(inner_global, object_name, Top::object_function(), DONT_ENUM);
|
| + SetProperty(inner_global, object_name,
|
| + Isolate::Current()->object_function(), DONT_ENUM);
|
|
|
| Handle<JSObject> global = Handle<JSObject>(global_context()->global());
|
|
|
| @@ -673,8 +675,8 @@
|
| { // --- A r r a y ---
|
| Handle<JSFunction> array_function =
|
| InstallFunction(global, "Array", JS_ARRAY_TYPE, JSArray::kSize,
|
| - Top::initial_object_prototype(), Builtins::ArrayCode,
|
| - true);
|
| + Isolate::Current()->initial_object_prototype(),
|
| + Builtins::ArrayCode, true);
|
| array_function->shared()->set_construct_stub(
|
| Builtins::builtin(Builtins::ArrayConstructCode));
|
| array_function->shared()->DontAdaptArguments();
|
| @@ -703,24 +705,24 @@
|
| { // --- N u m b e r ---
|
| Handle<JSFunction> number_fun =
|
| InstallFunction(global, "Number", JS_VALUE_TYPE, JSValue::kSize,
|
| - Top::initial_object_prototype(), Builtins::Illegal,
|
| - true);
|
| + Isolate::Current()->initial_object_prototype(),
|
| + Builtins::Illegal, true);
|
| global_context()->set_number_function(*number_fun);
|
| }
|
|
|
| { // --- B o o l e a n ---
|
| Handle<JSFunction> boolean_fun =
|
| InstallFunction(global, "Boolean", JS_VALUE_TYPE, JSValue::kSize,
|
| - Top::initial_object_prototype(), Builtins::Illegal,
|
| - true);
|
| + Isolate::Current()->initial_object_prototype(),
|
| + Builtins::Illegal, true);
|
| global_context()->set_boolean_function(*boolean_fun);
|
| }
|
|
|
| { // --- S t r i n g ---
|
| Handle<JSFunction> string_fun =
|
| InstallFunction(global, "String", JS_VALUE_TYPE, JSValue::kSize,
|
| - Top::initial_object_prototype(), Builtins::Illegal,
|
| - true);
|
| + Isolate::Current()->initial_object_prototype(),
|
| + Builtins::Illegal, true);
|
| global_context()->set_string_function(*string_fun);
|
| // Add 'length' property to strings.
|
| Handle<DescriptorArray> string_descriptors =
|
| @@ -741,8 +743,8 @@
|
| // Builtin functions for Date.prototype.
|
| Handle<JSFunction> date_fun =
|
| InstallFunction(global, "Date", JS_VALUE_TYPE, JSValue::kSize,
|
| - Top::initial_object_prototype(), Builtins::Illegal,
|
| - true);
|
| + Isolate::Current()->initial_object_prototype(),
|
| + Builtins::Illegal, true);
|
|
|
| global_context()->set_date_function(*date_fun);
|
| }
|
| @@ -752,8 +754,8 @@
|
| // Builtin functions for RegExp.prototype.
|
| Handle<JSFunction> regexp_fun =
|
| InstallFunction(global, "RegExp", JS_REGEXP_TYPE, JSRegExp::kSize,
|
| - Top::initial_object_prototype(), Builtins::Illegal,
|
| - true);
|
| + Isolate::Current()->initial_object_prototype(),
|
| + Builtins::Illegal, true);
|
| global_context()->set_regexp_function(*regexp_fun);
|
|
|
| ASSERT(regexp_fun->has_initial_map());
|
| @@ -944,10 +946,11 @@
|
| source,
|
| NULL,
|
| NULL,
|
| - Handle<Context>(Top::context()),
|
| + Handle<Context>(
|
| + Isolate::Current()->context()),
|
| true);
|
| - ASSERT(Top::has_pending_exception() != result);
|
| - if (!result) Top::clear_pending_exception();
|
| + ASSERT(Isolate::Current()->has_pending_exception() != result);
|
| + if (!result) Isolate::Current()->clear_pending_exception();
|
| #ifdef ENABLE_DEBUGGER_SUPPORT
|
| Debugger::set_compiling_natives(false);
|
| #endif
|
| @@ -1071,7 +1074,7 @@
|
| // Create a bridge function that has context in the global context.
|
| Handle<JSFunction> bridge =
|
| Factory::NewFunction(Factory::empty_symbol(), Factory::undefined_value());
|
| - ASSERT(bridge->context() == *Top::global_context());
|
| + ASSERT(bridge->context() == *Isolate::Current()->global_context());
|
|
|
| // Allocate the builtins context.
|
| Handle<Context> context =
|
| @@ -1084,10 +1087,10 @@
|
| // Builtin functions for Script.
|
| Handle<JSFunction> script_fun =
|
| InstallFunction(builtins, "Script", JS_VALUE_TYPE, JSValue::kSize,
|
| - Top::initial_object_prototype(), Builtins::Illegal,
|
| - false);
|
| + Isolate::Current()->initial_object_prototype(),
|
| + Builtins::Illegal, false);
|
| Handle<JSObject> prototype =
|
| - Factory::NewJSObject(Top::object_function(), TENURED);
|
| + Factory::NewJSObject(Isolate::Current()->object_function(), TENURED);
|
| SetPrototype(script_fun, prototype);
|
| global_context()->set_script_function(*script_fun);
|
|
|
| @@ -1208,10 +1211,11 @@
|
| // objects, that JavaScript code may not access.
|
| Handle<JSFunction> opaque_reference_fun =
|
| InstallFunction(builtins, "OpaqueReference", JS_VALUE_TYPE,
|
| - JSValue::kSize, Top::initial_object_prototype(),
|
| + JSValue::kSize,
|
| + Isolate::Current()->initial_object_prototype(),
|
| Builtins::Illegal, false);
|
| Handle<JSObject> prototype =
|
| - Factory::NewJSObject(Top::object_function(), TENURED);
|
| + Factory::NewJSObject(Isolate::Current()->object_function(), TENURED);
|
| SetPrototype(opaque_reference_fun, prototype);
|
| global_context()->set_opaque_reference_function(*opaque_reference_fun);
|
| }
|
| @@ -1240,7 +1244,8 @@
|
| // Install Function.prototype.call and apply.
|
| { Handle<String> key = Factory::function_class_symbol();
|
| Handle<JSFunction> function =
|
| - Handle<JSFunction>::cast(GetProperty(Top::global(), key));
|
| + Handle<JSFunction>::cast(
|
| + GetProperty(Isolate::Current()->global(), key));
|
| Handle<JSObject> proto =
|
| Handle<JSObject>(JSObject::cast(function->instance_prototype()));
|
|
|
| @@ -1400,7 +1405,7 @@
|
| v8::ExtensionConfiguration* extensions) {
|
| BootstrapperActive active;
|
| SaveContext saved_context;
|
| - Top::set_context(*global_context);
|
| + Isolate::Current()->set_context(*global_context);
|
| if (!Genesis::InstallExtensions(global_context, extensions)) return false;
|
| Genesis::InstallSpecialObjects(global_context);
|
| return true;
|
| @@ -1523,11 +1528,12 @@
|
| source_code,
|
| &extensions_cache,
|
| extension,
|
| - Handle<Context>(Top::context()),
|
| + Handle<Context>(
|
| + Isolate::Current()->context()),
|
| false);
|
| - ASSERT(Top::has_pending_exception() != result);
|
| + ASSERT(Isolate::Current()->has_pending_exception() != result);
|
| if (!result) {
|
| - Top::clear_pending_exception();
|
| + Isolate::Current()->clear_pending_exception();
|
| }
|
| current->set_state(v8::INSTALLED);
|
| return result;
|
| @@ -1588,8 +1594,8 @@
|
| Handle<JSObject> obj =
|
| Execution::InstantiateObject(object_template, &pending_exception);
|
| if (pending_exception) {
|
| - ASSERT(Top::has_pending_exception());
|
| - Top::clear_pending_exception();
|
| + ASSERT(Isolate::Current()->has_pending_exception());
|
| + Isolate::Current()->clear_pending_exception();
|
| return false;
|
| }
|
| TransferObject(obj, object);
|
| @@ -1709,10 +1715,11 @@
|
|
|
| Handle<DescriptorArray> function_map_descriptors =
|
| ComputeFunctionInstanceDescriptor(ADD_WRITEABLE_PROTOTYPE);
|
| - Handle<Map> fm = Factory::CopyMapDropDescriptors(Top::function_map());
|
| + Handle<Map> fm = Factory::CopyMapDropDescriptors(
|
| + Isolate::Current()->function_map());
|
| fm->set_instance_descriptors(*function_map_descriptors);
|
| fm->set_function_with_prototype(true);
|
| - Top::context()->global_context()->set_function_map(*fm);
|
| + Isolate::Current()->context()->global_context()->set_function_map(*fm);
|
| }
|
|
|
|
|
| @@ -1732,7 +1739,7 @@
|
| if (!new_context.is_null()) {
|
| global_context_ =
|
| Handle<Context>::cast(GlobalHandles::Create(*new_context));
|
| - Top::set_context(*global_context_);
|
| + Isolate::Current()->set_context(*global_context_);
|
| i::Counters::contexts_created_by_snapshot.Increment();
|
| result_ = global_context_;
|
| JSFunction* empty_function =
|
|
|