| 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();
 | 
| 
 |