| Index: src/bootstrapper.cc
 | 
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
 | 
| index 6db9a4819a3d6153706ab71bf9c579abedb2e4fd..415d2dd8cb450441ac8f73e340c3bdb08123daf3 100644
 | 
| --- a/src/bootstrapper.cc
 | 
| +++ b/src/bootstrapper.cc
 | 
| @@ -349,7 +349,7 @@ static Handle<JSFunction> InstallFunction(Handle<JSObject> target,
 | 
|                                        prototype,
 | 
|                                        call_code,
 | 
|                                        is_ecma_native);
 | 
| -  SetProperty(target, symbol, function, DONT_ENUM);
 | 
| +  SetLocalPropertyNoThrow(target, symbol, function, DONT_ENUM);
 | 
|    if (is_ecma_native) {
 | 
|      function->shared()->set_instance_class_name(*symbol);
 | 
|    }
 | 
| @@ -580,8 +580,8 @@ Handle<JSGlobalProxy> Genesis::CreateNewGlobals(
 | 
|      Handle<JSObject> prototype =
 | 
|          Handle<JSObject>(
 | 
|              JSObject::cast(js_global_function->instance_prototype()));
 | 
| -    SetProperty(prototype, Factory::constructor_symbol(),
 | 
| -                Top::object_function(), NONE);
 | 
| +    SetLocalPropertyNoThrow(
 | 
| +        prototype, Factory::constructor_symbol(), Top::object_function(), NONE);
 | 
|    } else {
 | 
|      Handle<FunctionTemplateInfo> js_global_constructor(
 | 
|          FunctionTemplateInfo::cast(js_global_template->constructor()));
 | 
| @@ -683,7 +683,8 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global,
 | 
|    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);
 | 
| +  SetLocalPropertyNoThrow(inner_global, object_name,
 | 
| +                          Top::object_function(), DONT_ENUM);
 | 
|  
 | 
|    Handle<JSObject> global = Handle<JSObject>(global_context()->global());
 | 
|  
 | 
| @@ -851,7 +852,7 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global,
 | 
|      cons->SetInstanceClassName(*name);
 | 
|      Handle<JSObject> json_object = Factory::NewJSObject(cons, TENURED);
 | 
|      ASSERT(json_object->IsJSObject());
 | 
| -    SetProperty(global, name, json_object, DONT_ENUM);
 | 
| +    SetLocalPropertyNoThrow(global, name, json_object, DONT_ENUM);
 | 
|      global_context()->set_json_object(*json_object);
 | 
|    }
 | 
|  
 | 
| @@ -880,12 +881,12 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global,
 | 
|      global_context()->set_arguments_boilerplate(*result);
 | 
|      // Note: callee must be added as the first property and
 | 
|      //       length must be added as the second property.
 | 
| -    SetProperty(result, Factory::callee_symbol(),
 | 
| -                Factory::undefined_value(),
 | 
| -                DONT_ENUM);
 | 
| -    SetProperty(result, Factory::length_symbol(),
 | 
| -                Factory::undefined_value(),
 | 
| -                DONT_ENUM);
 | 
| +    SetLocalPropertyNoThrow(result, Factory::callee_symbol(),
 | 
| +                            Factory::undefined_value(),
 | 
| +                            DONT_ENUM);
 | 
| +    SetLocalPropertyNoThrow(result, Factory::length_symbol(),
 | 
| +                            Factory::undefined_value(),
 | 
| +                            DONT_ENUM);
 | 
|  
 | 
|  #ifdef DEBUG
 | 
|      LookupResult lookup;
 | 
| @@ -1085,10 +1086,8 @@ bool Genesis::InstallNatives() {
 | 
|    static const PropertyAttributes attributes =
 | 
|        static_cast<PropertyAttributes>(READ_ONLY | DONT_DELETE);
 | 
|    Handle<String> global_symbol = Factory::LookupAsciiSymbol("global");
 | 
| -  SetProperty(builtins,
 | 
| -              global_symbol,
 | 
| -              Handle<Object>(global_context()->global()),
 | 
| -              attributes);
 | 
| +  Handle<Object> global_obj(global_context()->global());
 | 
| +  SetLocalPropertyNoThrow(builtins, global_symbol, global_obj, attributes);
 | 
|  
 | 
|    // Setup the reference from the global object to the builtins object.
 | 
|    JSGlobalObject::cast(global_context()->global())->set_builtins(*builtins);
 | 
| @@ -1480,17 +1479,17 @@ void Genesis::InstallSpecialObjects(Handle<Context> global_context) {
 | 
|    if (FLAG_expose_natives_as != NULL && strlen(FLAG_expose_natives_as) != 0) {
 | 
|      Handle<String> natives_string =
 | 
|          Factory::LookupAsciiSymbol(FLAG_expose_natives_as);
 | 
| -    SetProperty(js_global, natives_string,
 | 
| -                Handle<JSObject>(js_global->builtins()), DONT_ENUM);
 | 
| +    SetLocalPropertyNoThrow(js_global, natives_string,
 | 
| +                            Handle<JSObject>(js_global->builtins()), DONT_ENUM);
 | 
|    }
 | 
|  
 | 
|    Handle<Object> Error = GetProperty(js_global, "Error");
 | 
|    if (Error->IsJSObject()) {
 | 
|      Handle<String> name = Factory::LookupAsciiSymbol("stackTraceLimit");
 | 
| -    SetProperty(Handle<JSObject>::cast(Error),
 | 
| -                name,
 | 
| -                Handle<Smi>(Smi::FromInt(FLAG_stack_trace_limit)),
 | 
| -                NONE);
 | 
| +    SetLocalPropertyNoThrow(Handle<JSObject>::cast(Error),
 | 
| +                            name,
 | 
| +                            Handle<Smi>(Smi::FromInt(FLAG_stack_trace_limit)),
 | 
| +                            NONE);
 | 
|    }
 | 
|  
 | 
|  #ifdef ENABLE_DEBUGGER_SUPPORT
 | 
| @@ -1507,8 +1506,8 @@ void Genesis::InstallSpecialObjects(Handle<Context> global_context) {
 | 
|  
 | 
|      Handle<String> debug_string =
 | 
|          Factory::LookupAsciiSymbol(FLAG_expose_debug_as);
 | 
| -    SetProperty(js_global, debug_string,
 | 
| -        Handle<Object>(Debug::debug_context()->global_proxy()), DONT_ENUM);
 | 
| +    Handle<Object> global_proxy(Debug::debug_context()->global_proxy());
 | 
| +    SetLocalPropertyNoThrow(js_global, debug_string, global_proxy, DONT_ENUM);
 | 
|    }
 | 
|  #endif
 | 
|  }
 | 
| @@ -1679,7 +1678,7 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from,
 | 
|            Handle<String> key = Handle<String>(descs->GetKey(i));
 | 
|            int index = descs->GetFieldIndex(i);
 | 
|            Handle<Object> value = Handle<Object>(from->FastPropertyAt(index));
 | 
| -          SetProperty(to, key, value, details.attributes());
 | 
| +          SetLocalPropertyNoThrow(to, key, value, details.attributes());
 | 
|            break;
 | 
|          }
 | 
|          case CONSTANT_FUNCTION: {
 | 
| @@ -1687,7 +1686,7 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from,
 | 
|            Handle<String> key = Handle<String>(descs->GetKey(i));
 | 
|            Handle<JSFunction> fun =
 | 
|                Handle<JSFunction>(descs->GetConstantFunction(i));
 | 
| -          SetProperty(to, key, fun, details.attributes());
 | 
| +          SetLocalPropertyNoThrow(to, key, fun, details.attributes());
 | 
|            break;
 | 
|          }
 | 
|          case CALLBACKS: {
 | 
| @@ -1737,7 +1736,7 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from,
 | 
|            value = Handle<Object>(JSGlobalPropertyCell::cast(*value)->value());
 | 
|          }
 | 
|          PropertyDetails details = properties->DetailsAt(i);
 | 
| -        SetProperty(to, key, value, details.attributes());
 | 
| +        SetLocalPropertyNoThrow(to, key, value, details.attributes());
 | 
|        }
 | 
|      }
 | 
|    }
 | 
| 
 |