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:
mstarzinger@chromium.org 2013-01-14 10:21:22 +00:00
parent 9a8c8ed58c
commit ee18b8f0e4

View File

@ -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);