From 4907f424addc85e0430511acf104f268f52d8593 Mon Sep 17 00:00:00 2001 From: "vegorov@chromium.org" Date: Mon, 2 Jan 2012 08:54:01 +0000 Subject: [PATCH] Filter transitions while searching for CONSTANT_FUNCTION property in Call::ComputeTarget. Otherwise transition will hide CONSTANT_FUNCTION property with the same name residing on the prototype. R=danno@chromium.org BUG=v8:1883 Review URL: http://codereview.chromium.org/9064003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/ast.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ast.cc b/src/ast.cc index 0793356..2e26999 100644 --- a/src/ast.cc +++ b/src/ast.cc @@ -748,7 +748,8 @@ bool Call::ComputeTarget(Handle type, Handle name) { type->LookupInDescriptors(NULL, *name, &lookup); // If the function wasn't found directly in the map, we start // looking upwards through the prototype chain. - if (!lookup.IsFound() && type->prototype()->IsJSObject()) { + if ((!lookup.IsFound() || IsTransitionType(lookup.type())) + && type->prototype()->IsJSObject()) { holder_ = Handle(JSObject::cast(type->prototype())); type = Handle(holder()->map()); } else if (lookup.IsProperty() && lookup.type() == CONSTANT_FUNCTION) { -- 2.7.4