| 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);
|
| + i::Handle<i::Object> obj;
|
| + has_pending_exception =
|
| + !i::JSReceiver::DeleteElement(self, index).ToHandle(&obj);
|
| + EXCEPTION_BAILOUT_CHECK(isolate, false);
|
| + return obj->IsTrue();
|
| }
|
|
|
|
|
|
|