Index: src/bootstrapper.cc |
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc |
index b318faca6af6e3b80d439dd2eafe53ed084a8d89..6487dc991d915787f9a57a27e014117a3f0e04e2 100644 |
--- a/src/bootstrapper.cc |
+++ b/src/bootstrapper.cc |
@@ -86,7 +86,8 @@ Handle<String> Bootstrapper::NativesSourceLookup(int index) { |
isolate_->factory()->NewExternalStringFromAscii(resource); |
heap->natives_source_cache()->set(index, *source_code); |
} |
- Handle<Object> cached_source(heap->natives_source_cache()->get(index)); |
+ Handle<Object> cached_source(heap->natives_source_cache()->get(index), |
+ isolate_); |
return Handle<String>::cast(cached_source); |
} |
@@ -722,7 +723,8 @@ Handle<JSGlobalProxy> Genesis::CreateNewGlobals( |
Handle<FunctionTemplateInfo> global_constructor = |
Handle<FunctionTemplateInfo>( |
FunctionTemplateInfo::cast(data->constructor())); |
- Handle<Object> proto_template(global_constructor->prototype_template()); |
+ Handle<Object> proto_template(global_constructor->prototype_template(), |
+ isolate()); |
if (!proto_template->IsUndefined()) { |
js_global_template = |
Handle<ObjectTemplateInfo>::cast(proto_template); |
@@ -1389,7 +1391,8 @@ bool Genesis::CompileScriptCached(Isolate* isolate, |
Handle<Object> receiver = |
Handle<Object>(use_runtime_context |
? top_context->builtins() |
- : top_context->global_object()); |
+ : top_context->global_object(), |
+ isolate); |
bool has_pending_exception; |
Execution::Call(fun, receiver, 0, NULL, &has_pending_exception); |
if (has_pending_exception) return false; |
@@ -1532,7 +1535,7 @@ bool Genesis::InstallNatives() { |
static_cast<PropertyAttributes>(READ_ONLY | DONT_DELETE); |
Handle<String> global_symbol = |
factory()->LookupOneByteSymbol(STATIC_ASCII_VECTOR("global")); |
- Handle<Object> global_obj(native_context()->global_object()); |
+ Handle<Object> global_obj(native_context()->global_object(), isolate()); |
CHECK_NOT_EMPTY_HANDLE(isolate(), |
JSObject::SetLocalPropertyIgnoreAttributes( |
builtins, global_symbol, global_obj, attributes)); |
@@ -1767,7 +1770,8 @@ bool Genesis::InstallNatives() { |
// Install Function.prototype.call and apply. |
{ Handle<String> key = factory()->function_class_symbol(); |
Handle<JSFunction> function = |
- Handle<JSFunction>::cast(GetProperty(isolate()->global_object(), key)); |
+ Handle<JSFunction>::cast( |
+ GetProperty(isolate(), isolate()->global_object(), key)); |
Handle<JSObject> proto = |
Handle<JSObject>(JSObject::cast(function->instance_prototype())); |
@@ -1896,18 +1900,19 @@ bool Genesis::InstallExperimentalNatives() { |
static Handle<JSObject> ResolveBuiltinIdHolder( |
Handle<Context> native_context, |
const char* holder_expr) { |
- Factory* factory = native_context->GetIsolate()->factory(); |
+ Isolate* isolate = native_context->GetIsolate(); |
+ Factory* factory = isolate->factory(); |
Handle<GlobalObject> global(native_context->global_object()); |
const char* period_pos = strchr(holder_expr, '.'); |
if (period_pos == NULL) { |
return Handle<JSObject>::cast( |
- GetProperty(global, factory->LookupUtf8Symbol(holder_expr))); |
+ GetProperty(isolate, global, factory->LookupUtf8Symbol(holder_expr))); |
} |
ASSERT_EQ(".prototype", period_pos); |
Vector<const char> property(holder_expr, |
static_cast<int>(period_pos - holder_expr)); |
Handle<JSFunction> function = Handle<JSFunction>::cast( |
- GetProperty(global, factory->LookupUtf8Symbol(property))); |
+ GetProperty(isolate, global, factory->LookupUtf8Symbol(property))); |
return Handle<JSObject>(JSObject::cast(function->prototype())); |
} |
@@ -2018,7 +2023,8 @@ void Genesis::InstallSpecialObjects(Handle<Context> native_context) { |
if (Error->IsJSObject()) { |
Handle<String> name = |
factory->LookupOneByteSymbol(STATIC_ASCII_VECTOR("stackTraceLimit")); |
- Handle<Smi> stack_trace_limit(Smi::FromInt(FLAG_stack_trace_limit)); |
+ Handle<Smi> stack_trace_limit(Smi::FromInt(FLAG_stack_trace_limit), |
+ isolate); |
CHECK_NOT_EMPTY_HANDLE(isolate, |
JSObject::SetLocalPropertyIgnoreAttributes( |
Handle<JSObject>::cast(Error), name, |
@@ -2040,7 +2046,8 @@ void Genesis::InstallSpecialObjects(Handle<Context> native_context) { |
Handle<String> debug_string = |
factory->LookupUtf8Symbol(FLAG_expose_debug_as); |
- Handle<Object> global_proxy(debug->debug_context()->global_proxy()); |
+ Handle<Object> global_proxy(debug->debug_context()->global_proxy(), |
+ isolate); |
CHECK_NOT_EMPTY_HANDLE(isolate, |
JSObject::SetLocalPropertyIgnoreAttributes( |
global, debug_string, global_proxy, DONT_ENUM)); |
@@ -2255,8 +2262,9 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from, |
HandleScope inner(isolate()); |
Handle<String> key = Handle<String>(descs->GetKey(i)); |
int index = descs->GetFieldIndex(i); |
- Handle<Object> value = Handle<Object>(from->FastPropertyAt(index)); |
- CHECK_NOT_EMPTY_HANDLE(to->GetIsolate(), |
+ Handle<Object> value = Handle<Object>(from->FastPropertyAt(index), |
+ isolate()); |
+ CHECK_NOT_EMPTY_HANDLE(isolate(), |
JSObject::SetLocalPropertyIgnoreAttributes( |
to, key, value, details.attributes())); |
break; |
@@ -2266,7 +2274,7 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from, |
Handle<String> key = Handle<String>(descs->GetKey(i)); |
Handle<JSFunction> fun = |
Handle<JSFunction>(descs->GetConstantFunction(i)); |
- CHECK_NOT_EMPTY_HANDLE(to->GetIsolate(), |
+ CHECK_NOT_EMPTY_HANDLE(isolate(), |
JSObject::SetLocalPropertyIgnoreAttributes( |
to, key, fun, details.attributes())); |
break; |
@@ -2280,7 +2288,7 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from, |
ASSERT(!to->HasFastProperties()); |
// Add to dictionary. |
Handle<String> key = Handle<String>(descs->GetKey(i)); |
- Handle<Object> callbacks(descs->GetCallbacksObject(i)); |
+ Handle<Object> callbacks(descs->GetCallbacksObject(i), isolate()); |
PropertyDetails d = PropertyDetails(details.attributes(), |
CALLBACKS, |
details.descriptor_index()); |
@@ -2312,12 +2320,14 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from, |
if (result.IsFound()) continue; |
// Set the property. |
Handle<String> key = Handle<String>(String::cast(raw_key)); |
- Handle<Object> value = Handle<Object>(properties->ValueAt(i)); |
+ Handle<Object> value = Handle<Object>(properties->ValueAt(i), |
+ isolate()); |
if (value->IsJSGlobalPropertyCell()) { |
- value = Handle<Object>(JSGlobalPropertyCell::cast(*value)->value()); |
+ value = Handle<Object>(JSGlobalPropertyCell::cast(*value)->value(), |
+ isolate()); |
} |
PropertyDetails details = properties->DetailsAt(i); |
- CHECK_NOT_EMPTY_HANDLE(to->GetIsolate(), |
+ CHECK_NOT_EMPTY_HANDLE(isolate(), |
JSObject::SetLocalPropertyIgnoreAttributes( |
to, key, value, details.attributes())); |
} |