|
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
Committed: http://code.google.com/p/v8/source/detail?r=3229
Total comments: 8
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+208 lines, -174 lines) |
Patch |
|
M |
src/arm/builtins-arm.cc
|
View
|
1
2
|
1 chunk |
+9 lines, -29 lines |
0 comments
|
Download
|
|
M |
src/arm/regexp-macro-assembler-arm.cc
|
View
|
|
2 chunks |
+6 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/assembler.h
|
View
|
|
1 chunk |
+4 lines, -1 line |
0 comments
|
Download
|
|
M |
src/assembler.cc
|
View
|
|
1 chunk |
+6 lines, -1 line |
0 comments
|
Download
|
|
M |
src/execution.h
|
View
|
1
2
|
4 chunks |
+28 lines, -13 lines |
0 comments
|
Download
|
|
M |
src/execution.cc
|
View
|
|
3 chunks |
+13 lines, -14 lines |
0 comments
|
Download
|
|
M |
src/heap.h
|
View
|
|
2 chunks |
+5 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/heap.cc
|
View
|
1
2
|
1 chunk |
+8 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/ia32/builtins-ia32.cc
|
View
|
1
2
|
1 chunk |
+11 lines, -28 lines |
0 comments
|
Download
|
|
M |
src/ia32/codegen-ia32.cc
|
View
|
|
1 chunk |
+3 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/ia32/fast-codegen-ia32.cc
|
View
|
|
1 chunk |
+3 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/ia32/regexp-macro-assembler-ia32.cc
|
View
|
|
2 chunks |
+6 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/serialize.cc
|
View
|
|
1 chunk |
+21 lines, -17 lines |
0 comments
|
Download
|
|
M |
src/v8.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/x64/builtins-x64.cc
|
View
|
1
2
|
1 chunk |
+11 lines, -30 lines |
0 comments
|
Download
|
|
M |
src/x64/regexp-macro-assembler-x64.cc
|
View
|
|
2 chunks |
+6 lines, -6 lines |
0 comments
|
Download
|
|
M |
test/cctest/test-debug.cc
|
View
|
1
2
|
2 chunks |
+53 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/cctest/test-serialize.cc
|
View
|
|
2 chunks |
+14 lines, -8 lines |
0 comments
|
Download
|
Total messages: 4 (0 generated)
|