Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(36)

Unified Diff: src/api.cc

Issue 972623003: convert more object functions to return maybes (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « include/v8.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/api.cc
diff --git a/src/api.cc b/src/api.cc
index 04e317b5cfa6eeb9c3d55ba3525563b3547a51d4..71e91aea39b2d9cae446a2581862c08b519ce2d3 100644
--- a/src/api.cc
+++ b/src/api.cc
@@ -3479,43 +3479,40 @@ Local<Value> v8::Object::GetOwnPropertyDescriptor(Local<String> key) {
Local<Value> v8::Object::GetPrototype() {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::GetPrototype()", return Local<v8::Value>());
- ENTER_V8(isolate);
- i::Handle<i::Object> self = Utils::OpenHandle(this);
+ auto isolate = Utils::OpenHandle(this)->GetIsolate();
+ auto self = Utils::OpenHandle(this);
i::PrototypeIterator iter(isolate, self);
return Utils::ToLocal(i::PrototypeIterator::GetCurrent(iter));
}
-bool v8::Object::SetPrototype(Handle<Value> value) {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::SetPrototype()", return false);
- ENTER_V8(isolate);
- i::Handle<i::JSObject> self = Utils::OpenHandle(this);
- i::Handle<i::Object> value_obj = Utils::OpenHandle(*value);
+Maybe<bool> v8::Object::SetPrototype(Local<Context> context,
+ Local<Value> value) {
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::SetPrototype()", bool);
+ auto self = Utils::OpenHandle(this);
+ auto value_obj = Utils::OpenHandle(*value);
// We do not allow exceptions thrown while setting the prototype
// to propagate outside.
- TryCatch try_catch;
- EXCEPTION_PREAMBLE(isolate);
- i::MaybeHandle<i::Object> result =
- i::JSObject::SetPrototype(self, value_obj, false);
+ TryCatch try_catch(reinterpret_cast<v8::Isolate*>(isolate));
+ auto result = i::JSObject::SetPrototype(self, value_obj, false);
has_pending_exception = result.is_null();
- EXCEPTION_BAILOUT_CHECK(isolate, false);
- return true;
+ RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool);
+ return Just(true);
+}
+
+
+bool v8::Object::SetPrototype(Handle<Value> value) {
+ auto context = ContextFromHeapObject(Utils::OpenHandle(this));
+ return SetPrototype(context, value).FromMaybe(false);
}
Local<Object> v8::Object::FindInstanceInPrototypeChain(
v8::Handle<FunctionTemplate> tmpl) {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate,
- "v8::Object::FindInstanceInPrototypeChain()",
- return Local<v8::Object>());
- ENTER_V8(isolate);
+ auto isolate = Utils::OpenHandle(this)->GetIsolate();
i::PrototypeIterator iter(isolate, *Utils::OpenHandle(this),
i::PrototypeIterator::START_AT_RECEIVER);
- i::FunctionTemplateInfo* tmpl_info = *Utils::OpenHandle(*tmpl);
+ auto tmpl_info = *Utils::OpenHandle(*tmpl);
while (!tmpl_info->IsTemplateFor(iter.GetCurrent())) {
iter.Advance();
if (iter.IsAtEnd()) {
@@ -3527,47 +3524,47 @@ Local<Object> v8::Object::FindInstanceInPrototypeChain(
}
-Local<Array> v8::Object::GetPropertyNames() {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::GetPropertyNames()",
- return Local<v8::Array>());
- ENTER_V8(isolate);
- i::HandleScope scope(isolate);
- i::Handle<i::JSObject> self = Utils::OpenHandle(this);
- EXCEPTION_PREAMBLE(isolate);
+MaybeLocal<Array> v8::Object::GetPropertyNames(Local<Context> context) {
+ PREPARE_FOR_EXECUTION(context, "v8::Object::GetPropertyNames()", Array);
+ auto self = Utils::OpenHandle(this);
i::Handle<i::FixedArray> value;
has_pending_exception = !i::JSReceiver::GetKeys(
self, i::JSReceiver::INCLUDE_PROTOS).ToHandle(&value);
- EXCEPTION_BAILOUT_CHECK(isolate, Local<v8::Array>());
+ RETURN_ON_FAILED_EXECUTION(Array);
// Because we use caching to speed up enumeration it is important
// to never change the result of the basic enumeration function so
// we clone the result.
- i::Handle<i::FixedArray> elms = isolate->factory()->CopyFixedArray(value);
- i::Handle<i::JSArray> result =
- isolate->factory()->NewJSArrayWithElements(elms);
- return Utils::ToLocal(scope.CloseAndEscape(result));
+ auto elms = isolate->factory()->CopyFixedArray(value);
+ auto result = isolate->factory()->NewJSArrayWithElements(elms);
+ RETURN_ESCAPED(Utils::ToLocal(result));
}
-Local<Array> v8::Object::GetOwnPropertyNames() {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::GetOwnPropertyNames()",
- return Local<v8::Array>());
- ENTER_V8(isolate);
- i::HandleScope scope(isolate);
- i::Handle<i::JSObject> self = Utils::OpenHandle(this);
- EXCEPTION_PREAMBLE(isolate);
+Local<Array> v8::Object::GetPropertyNames() {
+ auto context = ContextFromHeapObject(Utils::OpenHandle(this));
+ RETURN_TO_LOCAL_UNCHECKED(GetPropertyNames(context), Array);
+}
+
+
+MaybeLocal<Array> v8::Object::GetOwnPropertyNames(Local<Context> context) {
+ PREPARE_FOR_EXECUTION(context, "v8::Object::GetOwnPropertyNames()", Array);
+ auto self = Utils::OpenHandle(this);
i::Handle<i::FixedArray> value;
has_pending_exception = !i::JSReceiver::GetKeys(
self, i::JSReceiver::OWN_ONLY).ToHandle(&value);
- EXCEPTION_BAILOUT_CHECK(isolate, Local<v8::Array>());
+ RETURN_ON_FAILED_EXECUTION(Array);
// Because we use caching to speed up enumeration it is important
// to never change the result of the basic enumeration function so
// we clone the result.
- i::Handle<i::FixedArray> elms = isolate->factory()->CopyFixedArray(value);
- i::Handle<i::JSArray> result =
- isolate->factory()->NewJSArrayWithElements(elms);
- return Utils::ToLocal(scope.CloseAndEscape(result));
+ auto elms = isolate->factory()->CopyFixedArray(value);
+ auto result = isolate->factory()->NewJSArrayWithElements(elms);
+ RETURN_ESCAPED(Utils::ToLocal(result));
+}
+
+
+Local<Array> v8::Object::GetOwnPropertyNames() {
+ auto context = ContextFromHeapObject(Utils::OpenHandle(this));
+ RETURN_TO_LOCAL_UNCHECKED(GetOwnPropertyNames(context), Array);
}
@@ -3819,157 +3816,197 @@ void Object::SetAccessorProperty(Local<Name> name,
}
+Maybe<bool> v8::Object::HasOwnProperty(Local<Context> context,
+ Local<Name> key) {
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::HasOwnProperty()",
+ bool);
+ auto self = Utils::OpenHandle(this);
+ auto key_val = Utils::OpenHandle(*key);
+ auto result = i::JSReceiver::HasOwnProperty(self, key_val);
+ has_pending_exception = result.IsNothing();
+ RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool);
+ return result;
+}
+
+
bool v8::Object::HasOwnProperty(Handle<String> key) {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::HasOwnProperty()",
- return false);
- EXCEPTION_PREAMBLE(isolate);
- Maybe<bool> maybe = i::JSReceiver::HasOwnProperty(Utils::OpenHandle(this),
- Utils::OpenHandle(*key));
- has_pending_exception = !maybe.IsJust();
- EXCEPTION_BAILOUT_CHECK(isolate, false);
- return maybe.FromJust();
+ auto context = ContextFromHeapObject(Utils::OpenHandle(this));
+ return HasOwnProperty(context, key).FromMaybe(false);
+}
+
+
+Maybe<bool> v8::Object::HasRealNamedProperty(Local<Context> context,
+ Local<Name> key) {
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::HasRealNamedProperty()",
+ bool);
+ auto self = Utils::OpenHandle(this);
+ auto key_val = Utils::OpenHandle(*key);
+ auto result = i::JSObject::HasRealNamedProperty(self, key_val);
+ has_pending_exception = result.IsNothing();
+ RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool);
+ return result;
}
bool v8::Object::HasRealNamedProperty(Handle<String> key) {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::HasRealNamedProperty()",
- return false);
- EXCEPTION_PREAMBLE(isolate);
- Maybe<bool> maybe = i::JSObject::HasRealNamedProperty(
- Utils::OpenHandle(this), Utils::OpenHandle(*key));
- has_pending_exception = !maybe.IsJust();
- EXCEPTION_BAILOUT_CHECK(isolate, false);
- return maybe.FromJust();
+ auto context = ContextFromHeapObject(Utils::OpenHandle(this));
+ return HasRealNamedProperty(context, key).FromMaybe(false);
+}
+
+
+Maybe<bool> v8::Object::HasRealIndexedProperty(Local<Context> context,
+ uint32_t index) {
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context,
+ "v8::Object::HasRealIndexedProperty()", bool);
+ auto self = Utils::OpenHandle(this);
+ auto result = i::JSObject::HasRealElementProperty(self, index);
+ has_pending_exception = result.IsNothing();
+ RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool);
+ return result;
}
bool v8::Object::HasRealIndexedProperty(uint32_t index) {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::HasRealIndexedProperty()",
- return false);
- EXCEPTION_PREAMBLE(isolate);
- Maybe<bool> maybe =
- i::JSObject::HasRealElementProperty(Utils::OpenHandle(this), index);
- has_pending_exception = !maybe.IsJust();
- EXCEPTION_BAILOUT_CHECK(isolate, false);
- return maybe.FromJust();
+ auto context = ContextFromHeapObject(Utils::OpenHandle(this));
+ return HasRealIndexedProperty(context, index).FromMaybe(false);
+}
+
+
+Maybe<bool> v8::Object::HasRealNamedCallbackProperty(Local<Context> context,
+ Local<Name> key) {
+ PREPARE_FOR_EXECUTION_PRIMITIVE(
+ context, "v8::Object::HasRealNamedCallbackProperty()", bool);
+ auto self = Utils::OpenHandle(this);
+ auto key_val = Utils::OpenHandle(*key);
+ auto result = i::JSObject::HasRealNamedCallbackProperty(self, key_val);
+ has_pending_exception = result.IsNothing();
+ RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool);
+ return result;
}
bool v8::Object::HasRealNamedCallbackProperty(Handle<String> key) {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate,
- "v8::Object::HasRealNamedCallbackProperty()",
- return false);
- ENTER_V8(isolate);
- EXCEPTION_PREAMBLE(isolate);
- Maybe<bool> maybe = i::JSObject::HasRealNamedCallbackProperty(
- Utils::OpenHandle(this), Utils::OpenHandle(*key));
- has_pending_exception = !maybe.IsJust();
- EXCEPTION_BAILOUT_CHECK(isolate, false);
- return maybe.FromJust();
+ auto context = ContextFromHeapObject(Utils::OpenHandle(this));
+ return HasRealNamedCallbackProperty(context, key).FromMaybe(false);
}
bool v8::Object::HasNamedLookupInterceptor() {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::HasNamedLookupInterceptor()",
- return false);
- return Utils::OpenHandle(this)->HasNamedInterceptor();
+ auto self = Utils::OpenHandle(this);
+ return self->HasNamedInterceptor();
}
bool v8::Object::HasIndexedLookupInterceptor() {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::HasIndexedLookupInterceptor()",
- return false);
- return Utils::OpenHandle(this)->HasIndexedInterceptor();
+ auto self = Utils::OpenHandle(this);
+ return self->HasIndexedInterceptor();
}
-static Local<Value> GetPropertyByLookup(i::LookupIterator* it) {
- // If the property being looked up is a callback, it can throw an exception.
- EXCEPTION_PREAMBLE(it->isolate());
- i::Handle<i::Object> result;
- has_pending_exception = !i::Object::GetProperty(it).ToHandle(&result);
- EXCEPTION_BAILOUT_CHECK(it->isolate(), Local<Value>());
-
- if (it->IsFound()) return Utils::ToLocal(result);
- return Local<Value>();
+MaybeLocal<Value> v8::Object::GetRealNamedPropertyInPrototypeChain(
+ Local<Context> context, Local<Name> key) {
+ PREPARE_FOR_EXECUTION(
+ context, "v8::Object::GetRealNamedPropertyInPrototypeChain()", Value);
+ auto self = Utils::OpenHandle(this);
+ auto key_obj = Utils::OpenHandle(*key);
+ i::PrototypeIterator iter(isolate, self);
+ if (iter.IsAtEnd()) return MaybeLocal<Value>();
+ auto proto = i::PrototypeIterator::GetCurrent(iter);
+ i::LookupIterator it(self, key_obj, i::Handle<i::JSReceiver>::cast(proto),
+ i::LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR);
+ if (!it.IsFound()) return MaybeLocal<Value>();
+ Local<Value> result;
+ has_pending_exception = !ToLocal<Value>(i::Object::GetProperty(&it), &result);
+ RETURN_ON_FAILED_EXECUTION(Value);
+ RETURN_ESCAPED(result);
}
-static Maybe<PropertyAttribute> GetPropertyAttributesByLookup(
- i::LookupIterator* it) {
- Maybe<PropertyAttributes> attr = i::JSReceiver::GetPropertyAttributes(it);
- return it->IsFound() ? Just<PropertyAttribute>(
- static_cast<PropertyAttribute>(attr.FromJust()))
- : Nothing<PropertyAttribute>();
+Local<Value> v8::Object::GetRealNamedPropertyInPrototypeChain(
+ Handle<String> key) {
+ auto context = ContextFromHeapObject(Utils::OpenHandle(this));
+ RETURN_TO_LOCAL_UNCHECKED(GetRealNamedPropertyInPrototypeChain(context, key),
+ Value);
}
-Local<Value> v8::Object::GetRealNamedPropertyInPrototypeChain(
- Handle<String> key) {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate,
- "v8::Object::GetRealNamedPropertyInPrototypeChain()",
- return Local<Value>());
- ENTER_V8(isolate);
- i::Handle<i::JSObject> self_obj = Utils::OpenHandle(this);
- i::Handle<i::String> key_obj = Utils::OpenHandle(*key);
- i::PrototypeIterator iter(isolate, self_obj);
- if (iter.IsAtEnd()) return Local<Value>();
- i::Handle<i::Object> proto = i::PrototypeIterator::GetCurrent(iter);
- i::LookupIterator it(self_obj, key_obj, i::Handle<i::JSReceiver>::cast(proto),
+Maybe<PropertyAttribute>
+v8::Object::GetRealNamedPropertyAttributesInPrototypeChain(
+ Local<Context> context, Local<Name> key) {
+ PREPARE_FOR_EXECUTION_PRIMITIVE(
+ context, "v8::Object::GetRealNamedPropertyAttributesInPrototypeChain()",
+ PropertyAttribute);
+ auto self = Utils::OpenHandle(this);
+ auto key_obj = Utils::OpenHandle(*key);
+ i::PrototypeIterator iter(isolate, self);
+ if (iter.IsAtEnd()) return Nothing<PropertyAttribute>();
+ auto proto = i::PrototypeIterator::GetCurrent(iter);
+ i::LookupIterator it(self, key_obj, i::Handle<i::JSReceiver>::cast(proto),
i::LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR);
- return GetPropertyByLookup(&it);
+ if (!it.IsFound()) return Nothing<PropertyAttribute>();
+ auto result = i::JSReceiver::GetPropertyAttributes(&it);
+ RETURN_ON_FAILED_EXECUTION_PRIMITIVE(PropertyAttribute);
+ if (result.FromJust() == ABSENT) {
+ return Just(static_cast<PropertyAttribute>(NONE));
+ }
+ return Just<PropertyAttribute>(
+ static_cast<PropertyAttribute>(result.FromJust()));
}
Maybe<PropertyAttribute>
v8::Object::GetRealNamedPropertyAttributesInPrototypeChain(Handle<String> key) {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate,
- "v8::Object::GetRealNamedPropertyAttributesInPrototypeChain()",
- return Nothing<PropertyAttribute>());
- ENTER_V8(isolate);
- i::Handle<i::JSObject> self_obj = Utils::OpenHandle(this);
- i::Handle<i::String> key_obj = Utils::OpenHandle(*key);
- i::PrototypeIterator iter(isolate, self_obj);
- if (iter.IsAtEnd()) return Nothing<PropertyAttribute>();
- i::Handle<i::Object> proto = i::PrototypeIterator::GetCurrent(iter);
- i::LookupIterator it(self_obj, key_obj, i::Handle<i::JSReceiver>::cast(proto),
+ auto context = ContextFromHeapObject(Utils::OpenHandle(this));
+ return GetRealNamedPropertyAttributesInPrototypeChain(context, key);
+}
+
+
+MaybeLocal<Value> v8::Object::GetRealNamedProperty(Local<Context> context,
+ Local<Name> key) {
+ PREPARE_FOR_EXECUTION(
+ context, "v8::Object::GetRealNamedPropertyInPrototypeChain()", Value);
+ auto self = Utils::OpenHandle(this);
+ auto key_obj = Utils::OpenHandle(*key);
+ i::LookupIterator it(self, key_obj,
i::LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR);
- return GetPropertyAttributesByLookup(&it);
+ if (!it.IsFound()) return MaybeLocal<Value>();
+ Local<Value> result;
+ has_pending_exception = !ToLocal<Value>(i::Object::GetProperty(&it), &result);
+ RETURN_ON_FAILED_EXECUTION(Value);
+ RETURN_ESCAPED(result);
}
Local<Value> v8::Object::GetRealNamedProperty(Handle<String> key) {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::GetRealNamedProperty()",
- return Local<Value>());
- ENTER_V8(isolate);
- i::Handle<i::JSObject> self_obj = Utils::OpenHandle(this);
- i::Handle<i::String> key_obj = Utils::OpenHandle(*key);
- i::LookupIterator it(self_obj, key_obj,
+ auto context = ContextFromHeapObject(Utils::OpenHandle(this));
+ RETURN_TO_LOCAL_UNCHECKED(GetRealNamedProperty(context, key), Value);
+}
+
+
+Maybe<PropertyAttribute> v8::Object::GetRealNamedPropertyAttributes(
+ Local<Context> context, Local<Name> key) {
+ PREPARE_FOR_EXECUTION_PRIMITIVE(
+ context, "v8::Object::GetRealNamedPropertyAttributes()",
+ PropertyAttribute);
+ auto self = Utils::OpenHandle(this);
+ auto key_obj = Utils::OpenHandle(*key);
+ i::LookupIterator it(self, key_obj,
i::LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR);
- return GetPropertyByLookup(&it);
+ if (!it.IsFound()) return Nothing<PropertyAttribute>();
+ auto result = i::JSReceiver::GetPropertyAttributes(&it);
+ RETURN_ON_FAILED_EXECUTION_PRIMITIVE(PropertyAttribute);
+ if (result.FromJust() == ABSENT) {
+ return Just(static_cast<PropertyAttribute>(NONE));
+ }
+ return Just<PropertyAttribute>(
+ static_cast<PropertyAttribute>(result.FromJust()));
}
Maybe<PropertyAttribute> v8::Object::GetRealNamedPropertyAttributes(
Handle<String> key) {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::GetRealNamedPropertyAttributes()",
- return Nothing<PropertyAttribute>());
- ENTER_V8(isolate);
- i::Handle<i::JSObject> self_obj = Utils::OpenHandle(this);
- i::Handle<i::String> key_obj = Utils::OpenHandle(*key);
- i::LookupIterator it(self_obj, key_obj,
- i::LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR);
- return GetPropertyAttributesByLookup(&it);
+ auto context = ContextFromHeapObject(Utils::OpenHandle(this));
+ return GetRealNamedPropertyAttributes(context, key);
}
@@ -3978,7 +4015,6 @@ Maybe<PropertyAttribute> v8::Object::GetRealNamedPropertyAttributes(
// the old map of this object will fail.
void v8::Object::TurnOnAccessCheck() {
i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::TurnOnAccessCheck()", return);
ENTER_V8(isolate);
i::HandleScope scope(isolate);
i::Handle<i::JSObject> obj = Utils::OpenHandle(this);
@@ -4008,22 +4044,16 @@ Local<v8::Object> v8::Object::Clone() {
Local<v8::Context> v8::Object::CreationContext() {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate,
- "v8::Object::CreationContext()", return Local<v8::Context>());
- ENTER_V8(isolate);
- i::Handle<i::JSObject> self = Utils::OpenHandle(this);
- i::Context* context = self->GetCreationContext();
- return Utils::ToLocal(i::Handle<i::Context>(context));
+ auto self = Utils::OpenHandle(this);
+ auto context = handle(self->GetCreationContext());
+ return Utils::ToLocal(context);
}
int v8::Object::GetIdentityHash() {
- i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::GetIdentityHash()", return 0);
- ENTER_V8(isolate);
+ auto isolate = Utils::OpenHandle(this)->GetIsolate();
i::HandleScope scope(isolate);
- i::Handle<i::JSObject> self = Utils::OpenHandle(this);
+ auto self = Utils::OpenHandle(this);
return i::JSReceiver::GetOrCreateIdentityHash(self)->value();
}
@@ -4031,7 +4061,6 @@ int v8::Object::GetIdentityHash() {
bool v8::Object::SetHiddenValue(v8::Handle<v8::String> key,
v8::Handle<v8::Value> value) {
i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::SetHiddenValue()", return false);
if (value.IsEmpty()) return DeleteHiddenValue(key);
ENTER_V8(isolate);
i::HandleScope scope(isolate);
@@ -4048,8 +4077,6 @@ bool v8::Object::SetHiddenValue(v8::Handle<v8::String> key,
v8::Local<v8::Value> v8::Object::GetHiddenValue(v8::Handle<v8::String> key) {
i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::Object::GetHiddenValue()",
- return Local<v8::Value>());
ENTER_V8(isolate);
i::Handle<i::JSObject> self = Utils::OpenHandle(this);
i::Handle<i::String> key_obj = Utils::OpenHandle(*key);
@@ -4063,7 +4090,6 @@ v8::Local<v8::Value> v8::Object::GetHiddenValue(v8::Handle<v8::String> key) {
bool v8::Object::DeleteHiddenValue(v8::Handle<v8::String> key) {
i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
- ON_BAILOUT(isolate, "v8::DeleteHiddenValue()", return false);
ENTER_V8(isolate);
i::HandleScope scope(isolate);
i::Handle<i::JSObject> self = Utils::OpenHandle(this);
« no previous file with comments | « include/v8.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698