Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 71e78889edeae105606f9912b801e70954374f7e..0ffdcf0e3e25f31258fdca253e0ff589b2f6205f 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -2169,7 +2169,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DeclareContextSlot) { |
// Declare the property by setting it to the initial value if provided, |
// or undefined, and use the correct mode (e.g. READ_ONLY attribute for |
// constant declarations). |
- ASSERT(!object->HasLocalProperty(*name)); |
+ ASSERT(!JSReceiver::HasLocalProperty(object, name)); |
Handle<Object> value(isolate->heap()->undefined_value(), isolate); |
if (*initial_value != NULL) value = initial_value; |
// Declaring a const context slot is a conflicting declaration if |
@@ -4787,7 +4787,7 @@ MaybeObject* Runtime::HasObjectProperty(Isolate* isolate, |
// Check if the given key is an array index. |
uint32_t index; |
if (key->ToArrayIndex(&index)) { |
- return isolate->heap()->ToBoolean(object->HasElement(index)); |
+ return isolate->heap()->ToBoolean(JSReceiver::HasElement(object, index)); |
} |
// Convert the key to a name - possibly by calling back into JavaScript. |
@@ -4802,7 +4802,7 @@ MaybeObject* Runtime::HasObjectProperty(Isolate* isolate, |
name = Handle<Name>::cast(converted); |
} |
- return isolate->heap()->ToBoolean(object->HasProperty(*name)); |
+ return isolate->heap()->ToBoolean(JSReceiver::HasProperty(object, name)); |
} |
MaybeObject* Runtime::GetObjectPropertyOrFail( |
@@ -5524,7 +5524,9 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DeleteProperty) { |
static MaybeObject* HasLocalPropertyImplementation(Isolate* isolate, |
Handle<JSObject> object, |
Handle<Name> key) { |
- if (object->HasLocalProperty(*key)) return isolate->heap()->true_value(); |
+ if (JSReceiver::HasLocalProperty(object, key)) { |
+ return isolate->heap()->true_value(); |
+ } |
// Handle hidden prototypes. If there's a hidden prototype above this thing |
// then we have to check it for properties, because they are supposed to |
// look like they are on this object. |
@@ -5584,12 +5586,12 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_HasLocalProperty) { |
RUNTIME_FUNCTION(MaybeObject*, Runtime_HasProperty) { |
- SealHandleScope shs(isolate); |
+ HandleScope scope(isolate); |
ASSERT(args.length() == 2); |
- CONVERT_ARG_CHECKED(JSReceiver, receiver, 0); |
- CONVERT_ARG_CHECKED(Name, key, 1); |
+ CONVERT_ARG_HANDLE_CHECKED(JSReceiver, receiver, 0); |
+ CONVERT_ARG_HANDLE_CHECKED(Name, key, 1); |
- bool result = receiver->HasProperty(key); |
+ bool result = JSReceiver::HasProperty(receiver, key); |
RETURN_IF_SCHEDULED_EXCEPTION(isolate); |
if (isolate->has_pending_exception()) return Failure::Exception(); |
return isolate->heap()->ToBoolean(result); |
@@ -5597,12 +5599,12 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_HasProperty) { |
RUNTIME_FUNCTION(MaybeObject*, Runtime_HasElement) { |
- SealHandleScope shs(isolate); |
+ HandleScope scope(isolate); |
ASSERT(args.length() == 2); |
- CONVERT_ARG_CHECKED(JSReceiver, receiver, 0); |
+ CONVERT_ARG_HANDLE_CHECKED(JSReceiver, receiver, 0); |
CONVERT_SMI_ARG_CHECKED(index, 1); |
- bool result = receiver->HasElement(index); |
+ bool result = JSReceiver::HasElement(receiver, index); |
RETURN_IF_SCHEDULED_EXCEPTION(isolate); |
if (isolate->has_pending_exception()) return Failure::Exception(); |
return isolate->heap()->ToBoolean(result); |
@@ -9213,7 +9215,7 @@ static ObjectPair LoadContextSlotHelper(Arguments args, |
// property from it. |
if (!holder.is_null()) { |
Handle<JSReceiver> object = Handle<JSReceiver>::cast(holder); |
- ASSERT(object->IsJSProxy() || object->HasProperty(*name)); |
+ ASSERT(object->IsJSProxy() || JSReceiver::HasProperty(object, name)); |
// GetProperty below can cause GC. |
Handle<Object> receiver_handle( |
object->IsGlobalObject() |
@@ -10194,7 +10196,7 @@ static bool IterateElements(Isolate* isolate, |
Handle<Object> element_value(elements->get(j), isolate); |
if (!element_value->IsTheHole()) { |
visitor->visit(j, element_value); |
- } else if (receiver->HasElement(j)) { |
+ } else if (JSReceiver::HasElement(receiver, j)) { |
// Call GetElement on receiver, not its prototype, or getters won't |
// have the correct receiver. |
element_value = Object::GetElement(isolate, receiver, j); |
@@ -10219,7 +10221,7 @@ static bool IterateElements(Isolate* isolate, |
Handle<Object> element_value = |
isolate->factory()->NewNumber(double_value); |
visitor->visit(j, element_value); |
- } else if (receiver->HasElement(j)) { |
+ } else if (JSReceiver::HasElement(receiver, j)) { |
// Call GetElement on receiver, not its prototype, or getters won't |
// have the correct receiver. |
Handle<Object> element_value = |
@@ -11535,7 +11537,7 @@ static bool SetLocalVariableValue(Isolate* isolate, |
!function_context->IsNativeContext()) { |
Handle<JSObject> ext(JSObject::cast(function_context->extension())); |
- if (ext->HasProperty(*variable_name)) { |
+ if (JSReceiver::HasProperty(ext, variable_name)) { |
// We don't expect this to do anything except replacing |
// property value. |
SetProperty(isolate, |
@@ -11623,7 +11625,7 @@ static bool SetClosureVariableValue(Isolate* isolate, |
// be variables introduced by eval. |
if (context->has_extension()) { |
Handle<JSObject> ext(JSObject::cast(context->extension())); |
- if (ext->HasProperty(*variable_name)) { |
+ if (JSReceiver::HasProperty(ext, variable_name)) { |
// We don't expect this to do anything except replacing property value. |
SetProperty(isolate, |
ext, |
@@ -12666,7 +12668,8 @@ static Handle<JSObject> MaterializeArgumentsObject( |
// Do not materialize the arguments object for eval or top-level code. |
// Skip if "arguments" is already taken. |
if (!function->shared()->is_function() || |
- target->HasLocalProperty(isolate->heap()->arguments_string())) { |
+ JSReceiver::HasLocalProperty(target, |
+ isolate->factory()->arguments_string())) { |
return target; |
} |