Reviewers: Kasper Lund,

Description:
Fixed the step in handling for function.apply.

The generic step-in mechanism floods the function called with break
points to ensure a break is hit when entering the function. This generic
mechanism was also used for function.apply. The code for function.apply
contains a keyed load IC which was patched when stepping into
function.apply. However function.apply enteres an internal frame not a
JavaScript frame. This caused the logic for returning from the break in
function.apply to fail as it forced a jump to the IC on the top
JavaScript frame. The top JavaScript frame was the frame for the
function calling function.apply not the frame for the apply function.
Now returning from the break point in the keyed load IC in the apply
code caused a jump to the code for the call IC for the function calling
function.apply in the first place. Not a pretty sight.

Step-in now handles function.apply as a separate case where the actual
JavaScript function called through apply is flodded with breakpoints
instead of the function.apply function.

BUG=269
bug=8...@chromium.org

Please review this at http://codereview.chromium.org/63055

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
   M     src/debug.cc
   M     test/cctest/test-debug.cc
   D     test/mjsunit/bugs/bug-269.js
   M     test/mjsunit/mjsunit.status
   A  +  test/mjsunit/regress/regress-269.js



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to