Fix unhandlified value in GetOwnProperty function.
R=svenpanne@chromium.org BUG=chromium:169723 Review URL: https://codereview.chromium.org/11879017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
9a8c8ed58c
commit
ee18b8f0e4
@ -1098,14 +1098,14 @@ static MaybeObject* GetOwnProperty(Isolate* isolate,
|
|||||||
|
|
||||||
PropertyAttributes attrs = obj->GetLocalPropertyAttribute(*name);
|
PropertyAttributes attrs = obj->GetLocalPropertyAttribute(*name);
|
||||||
if (attrs == ABSENT) return heap->undefined_value();
|
if (attrs == ABSENT) return heap->undefined_value();
|
||||||
AccessorPair* accessors = obj->GetLocalPropertyAccessorPair(*name);
|
Handle<AccessorPair> accessors(obj->GetLocalPropertyAccessorPair(*name));
|
||||||
|
|
||||||
Handle<FixedArray> elms = isolate->factory()->NewFixedArray(DESCRIPTOR_SIZE);
|
Handle<FixedArray> elms = isolate->factory()->NewFixedArray(DESCRIPTOR_SIZE);
|
||||||
elms->set(ENUMERABLE_INDEX, heap->ToBoolean((attrs & DONT_ENUM) == 0));
|
elms->set(ENUMERABLE_INDEX, heap->ToBoolean((attrs & DONT_ENUM) == 0));
|
||||||
elms->set(CONFIGURABLE_INDEX, heap->ToBoolean((attrs & DONT_DELETE) == 0));
|
elms->set(CONFIGURABLE_INDEX, heap->ToBoolean((attrs & DONT_DELETE) == 0));
|
||||||
elms->set(IS_ACCESSOR_INDEX, heap->ToBoolean(accessors != NULL));
|
elms->set(IS_ACCESSOR_INDEX, heap->ToBoolean(!accessors.is_null()));
|
||||||
|
|
||||||
if (accessors == NULL) {
|
if (accessors.is_null()) {
|
||||||
elms->set(WRITABLE_INDEX, heap->ToBoolean((attrs & READ_ONLY) == 0));
|
elms->set(WRITABLE_INDEX, heap->ToBoolean((attrs & READ_ONLY) == 0));
|
||||||
// GetProperty does access check.
|
// GetProperty does access check.
|
||||||
Handle<Object> value = GetProperty(obj, name);
|
Handle<Object> value = GetProperty(obj, name);
|
||||||
|
Loading…
Reference in New Issue
Block a user