Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 060914a8d84973d0cfae15f091741ba0da9795d1..d180c31a1c0498afca4043824935f0031d8739d0 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -3049,14 +3049,13 @@ bool v8::Object::Set(v8::Handle<Value> key, v8::Handle<Value> value, |
i::Handle<i::Object> key_obj = Utils::OpenHandle(*key); |
i::Handle<i::Object> value_obj = Utils::OpenHandle(*value); |
EXCEPTION_PREAMBLE(isolate); |
- i::Handle<i::Object> obj = i::Runtime::SetObjectProperty( |
+ has_pending_exception = i::Runtime::SetObjectProperty( |
isolate, |
self, |
key_obj, |
value_obj, |
static_cast<PropertyAttributes>(attribs), |
- i::SLOPPY); |
- has_pending_exception = obj.is_null(); |
+ i::SLOPPY).is_null(); |
EXCEPTION_BAILOUT_CHECK(isolate, false); |
return true; |
} |
@@ -3093,12 +3092,11 @@ bool v8::Object::ForceSet(v8::Handle<Value> key, |
i::Handle<i::Object> key_obj = Utils::OpenHandle(*key); |
i::Handle<i::Object> value_obj = Utils::OpenHandle(*value); |
EXCEPTION_PREAMBLE(isolate); |
- i::Handle<i::Object> obj = i::ForceSetProperty( |
+ has_pending_exception = i::Runtime::ForceSetObjectProperty( |
self, |
key_obj, |
value_obj, |
- static_cast<PropertyAttributes>(attribs)); |
- has_pending_exception = obj.is_null(); |
+ static_cast<PropertyAttributes>(attribs)).is_null(); |
EXCEPTION_BAILOUT_CHECK(isolate, false); |
return true; |
} |
@@ -6157,7 +6155,8 @@ Local<Symbol> v8::Symbol::For(Isolate* isolate, Local<String> name) { |
ASSERT(symbol->IsUndefined()); |
symbol = i_isolate->factory()->NewSymbol(); |
i::Handle<i::Symbol>::cast(symbol)->set_name(*i_name); |
- i::JSObject::SetProperty(symbols, i_name, symbol, NONE, i::STRICT); |
+ i::JSObject::SetProperty( |
+ symbols, i_name, symbol, NONE, i::STRICT).Assert(); |
} |
return Utils::ToLocal(i::Handle<i::Symbol>::cast(symbol)); |
} |
@@ -6177,7 +6176,8 @@ Local<Symbol> v8::Symbol::ForApi(Isolate* isolate, Local<String> name) { |
ASSERT(symbol->IsUndefined()); |
symbol = i_isolate->factory()->NewSymbol(); |
i::Handle<i::Symbol>::cast(symbol)->set_name(*i_name); |
- i::JSObject::SetProperty(symbols, i_name, symbol, NONE, i::STRICT); |
+ i::JSObject::SetProperty( |
+ symbols, i_name, symbol, NONE, i::STRICT).Assert(); |
} |
return Utils::ToLocal(i::Handle<i::Symbol>::cast(symbol)); |
} |
@@ -6209,7 +6209,8 @@ Local<Private> v8::Private::ForApi(Isolate* isolate, Local<String> name) { |
ASSERT(symbol->IsUndefined()); |
symbol = i_isolate->factory()->NewPrivateSymbol(); |
i::Handle<i::Symbol>::cast(symbol)->set_name(*i_name); |
- i::JSObject::SetProperty(privates, i_name, symbol, NONE, i::STRICT); |
+ i::JSObject::SetProperty( |
+ privates, i_name, symbol, NONE, i::STRICT).Assert(); |
} |
Local<Symbol> result = Utils::ToLocal(i::Handle<i::Symbol>::cast(symbol)); |
return v8::Handle<Private>(reinterpret_cast<Private*>(*result)); |
@@ -6964,19 +6965,23 @@ Local<Value> Debug::GetMirror(v8::Handle<v8::Value> obj) { |
ENTER_V8(isolate); |
v8::EscapableHandleScope scope(reinterpret_cast<Isolate*>(isolate)); |
i::Debug* isolate_debug = isolate->debug(); |
- isolate_debug->Load(); |
- i::Handle<i::JSObject> debug(isolate_debug->debug_context()->global_object()); |
- i::Handle<i::String> name = isolate->factory()->InternalizeOneByteString( |
- STATIC_ASCII_VECTOR("MakeMirror")); |
- i::Handle<i::Object> fun_obj = i::Object::GetProperty(debug, name); |
- ASSERT(!fun_obj.is_null()); |
- i::Handle<i::JSFunction> fun = i::Handle<i::JSFunction>::cast(fun_obj); |
- v8::Handle<v8::Function> v8_fun = Utils::ToLocal(fun); |
- const int kArgc = 1; |
- v8::Handle<v8::Value> argv[kArgc] = { obj }; |
EXCEPTION_PREAMBLE(isolate); |
- v8::Local<v8::Value> result = |
- v8_fun->Call(Utils::ToLocal(debug), kArgc, argv); |
+ has_pending_exception = !isolate_debug->Load(); |
+ v8::Local<v8::Value> result; |
+ if (!has_pending_exception) { |
+ i::Handle<i::JSObject> debug( |
+ isolate_debug->debug_context()->global_object()); |
+ i::Handle<i::String> name = isolate->factory()->InternalizeOneByteString( |
+ STATIC_ASCII_VECTOR("MakeMirror")); |
+ i::Handle<i::Object> fun_obj = i::Object::GetProperty(debug, name); |
+ ASSERT(!fun_obj.is_null()); |
+ i::Handle<i::JSFunction> fun = i::Handle<i::JSFunction>::cast(fun_obj); |
+ v8::Handle<v8::Function> v8_fun = Utils::ToLocal(fun); |
+ const int kArgc = 1; |
+ v8::Handle<v8::Value> argv[kArgc] = { obj }; |
+ result = v8_fun->Call(Utils::ToLocal(debug), kArgc, argv); |
+ has_pending_exception = result.IsEmpty(); |
+ } |
EXCEPTION_BAILOUT_CHECK(isolate, Local<Value>()); |
return scope.Escape(result); |
} |