| Index: src/debug/debug.cc
|
| diff --git a/src/debug/debug.cc b/src/debug/debug.cc
|
| index de9c44079519143b595054d83721e2c61ffb63b3..a75ece1bf312ddc292a7cd66b267542a3116b0be 100644
|
| --- a/src/debug/debug.cc
|
| +++ b/src/debug/debug.cc
|
| @@ -1244,7 +1244,7 @@ bool Debug::PrepareFunctionForBreakPoints(Handle<SharedFunctionInfo> shared) {
|
| // cover this, because the given function might have been inlined into code
|
| // for which no JSFunction exists.
|
| {
|
| - SharedFunctionInfo::Iterator iterator(isolate_);
|
| + SharedFunctionInfo::GlobalIterator iterator(isolate_);
|
| while (SharedFunctionInfo* shared = iterator.Next()) {
|
| shared->ClearCodeFromOptimizedCodeMap();
|
| }
|
| @@ -1335,24 +1335,18 @@ void FindBreakablePositions(Handle<DebugInfo> debug_info, int start_position,
|
| bool Debug::GetPossibleBreakpoints(Handle<Script> script, int start_position,
|
| int end_position, std::set<int>* positions) {
|
| while (true) {
|
| - if (!script->shared_function_infos()->IsWeakFixedArray()) return false;
|
| -
|
| - WeakFixedArray* infos =
|
| - WeakFixedArray::cast(script->shared_function_infos());
|
| HandleScope scope(isolate_);
|
| List<Handle<SharedFunctionInfo>> candidates;
|
| - {
|
| - WeakFixedArray::Iterator iterator(infos);
|
| - SharedFunctionInfo* info;
|
| - while ((info = iterator.Next<SharedFunctionInfo>())) {
|
| - if (info->end_position() < start_position ||
|
| - info->start_position() >= end_position) {
|
| - continue;
|
| - }
|
| - if (!info->IsSubjectToDebugging()) continue;
|
| - if (!info->HasDebugCode() && !info->allows_lazy_compilation()) continue;
|
| - candidates.Add(i::handle(info));
|
| + SharedFunctionInfo::ScriptIterator iterator(script);
|
| + for (SharedFunctionInfo* info = iterator.Next(); info != nullptr;
|
| + info = iterator.Next()) {
|
| + if (info->end_position() < start_position ||
|
| + info->start_position() >= end_position) {
|
| + continue;
|
| }
|
| + if (!info->IsSubjectToDebugging()) continue;
|
| + if (!info->HasDebugCode() && !info->allows_lazy_compilation()) continue;
|
| + candidates.Add(i::handle(info));
|
| }
|
|
|
| bool was_compiled = false;
|
| @@ -1462,15 +1456,14 @@ Handle<Object> Debug::FindSharedFunctionInfoInScript(Handle<Script> script,
|
| // find the inner most function containing this position.
|
| // If there is no shared function info for this script at all, there is
|
| // no point in looking for it by walking the heap.
|
| - if (!script->shared_function_infos()->IsWeakFixedArray()) break;
|
|
|
| SharedFunctionInfo* shared;
|
| {
|
| SharedFunctionInfoFinder finder(position);
|
| - WeakFixedArray::Iterator iterator(script->shared_function_infos());
|
| - SharedFunctionInfo* candidate;
|
| - while ((candidate = iterator.Next<SharedFunctionInfo>())) {
|
| - finder.NewCandidate(candidate);
|
| + SharedFunctionInfo::ScriptIterator iterator(script);
|
| + for (SharedFunctionInfo* info = iterator.Next(); info != nullptr;
|
| + info = iterator.Next()) {
|
| + finder.NewCandidate(info);
|
| }
|
| shared = finder.Result();
|
| if (shared == NULL) break;
|
|
|