Index: src/debug.cc |
=================================================================== |
--- src/debug.cc (revision 1683) |
+++ src/debug.cc (working copy) |
@@ -1161,15 +1161,18 @@ |
// Don't allow step into functions in the native context. |
if (function->context()->global() != Top::context()->builtins()) { |
if (function->shared()->code() == |
Kasper Lund
2009/04/07 12:15:14
How about caching function->shared()->code() in a
|
- Builtins::builtin(Builtins::FunctionApply)) { |
- // Handle function.apply separately to flood the function to be called |
- // and not the code for Builtins::FunctionApply. At the point of the |
- // call IC to call Builtins::FunctionApply the expression stack has the |
- // following content: |
- // symbol "apply" |
- // function apply was called on |
- // receiver for apply (first parameter to apply) |
- // arguments array for apply (second parameter to apply) |
+ Builtins::builtin(Builtins::FunctionApply) || |
+ function->shared()->code() == |
+ Builtins::builtin(Builtins::FunctionCall)) { |
+ // Handle function.apply and function.call separately to flood the |
+ // function to be called and not the code for Builtins::FunctionApply or |
+ // Builtins::FunctionCall. At the point of the call IC to call either |
+ // Builtins::FunctionApply or Builtins::FunctionCall the expression |
+ // stack has the following content: |
+ // symbol "apply" or "call" |
+ // function apply or call was called on |
+ // receiver for apply or call (first parameter to apply or call) |
+ // ... further arguments to apply or call. |
JavaScriptFrameIterator it; |
ASSERT(it.frame()->fp() == fp); |
ASSERT(it.frame()->GetExpression(1)->IsJSFunction()); |