• sgjesse@chromium.org's avatar
    Fix issue 493: Infinite loop when debug break is set when entering function.apply. · 41d6cae4
    sgjesse@chromium.org authored
    In the generated code for function.apply there was a loop checking the stack limit for interruption. This loop would call into the runtime system to handle interuption and keep running until there was no interruption. However if the interuption was debug break the runtime system would never clear the interruption as debug break is prevented in builtins are prevented and the assumption here was that returning with the debug break flag set would move execution forward.
    
    Renamed initial_jslimit and initial_climit to real_jslimit and real_climit. Renamed a few external references related to the stack limit as well.
    
    Exposed the real stack limit to generated code to make the stack check when entering function.apply use the real stack limit and not the stack limit which is changed to signal interruption.
    
    Added the real stack limit to the roots array.
    
    BUG=http://code.google.com/p/v8/issues/detail?id=493
    TEST=cctest/test-debug/DebugBreakFunctionApply
    Review URL: http://codereview.chromium.org/345048
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    41d6cae4
regexp-macro-assembler-ia32.cc 38.2 KB