Reviewers: Erik Corry,

Description:
Fix issue 493: Infinite loop when debug break is set when entering
function.apply.

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

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

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

Affected files:
   M     src/arm/builtins-arm.cc
   M     src/arm/regexp-macro-assembler-arm.cc
   M     src/assembler.h
   M     src/assembler.cc
   M     src/execution.h
   M     src/execution.cc
   M     src/heap.h
   M     src/heap.cc
   M     src/ia32/builtins-ia32.cc
   M     src/ia32/codegen-ia32.cc
   M     src/ia32/fast-codegen-ia32.cc
   M     src/ia32/regexp-macro-assembler-ia32.cc
   M     src/serialize.cc
   M     src/v8.cc
   M     src/x64/builtins-x64.cc
   M     src/x64/regexp-macro-assembler-x64.cc
   M     test/cctest/test-debug.cc
   M     test/cctest/test-serialize.cc



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to