| Index: src/ic.cc
|
| ===================================================================
|
| --- src/ic.cc (revision 4073)
|
| +++ src/ic.cc (working copy)
|
| @@ -458,6 +458,17 @@
|
| ASSERT(result != Heap::the_hole_value());
|
|
|
| if (result->IsJSFunction()) {
|
| + // Check if there is an optimized (builtin) version of the function.
|
| + // Ignored this will degrade performance for some Array functions.
|
| + // Please note we only return the optimized function iff
|
| + // the JSObject has FastElements.
|
| + if (object->IsJSObject() && JSObject::cast(*object)->HasFastElements()) {
|
| + Object* opt = Top::LookupSpecialFunction(JSObject::cast(*object),
|
| + lookup.holder(),
|
| + JSFunction::cast(result));
|
| + if (opt->IsJSFunction()) return opt;
|
| + }
|
| +
|
| #ifdef ENABLE_DEBUGGER_SUPPORT
|
| // Handle stepping into a function if step into is active.
|
| if (Debug::StepInActive()) {
|
|
|