Index: src/bootstrapper.cc |
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc |
index 9486b41b668a8484af816d5687a1a924e5bd1dbf..4bac31f906cb0baace440ca5d57ab3309c227c88 100644 |
--- a/src/bootstrapper.cc |
+++ b/src/bootstrapper.cc |
@@ -370,9 +370,8 @@ static Handle<JSFunction> InstallFunction(Handle<JSObject> target, |
} else { |
attributes = DONT_ENUM; |
} |
- CHECK_NOT_EMPTY_HANDLE(isolate, |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- target, internalized_name, function, attributes)); |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ target, internalized_name, function, attributes).Check(); |
if (set_instance_class_name) { |
function->shared()->set_instance_class_name(*internalized_name); |
} |
@@ -723,10 +722,9 @@ Handle<JSGlobalProxy> Genesis::CreateNewGlobals( |
Handle<JSObject> prototype = |
Handle<JSObject>( |
JSObject::cast(js_global_function->instance_prototype())); |
- CHECK_NOT_EMPTY_HANDLE(isolate(), |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- prototype, factory()->constructor_string(), |
- isolate()->object_function(), NONE)); |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ prototype, factory()->constructor_string(), |
+ isolate()->object_function(), NONE).Check(); |
} else { |
Handle<FunctionTemplateInfo> js_global_constructor( |
FunctionTemplateInfo::cast(js_global_template->constructor())); |
@@ -802,11 +800,11 @@ void Genesis::HookUpInnerGlobal(Handle<GlobalObject> inner_global) { |
native_context()->set_security_token(*inner_global); |
static const PropertyAttributes attributes = |
static_cast<PropertyAttributes>(READ_ONLY | DONT_DELETE); |
- ForceSetProperty(builtins_global, |
- factory()->InternalizeOneByteString( |
- STATIC_ASCII_VECTOR("global")), |
- inner_global, |
- attributes); |
+ Runtime::ForceSetObjectProperty(builtins_global, |
+ factory()->InternalizeOneByteString( |
+ STATIC_ASCII_VECTOR("global")), |
+ inner_global, |
+ attributes).Assert(); |
// Set up the reference from the global object to the builtins object. |
JSGlobalObject::cast(*inner_global)->set_builtins(*builtins_global); |
TransferNamedProperties(inner_global_from_snapshot, inner_global); |
@@ -836,10 +834,9 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global, |
Heap* heap = isolate->heap(); |
Handle<String> object_name = factory->Object_string(); |
- CHECK_NOT_EMPTY_HANDLE(isolate, |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- inner_global, object_name, |
- isolate->object_function(), DONT_ENUM)); |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ inner_global, object_name, |
+ isolate->object_function(), DONT_ENUM).Check(); |
Handle<JSObject> global = Handle<JSObject>(native_context()->global_object()); |
@@ -1045,9 +1042,8 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global, |
cons->SetInstanceClassName(*name); |
Handle<JSObject> json_object = factory->NewJSObject(cons, TENURED); |
ASSERT(json_object->IsJSObject()); |
- CHECK_NOT_EMPTY_HANDLE(isolate, |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- global, name, json_object, DONT_ENUM)); |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ global, name, json_object, DONT_ENUM).Check(); |
native_context()->set_json_object(*json_object); |
} |
@@ -1107,16 +1103,14 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global, |
native_context()->set_sloppy_arguments_boilerplate(*result); |
// Note: length must be added as the first property and |
// callee must be added as the second property. |
- CHECK_NOT_EMPTY_HANDLE(isolate, |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- result, factory->length_string(), |
- factory->undefined_value(), DONT_ENUM, |
- Object::FORCE_TAGGED, FORCE_FIELD)); |
- CHECK_NOT_EMPTY_HANDLE(isolate, |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- result, factory->callee_string(), |
- factory->undefined_value(), DONT_ENUM, |
- Object::FORCE_TAGGED, FORCE_FIELD)); |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ result, factory->length_string(), |
+ factory->undefined_value(), DONT_ENUM, |
+ Object::FORCE_TAGGED, FORCE_FIELD).Check(); |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ result, factory->callee_string(), |
+ factory->undefined_value(), DONT_ENUM, |
+ Object::FORCE_TAGGED, FORCE_FIELD).Check(); |
#ifdef DEBUG |
LookupResult lookup(isolate); |
@@ -1217,10 +1211,9 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global, |
native_context()->set_strict_arguments_boilerplate(*result); |
// Add length property only for strict mode boilerplate. |
- CHECK_NOT_EMPTY_HANDLE(isolate, |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- result, factory->length_string(), |
- factory->undefined_value(), DONT_ENUM)); |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ result, factory->length_string(), |
+ factory->undefined_value(), DONT_ENUM).Check(); |
#ifdef DEBUG |
LookupResult lookup(isolate); |
@@ -1674,14 +1667,12 @@ bool Genesis::InstallNatives() { |
Handle<String> global_string = |
factory()->InternalizeOneByteString(STATIC_ASCII_VECTOR("global")); |
Handle<Object> global_obj(native_context()->global_object(), isolate()); |
- CHECK_NOT_EMPTY_HANDLE(isolate(), |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- builtins, global_string, global_obj, attributes)); |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ builtins, global_string, global_obj, attributes).Check(); |
Handle<String> builtins_string = |
factory()->InternalizeOneByteString(STATIC_ASCII_VECTOR("builtins")); |
- CHECK_NOT_EMPTY_HANDLE(isolate(), |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- builtins, builtins_string, builtins, attributes)); |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ builtins, builtins_string, builtins, attributes).Check(); |
// Set up the reference from the global object to the builtins object. |
JSGlobalObject::cast(native_context()->global_object())-> |
@@ -2163,9 +2154,11 @@ bool Genesis::InstallSpecialObjects(Handle<Context> native_context) { |
if (FLAG_expose_natives_as != NULL && strlen(FLAG_expose_natives_as) != 0) { |
Handle<String> natives = |
factory->InternalizeUtf8String(FLAG_expose_natives_as); |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- global, natives, Handle<JSObject>(global->builtins()), DONT_ENUM); |
- if (isolate->has_pending_exception()) return false; |
+ RETURN_ON_EXCEPTION_VALUE( |
+ isolate, |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ global, natives, Handle<JSObject>(global->builtins()), DONT_ENUM), |
+ false); |
} |
Handle<Object> Error = GetProperty(global, "Error"); |
@@ -2174,9 +2167,11 @@ bool Genesis::InstallSpecialObjects(Handle<Context> native_context) { |
STATIC_ASCII_VECTOR("stackTraceLimit")); |
Handle<Smi> stack_trace_limit( |
Smi::FromInt(FLAG_stack_trace_limit), isolate); |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- Handle<JSObject>::cast(Error), name, stack_trace_limit, NONE); |
- if (isolate->has_pending_exception()) return false; |
+ RETURN_ON_EXCEPTION_VALUE( |
+ isolate, |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ Handle<JSObject>::cast(Error), name, stack_trace_limit, NONE), |
+ false); |
} |
#ifdef ENABLE_DEBUGGER_SUPPORT |
@@ -2196,9 +2191,11 @@ bool Genesis::InstallSpecialObjects(Handle<Context> native_context) { |
factory->InternalizeUtf8String(FLAG_expose_debug_as); |
Handle<Object> global_proxy( |
debug->debug_context()->global_proxy(), isolate); |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- global, debug_string, global_proxy, DONT_ENUM); |
- if (isolate->has_pending_exception()) return false; |
+ RETURN_ON_EXCEPTION_VALUE( |
+ isolate, |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ global, debug_string, global_proxy, DONT_ENUM), |
+ false); |
} |
#endif |
return true; |
@@ -2431,18 +2428,16 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from, |
ASSERT(!descs->GetDetails(i).representation().IsDouble()); |
Handle<Object> value = Handle<Object>(from->RawFastPropertyAt(index), |
isolate()); |
- CHECK_NOT_EMPTY_HANDLE(isolate(), |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- to, key, value, details.attributes())); |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ to, key, value, details.attributes()).Check(); |
break; |
} |
case CONSTANT: { |
HandleScope inner(isolate()); |
Handle<Name> key = Handle<Name>(descs->GetKey(i)); |
Handle<Object> constant(descs->GetConstant(i), isolate()); |
- CHECK_NOT_EMPTY_HANDLE(isolate(), |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- to, key, constant, details.attributes())); |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ to, key, constant, details.attributes()).Check(); |
break; |
} |
case CALLBACKS: { |
@@ -2492,9 +2487,8 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from, |
isolate()); |
} |
PropertyDetails details = properties->DetailsAt(i); |
- CHECK_NOT_EMPTY_HANDLE(isolate(), |
- JSObject::SetLocalPropertyIgnoreAttributes( |
- to, key, value, details.attributes())); |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ to, key, value, details.attributes()).Check(); |
} |
} |
} |
@@ -2651,11 +2645,11 @@ Genesis::Genesis(Isolate* isolate, |
Utils::OpenHandle(*buffer)->set_should_be_freed(true); |
v8::Local<v8::Uint32Array> ta = v8::Uint32Array::New(buffer, 0, num_elems); |
Handle<JSBuiltinsObject> builtins(native_context()->builtins()); |
- ForceSetProperty(builtins, |
- factory()->InternalizeOneByteString( |
- STATIC_ASCII_VECTOR("rngstate")), |
- Utils::OpenHandle(*ta), |
- NONE); |
+ Runtime::ForceSetObjectProperty(builtins, |
+ factory()->InternalizeOneByteString( |
+ STATIC_ASCII_VECTOR("rngstate")), |
+ Utils::OpenHandle(*ta), |
+ NONE).Assert(); |
// Initialize trigonometric lookup tables and constants. |
const int table_num_bytes = TrigonometricLookupTable::table_num_bytes(); |
@@ -2670,28 +2664,31 @@ Genesis::Genesis(Isolate* isolate, |
v8::Local<v8::Float64Array> cos_table = v8::Float64Array::New( |
cos_buffer, 0, TrigonometricLookupTable::table_size()); |
- ForceSetProperty(builtins, |
- factory()->InternalizeOneByteString( |
- STATIC_ASCII_VECTOR("kSinTable")), |
- Utils::OpenHandle(*sin_table), |
- NONE); |
- ForceSetProperty(builtins, |
- factory()->InternalizeOneByteString( |
- STATIC_ASCII_VECTOR("kCosXIntervalTable")), |
- Utils::OpenHandle(*cos_table), |
- NONE); |
- ForceSetProperty(builtins, |
- factory()->InternalizeOneByteString( |
- STATIC_ASCII_VECTOR("kSamples")), |
- factory()->NewHeapNumber( |
- TrigonometricLookupTable::samples()), |
- NONE); |
- ForceSetProperty(builtins, |
- factory()->InternalizeOneByteString( |
- STATIC_ASCII_VECTOR("kIndexConvert")), |
- factory()->NewHeapNumber( |
- TrigonometricLookupTable::samples_over_pi_half()), |
- NONE); |
+ Runtime::ForceSetObjectProperty(builtins, |
+ factory()->InternalizeOneByteString( |
+ STATIC_ASCII_VECTOR("kSinTable")), |
+ Utils::OpenHandle(*sin_table), |
+ NONE).Assert(); |
+ Runtime::ForceSetObjectProperty( |
+ builtins, |
+ factory()->InternalizeOneByteString( |
+ STATIC_ASCII_VECTOR("kCosXIntervalTable")), |
+ Utils::OpenHandle(*cos_table), |
+ NONE).Assert(); |
+ Runtime::ForceSetObjectProperty( |
+ builtins, |
+ factory()->InternalizeOneByteString( |
+ STATIC_ASCII_VECTOR("kSamples")), |
+ factory()->NewHeapNumber( |
+ TrigonometricLookupTable::samples()), |
+ NONE).Assert(); |
+ Runtime::ForceSetObjectProperty( |
+ builtins, |
+ factory()->InternalizeOneByteString( |
+ STATIC_ASCII_VECTOR("kIndexConvert")), |
+ factory()->NewHeapNumber( |
+ TrigonometricLookupTable::samples_over_pi_half()), |
+ NONE).Assert(); |
} |
result_ = native_context(); |