| Index: test/cctest/test-debug.cc
|
| diff --git a/test/cctest/test-debug.cc b/test/cctest/test-debug.cc
|
| index 25a75103e3704e5f7938877b8d56fee2ea9b2ffc..b2eb6a960fdf399b6b8b3fe19508720f36e36039 100644
|
| --- a/test/cctest/test-debug.cc
|
| +++ b/test/cctest/test-debug.cc
|
| @@ -3825,6 +3825,48 @@ TEST(DebugStepFunctionCall) {
|
| }
|
|
|
|
|
| +// Test that step in works with Function.call.apply.
|
| +TEST(DebugStepFunctionCallApply) {
|
| + DebugLocalContext env;
|
| + v8::Isolate* isolate = env->GetIsolate();
|
| + v8::HandleScope scope(isolate);
|
| +
|
| + // Create a function for testing stepping.
|
| + v8::Local<v8::Function> foo =
|
| + CompileFunction(&env,
|
| + "function bar() { }"
|
| + "function foo(){ debugger;"
|
| + " Function.call.apply(bar);"
|
| + " Function.call.apply(Function.call, "
|
| + "[Function.call, bar]);"
|
| + "}",
|
| + "foo");
|
| +
|
| + // Register a debug event listener which steps and counts.
|
| + v8::Debug::SetDebugEventListener(DebugEventStep);
|
| + step_action = StepIn;
|
| +
|
| + break_point_hit_count = 0;
|
| + foo->Call(env->Global(), 0, NULL);
|
| + CHECK_EQ(5, break_point_hit_count);
|
| +
|
| + v8::Debug::SetDebugEventListener(NULL);
|
| + CheckDebuggerUnloaded();
|
| +
|
| + // Register a debug event listener which just counts.
|
| + v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount);
|
| +
|
| + break_point_hit_count = 0;
|
| + foo->Call(env->Global(), 0, NULL);
|
| +
|
| + // Without stepping only the debugger statement is hit.
|
| + CHECK_EQ(1, break_point_hit_count);
|
| +
|
| + v8::Debug::SetDebugEventListener(NULL);
|
| + CheckDebuggerUnloaded();
|
| +}
|
| +
|
| +
|
| // Tests that breakpoint will be hit if it's set in script.
|
| TEST(PauseInScript) {
|
| DebugLocalContext env;
|
|
|