Remove uses of non-handlified GetProperty.

R=ishell@chromium.org

Review URL: https://codereview.chromium.org/229373007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
yangguo@chromium.org 2014-04-09 13:05:56 +00:00
parent 3d427b5599
commit ea1dc8eeef
3 changed files with 11 additions and 36 deletions

View File

@ -1108,11 +1108,6 @@ MaybeObject* Object::GetProperty(Name* key) {
}
MaybeObject* Object::GetProperty(Name* key, PropertyAttributes* attributes) {
return GetPropertyWithReceiver(this, key, attributes);
}
#define FIELD_ADDR(p, offset) \
(reinterpret_cast<byte*>(p) + offset - kHeapObjectTag)

View File

@ -5046,13 +5046,15 @@ Object* JSObject::GetHiddenPropertiesHashTable() {
return GetHeap()->undefined_value();
}
} else {
PropertyAttributes attributes;
// You can't install a getter on a property indexed by the hidden string,
// so we can be sure that GetLocalPropertyPostInterceptor returns a real
// object.
return GetLocalPropertyPostInterceptor(this,
GetHeap()->hidden_string(),
&attributes)->ToObjectUnchecked();
LookupResult result(GetIsolate());
LocalLookupRealNamedProperty(GetHeap()->hidden_string(), &result);
if (result.IsFound()) {
ASSERT(result.IsNormal());
ASSERT(result.holder() == this);
Object* value = GetNormalizedProperty(&result);
if (!value->IsTheHole()) return value;
}
return GetHeap()->undefined_value();
}
}
@ -5854,9 +5856,8 @@ Handle<JSObject> JSObjectWalkVisitor<ContextObject>::StructureWalk(
// In particular, don't try to copy the length attribute of
// an array.
if (attributes != NONE) continue;
Handle<Object> value(
copy->GetProperty(*key_string, &attributes)->ToObjectUnchecked(),
isolate);
Handle<Object> value = Object::GetProperty(copy, key_string);
CHECK_NOT_EMPTY_HANDLE(isolate, value);
if (value->IsJSObject()) {
Handle<JSObject> result = VisitElementOrProperty(
copy, Handle<JSObject>::cast(value));
@ -13314,20 +13315,6 @@ MaybeHandle<Object> JSObject::GetPropertyPostInterceptor(
}
MaybeObject* JSObject::GetLocalPropertyPostInterceptor(
Object* receiver,
Name* name,
PropertyAttributes* attributes) {
// Check local property in holder, ignore interceptor.
LookupResult result(GetIsolate());
LocalLookupRealNamedProperty(name, &result);
if (result.IsFound()) {
return GetProperty(receiver, &result, name, attributes);
}
return GetHeap()->undefined_value();
}
MaybeHandle<Object> JSObject::GetPropertyWithInterceptor(
Handle<JSObject> object,
Handle<Object> receiver,

View File

@ -1535,9 +1535,6 @@ class Object : public MaybeObject {
// Property access.
MUST_USE_RESULT inline MaybeObject* GetProperty(Name* key);
MUST_USE_RESULT inline MaybeObject* GetProperty(
Name* key,
PropertyAttributes* attributes);
// TODO(yangguo): this should eventually replace the non-handlified version.
MUST_USE_RESULT static MaybeHandle<Object> GetPropertyWithReceiver(
@ -2392,10 +2389,6 @@ class JSObject: public JSReceiver {
Handle<Object> receiver,
Handle<Name> name,
PropertyAttributes* attributes);
MUST_USE_RESULT MaybeObject* GetLocalPropertyPostInterceptor(
Object* receiver,
Name* name,
PropertyAttributes* attributes);
// Returns true if this is an instance of an api function and has
// been modified since it was created. May give false positives.