| Index: test/cctest/test-debug.cc
|
| diff --git a/test/cctest/test-debug.cc b/test/cctest/test-debug.cc
|
| index 8935d8da70ef9a747bd75f6da5a7f3f189150713..925eaf4c27e39ecb3a4a6caa2cece4f9369db728 100644
|
| --- a/test/cctest/test-debug.cc
|
| +++ b/test/cctest/test-debug.cc
|
| @@ -7978,19 +7978,12 @@ static void NoInterruptsOnDebugEvent(
|
| --after_compile_handler_depth;
|
| }
|
|
|
| -
|
| TEST(NoInterruptsInDebugListener) {
|
| DebugLocalContext env;
|
| v8::Debug::SetDebugEventListener(env->GetIsolate(), NoInterruptsOnDebugEvent);
|
| CompileRun("void(0);");
|
| }
|
|
|
| -class TestBreakLocation : public i::BreakLocation {
|
| - public:
|
| - using i::BreakLocation::GetIterator;
|
| - using i::BreakLocation::Iterator;
|
| -};
|
| -
|
| TEST(BreakLocationIterator) {
|
| DebugLocalContext env;
|
| v8::Isolate* isolate = env->GetIsolate();
|
| @@ -8012,53 +8005,40 @@ TEST(BreakLocationIterator) {
|
| CHECK(i_isolate->debug()->EnsureDebugInfo(shared, function));
|
|
|
| Handle<i::DebugInfo> debug_info(shared->GetDebugInfo());
|
| - int code_size = debug_info->abstract_code()->Size();
|
| -
|
| - bool found_return = false;
|
| - bool found_call = false;
|
| - bool found_debugger = false;
|
| -
|
| - // Test public interface.
|
| - for (int i = 0; i < code_size; i++) {
|
| - i::BreakLocation location = i::BreakLocation::FromCodeOffset(debug_info, i);
|
| - if (location.IsCall()) found_call = true;
|
| - if (location.IsReturn()) found_return = true;
|
| - if (location.IsDebuggerStatement()) found_debugger = true;
|
| + Handle<i::AbstractCode> abstract_code(shared->abstract_code());
|
| +
|
| + {
|
| + auto iterator = i::BreakIterator::GetIterator(debug_info, abstract_code,
|
| + i::ALL_BREAK_LOCATIONS);
|
| + CHECK(iterator->GetBreakLocation().IsDebuggerStatement());
|
| + CHECK_EQ(17, iterator->GetBreakLocation().position());
|
| + iterator->Next();
|
| + CHECK(iterator->GetBreakLocation().IsDebugBreakSlot());
|
| + CHECK_EQ(32, iterator->GetBreakLocation().position());
|
| + iterator->Next();
|
| + CHECK(iterator->GetBreakLocation().IsCall());
|
| + CHECK_EQ(32, iterator->GetBreakLocation().position());
|
| + iterator->Next();
|
| + CHECK(iterator->GetBreakLocation().IsDebuggerStatement());
|
| + CHECK_EQ(47, iterator->GetBreakLocation().position());
|
| + iterator->Next();
|
| + CHECK(iterator->GetBreakLocation().IsReturn());
|
| + CHECK_EQ(60, iterator->GetBreakLocation().position());
|
| + iterator->Next();
|
| + CHECK(iterator->Done());
|
| + }
|
| +
|
| + {
|
| + auto iterator = i::BreakIterator::GetIterator(debug_info, abstract_code,
|
| + i::CALLS_AND_RETURNS);
|
| + CHECK(iterator->GetBreakLocation().IsCall());
|
| + CHECK_EQ(32, iterator->GetBreakLocation().position());
|
| + iterator->Next();
|
| + CHECK(iterator->GetBreakLocation().IsReturn());
|
| + CHECK_EQ(60, iterator->GetBreakLocation().position());
|
| + iterator->Next();
|
| + CHECK(iterator->Done());
|
| }
|
| - CHECK(found_call);
|
| - CHECK(found_return);
|
| - CHECK(found_debugger);
|
| -
|
| - // Test underlying implementation.
|
| - TestBreakLocation::Iterator* iterator =
|
| - TestBreakLocation::GetIterator(debug_info, i::ALL_BREAK_LOCATIONS);
|
| - CHECK(iterator->GetBreakLocation().IsDebuggerStatement());
|
| - CHECK_EQ(17, iterator->GetBreakLocation().position());
|
| - iterator->Next();
|
| - CHECK(iterator->GetBreakLocation().IsDebugBreakSlot());
|
| - CHECK_EQ(32, iterator->GetBreakLocation().position());
|
| - iterator->Next();
|
| - CHECK(iterator->GetBreakLocation().IsCall());
|
| - CHECK_EQ(32, iterator->GetBreakLocation().position());
|
| - iterator->Next();
|
| - CHECK(iterator->GetBreakLocation().IsDebuggerStatement());
|
| - CHECK_EQ(47, iterator->GetBreakLocation().position());
|
| - iterator->Next();
|
| - CHECK(iterator->GetBreakLocation().IsReturn());
|
| - CHECK_EQ(60, iterator->GetBreakLocation().position());
|
| - iterator->Next();
|
| - CHECK(iterator->Done());
|
| - delete iterator;
|
| -
|
| - iterator = TestBreakLocation::GetIterator(debug_info, i::CALLS_AND_RETURNS);
|
| - CHECK(iterator->GetBreakLocation().IsCall());
|
| - CHECK_EQ(32, iterator->GetBreakLocation().position());
|
| - iterator->Next();
|
| - CHECK(iterator->GetBreakLocation().IsReturn());
|
| - CHECK_EQ(60, iterator->GetBreakLocation().position());
|
| - iterator->Next();
|
| - CHECK(iterator->Done());
|
| - delete iterator;
|
|
|
| DisableDebugger(isolate);
|
| }
|
|
|