From 4acf44d75946787efb5be43b4a384f15200e0187 Mon Sep 17 00:00:00 2001 From: "verwaest@chromium.org" Date: Wed, 20 Aug 2014 13:52:49 +0000 Subject: [PATCH] Return empty handle if GetPropertyByLookup has no result. BUG= R=yangguo@chromium.org Review URL: https://codereview.chromium.org/494583003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/api.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/api.cc b/src/api.cc index 69a5062..79cf36c 100644 --- a/src/api.cc +++ b/src/api.cc @@ -3571,7 +3571,8 @@ static Local GetPropertyByLookup(i::LookupIterator* it) { has_pending_exception = !i::Object::GetProperty(it).ToHandle(&result); EXCEPTION_BAILOUT_CHECK(it->isolate(), Local()); - return Utils::ToLocal(result); + if (it->IsFound()) return Utils::ToLocal(result); + return Local(); } @@ -3599,8 +3600,7 @@ Local v8::Object::GetRealNamedProperty(Handle key) { ENTER_V8(isolate); i::Handle self_obj = Utils::OpenHandle(this); i::Handle key_obj = Utils::OpenHandle(*key); - i::LookupIterator it(self_obj, key_obj, - i::LookupIterator::CHECK_DERIVED_PROPERTY); + i::LookupIterator it(self_obj, key_obj, i::LookupIterator::CHECK_PROPERTY); return GetPropertyByLookup(&it); } -- 2.7.4