Chromium Code Reviews| Index: src/api.cc |
| diff --git a/src/api.cc b/src/api.cc |
| index 538bf8c725c8afe2d8e3a2576d8c3212194e9d12..9c5e53c1f0f515a6e7cddf716268d21253538488 100644 |
| --- a/src/api.cc |
| +++ b/src/api.cc |
| @@ -3069,13 +3069,8 @@ bool v8::Object::Set(uint32_t index, v8::Handle<Value> value) { |
| i::Handle<i::JSObject> self = Utils::OpenHandle(this); |
| i::Handle<i::Object> value_obj = Utils::OpenHandle(*value); |
| EXCEPTION_PREAMBLE(isolate); |
| - i::Handle<i::Object> obj = i::JSObject::SetElement( |
| - self, |
| - index, |
| - value_obj, |
| - NONE, |
| - i::SLOPPY); |
| - has_pending_exception = obj.is_null(); |
| + has_pending_exception = i::JSObject::SetElement( |
| + self, index, value_obj, NONE, i::SLOPPY).is_null(); |
| EXCEPTION_BAILOUT_CHECK(isolate, false); |
| return true; |
| } |
| @@ -3125,8 +3120,9 @@ bool v8::Object::ForceDelete(v8::Handle<Value> key) { |
| } |
| EXCEPTION_PREAMBLE(isolate); |
| - i::Handle<i::Object> obj = i::ForceDeleteProperty(self, key_obj); |
| - has_pending_exception = obj.is_null(); |
| + i::Handle<i::Object> obj; |
| + has_pending_exception = !i::Runtime::DeleteObjectProperty( |
| + isolate, self, key_obj, i::JSReceiver::FORCE_DELETION).ToHandle(&obj); |
| EXCEPTION_BAILOUT_CHECK(isolate, false); |
| return obj->IsTrue(); |
| } |
| @@ -3358,8 +3354,9 @@ bool v8::Object::Delete(v8::Handle<Value> key) { |
| i::Handle<i::JSObject> self = Utils::OpenHandle(this); |
| i::Handle<i::Object> key_obj = Utils::OpenHandle(*key); |
| EXCEPTION_PREAMBLE(isolate); |
| - i::Handle<i::Object> obj = i::DeleteProperty(self, key_obj); |
| - has_pending_exception = obj.is_null(); |
| + i::Handle<i::Object> obj; |
| + has_pending_exception = !i::Runtime::DeleteObjectProperty( |
| + isolate, self, key_obj, i::JSReceiver::NORMAL_DELETION).ToHandle(&obj); |
| EXCEPTION_BAILOUT_CHECK(isolate, false); |
| return obj->IsTrue(); |
| } |
| @@ -3377,8 +3374,9 @@ bool v8::Object::Has(v8::Handle<Value> key) { |
| i::Handle<i::JSReceiver> self = Utils::OpenHandle(this); |
| i::Handle<i::Object> key_obj = Utils::OpenHandle(*key); |
| EXCEPTION_PREAMBLE(isolate); |
| - i::Handle<i::Object> obj = i::HasProperty(self, key_obj); |
| - has_pending_exception = obj.is_null(); |
| + i::Handle<i::Object> obj; |
| + has_pending_exception = !i::Runtime::HasObjectProperty( |
| + isolate, self, key_obj).ToHandle(&obj); |
| EXCEPTION_BAILOUT_CHECK(isolate, false); |
| return obj->IsTrue(); |
| } |
| @@ -3396,7 +3394,13 @@ bool v8::Object::Delete(uint32_t index) { |
| ENTER_V8(isolate); |
| HandleScope scope(reinterpret_cast<Isolate*>(isolate)); |
| i::Handle<i::JSObject> self = Utils::OpenHandle(this); |
| - return i::JSReceiver::DeleteElement(self, index)->IsTrue(); |
| + |
| + EXCEPTION_PREAMBLE(isolate); |
|
Igor Sheludko
2014/04/07 15:32:31
MaybeHandle<> concept really helps!
Yang
2014/04/08 06:51:42
Yup. Definitely.
|
| + i::Handle<i::Object> obj; |
| + has_pending_exception = |
| + !i::JSReceiver::DeleteElement(self, index).ToHandle(&obj); |
| + EXCEPTION_BAILOUT_CHECK(isolate, false); |
| + return obj->IsTrue(); |
| } |