diff --git a/src/api.cc b/src/api.cc index 034bf57e5c..bf156183e1 100644 --- a/src/api.cc +++ b/src/api.cc @@ -1455,11 +1455,14 @@ Local Value::ToObject() const { Local Value::ToBoolean() const { if (IsDeadCheck("v8::Value::ToBoolean()")) return Local(); LOG_API("ToBoolean"); - ENTER_V8; i::Handle obj = Utils::OpenHandle(this); - i::Handle val = - obj->IsBoolean() ? obj : i::Execution::ToBoolean(obj); - return Local(ToApi(val)); + if (obj->IsBoolean()) { + return Local(ToApi(obj)); + } else { + ENTER_V8; + i::Handle val = i::Execution::ToBoolean(obj); + return Local(ToApi(val)); + } } @@ -1580,11 +1583,14 @@ v8::Date* v8::Date::Cast(v8::Value* that) { bool Value::BooleanValue() const { if (IsDeadCheck("v8::Value::BooleanValue()")) return false; LOG_API("BooleanValue"); - ENTER_V8; i::Handle obj = Utils::OpenHandle(this); - i::Handle value = - obj->IsBoolean() ? obj : i::Execution::ToBoolean(obj); - return value->IsTrue(); + if (obj->IsBoolean()) { + return obj->IsTrue(); + } else { + ENTER_V8; + i::Handle value = i::Execution::ToBoolean(obj); + return value->IsTrue(); + } } @@ -2347,8 +2353,8 @@ void v8::Object::SetInternalField(int index, v8::Handle value) { // --- E n v i r o n m e n t --- bool v8::V8::Initialize() { - ENTER_V8; if (i::V8::HasBeenSetup()) return true; + ENTER_V8; HandleScope scope; if (i::Snapshot::Initialize()) { return true;