| Index: src/factory.cc
|
| diff --git a/src/factory.cc b/src/factory.cc
|
| index 7c8c934044ab63d5a1da42695324be8473e2f40c..a05ff6cc7ecc7077f0819f4d35b4162452a4fce1 100644
|
| --- a/src/factory.cc
|
| +++ b/src/factory.cc
|
| @@ -431,7 +431,8 @@ Handle<Object> Factory::NewError(const char* maker,
|
| const char* type,
|
| Handle<JSArray> args) {
|
| Handle<String> make_str = Factory::LookupAsciiSymbol(maker);
|
| - Handle<Object> fun_obj(Top::builtins()->GetProperty(*make_str));
|
| + Handle<Object> fun_obj(Top::builtins()->GetPropertyNoExceptionThrown(
|
| + *make_str));
|
| // If the builtins haven't been properly configured yet this error
|
| // constructor may not have been defined. Bail out.
|
| if (!fun_obj->IsJSFunction())
|
| @@ -464,7 +465,7 @@ Handle<Object> Factory::NewError(const char* constructor,
|
| Handle<JSFunction> fun =
|
| Handle<JSFunction>(
|
| JSFunction::cast(
|
| - Top::builtins()->GetProperty(*constr)));
|
| + Top::builtins()->GetPropertyNoExceptionThrown(*constr)));
|
| Object** argv[1] = { Handle<Object>::cast(message).location() };
|
|
|
| // Invoke the JavaScript factory method. If an exception is thrown while
|
| @@ -567,12 +568,13 @@ Handle<Code> Factory::CopyCode(Handle<Code> code, Vector<byte> reloc_info) {
|
| }
|
|
|
|
|
| -static inline Object* DoCopyInsert(DescriptorArray* array,
|
| - String* key,
|
| - Object* value,
|
| - PropertyAttributes attributes) {
|
| +MUST_USE_RESULT static inline MaybeObject* DoCopyInsert(
|
| + DescriptorArray* array,
|
| + String* key,
|
| + Object* value,
|
| + PropertyAttributes attributes) {
|
| CallbacksDescriptor desc(key, value, attributes);
|
| - Object* obj = array->CopyInsert(&desc, REMOVE_TRANSITIONS);
|
| + MaybeObject* obj = array->CopyInsert(&desc, REMOVE_TRANSITIONS);
|
| return obj;
|
| }
|
|
|
| @@ -921,11 +923,15 @@ Handle<MapCache> Factory::NewMapCache(int at_least_space_for) {
|
| }
|
|
|
|
|
| -static Object* UpdateMapCacheWith(Context* context,
|
| - FixedArray* keys,
|
| - Map* map) {
|
| - Object* result = MapCache::cast(context->map_cache())->Put(keys, map);
|
| - if (!result->IsFailure()) context->set_map_cache(MapCache::cast(result));
|
| +MUST_USE_RESULT static MaybeObject* UpdateMapCacheWith(Context* context,
|
| + FixedArray* keys,
|
| + Map* map) {
|
| + Object* result;
|
| + { MaybeObject* maybe_result =
|
| + MapCache::cast(context->map_cache())->Put(keys, map);
|
| + if (!maybe_result->ToObject(&result)) return maybe_result;
|
| + }
|
| + context->set_map_cache(MapCache::cast(result));
|
| return result;
|
| }
|
|
|
|
|