Fix a prototype chain traversal not expecting proxies.

R=kmillikin@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/8144011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
rossberg@chromium.org 2011-10-06 08:46:38 +00:00
parent ebf6cb7150
commit 1e56e29a38

View File

@ -3995,7 +3995,7 @@ void JSReceiver::Lookup(String* name, LookupResult* result) {
void JSObject::LookupCallback(String* name, LookupResult* result) { void JSObject::LookupCallback(String* name, LookupResult* result) {
Heap* heap = GetHeap(); Heap* heap = GetHeap();
for (Object* current = this; for (Object* current = this;
current != heap->null_value(); current != heap->null_value() && current->IsJSObject();
current = JSObject::cast(current)->GetPrototype()) { current = JSObject::cast(current)->GetPrototype()) {
JSObject::cast(current)->LocalLookupRealNamedProperty(name, result); JSObject::cast(current)->LocalLookupRealNamedProperty(name, result);
if (result->IsProperty() && result->type() == CALLBACKS) return; if (result->IsProperty() && result->type() == CALLBACKS) return;