Commit ad4f2b99 authored by erik.corry@gmail.com's avatar erik.corry@gmail.com

Remove unwarranted assumptions about inlining from a debugger test.

Review URL: https://chromiumcodereview.appspot.com/10239003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 657ffd88
...@@ -56,6 +56,11 @@ function arraySum(arr) { ...@@ -56,6 +56,11 @@ function arraySum(arr) {
return arr.reduce(function (a, b) { return a + b; }, 0); return arr.reduce(function (a, b) { return a + b; }, 0);
} }
function isCurrentlyOptimized(fun) {
// See runtime.cc.
return (%GetOptimizationStatus(fun) & 1) != 0;
}
function listener(event, exec_state, event_data, data) { function listener(event, exec_state, event_data, data) {
try { try {
if (event == Debug.DebugEvent.Break) if (event == Debug.DebugEvent.Break)
...@@ -148,23 +153,22 @@ function listener(event, exec_state, event_data, data) { ...@@ -148,23 +153,22 @@ function listener(event, exec_state, event_data, data) {
assertFalse(frame.isConstructCall()); assertFalse(frame.isConstructCall());
} }
// When function f is optimized (1 means YES, see runtime.cc) we if (i > 4) {
// expect an optimized frame for f with g1, g2 and g3 inlined. assertFalse(frame.isOptimizedFrame());
if (%GetOptimizationStatus(f) == 1) { assertFalse(frame.isInlinedFrame());
if (i == 1 || i == 2 || i == 3) {
assertTrue(frame.isOptimizedFrame());
assertTrue(frame.isInlinedFrame());
assertEquals(4 - i, frame.inlinedFrameIndex());
} else if (i == 4) {
assertTrue(frame.isOptimizedFrame());
assertFalse(frame.isInlinedFrame());
} else {
assertFalse(frame.isOptimizedFrame());
assertFalse(frame.isInlinedFrame());
}
} }
} }
// When function f is optimized we expect an optimized frame for f. We
// can't say whether or not the top 3 frames (g1, g2 and g3) are
// optimized and inlined.
var frame4 = exec_state.frame(4);
if (isCurrentlyOptimized(f)) {
assertTrue(frame4.isOptimizedFrame());
assertFalse(frame4.isInlinedFrame());
}
// Indicate that all was processed. // Indicate that all was processed.
listenerComplete = true; listenerComplete = true;
} }
......
...@@ -46,6 +46,11 @@ function arraySum(arr) { ...@@ -46,6 +46,11 @@ function arraySum(arr) {
return arr.reduce(function (a, b) { return a + b; }, 0); return arr.reduce(function (a, b) { return a + b; }, 0);
} }
function isCurrentlyOptimized(fun) {
// See runtime.cc.
return (%GetOptimizationStatus(fun) & 1) != 0;
}
function listener(event, exec_state, event_data, data) { function listener(event, exec_state, event_data, data) {
try { try {
if (event == Debug.DebugEvent.Break) if (event == Debug.DebugEvent.Break)
...@@ -138,23 +143,22 @@ function listener(event, exec_state, event_data, data) { ...@@ -138,23 +143,22 @@ function listener(event, exec_state, event_data, data) {
assertFalse(frame.isConstructCall()); assertFalse(frame.isConstructCall());
} }
// When function f is optimized (1 means YES, see runtime.cc) we if (i > 4) {
// expect an optimized frame for f with g1, g2 and g3 inlined. assertFalse(frame.isOptimizedFrame());
if (%GetOptimizationStatus(f) == 1) { assertFalse(frame.isInlinedFrame());
if (i == 1 || i == 2 || i == 3) {
assertTrue(frame.isOptimizedFrame());
assertTrue(frame.isInlinedFrame());
assertEquals(4 - i, frame.inlinedFrameIndex());
} else if (i == 4) {
assertTrue(frame.isOptimizedFrame());
assertFalse(frame.isInlinedFrame());
} else {
assertFalse(frame.isOptimizedFrame());
assertFalse(frame.isInlinedFrame());
}
} }
} }
// When function f is optimized we expect an optimized frame for f. We
// can't say whether or not the top 3 frames (g1, g2 and g3) are
// optimized and inlined.
var frame4 = exec_state.frame(4);
if (isCurrentlyOptimized(f)) {
assertTrue(frame4.isOptimizedFrame());
assertFalse(frame4.isInlinedFrame());
}
// Indicate that all was processed. // Indicate that all was processed.
listenerComplete = true; listenerComplete = true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment