Index: src/debug.cc |
diff --git a/src/debug.cc b/src/debug.cc |
index 7ab1728a151f47be998a2f31e5bafd99dd553607..ae9e284015ba3ea4f9ff93851afd11861bdfb2eb 100644 |
--- a/src/debug.cc |
+++ b/src/debug.cc |
@@ -1501,22 +1501,23 @@ |
Handle<FixedArray> locations = |
isolate->factory()->NewFixedArray(debug_info->GetBreakPointCount()); |
int count = 0; |
- for (int i = 0; i < debug_info->break_points()->length(); ++i) { |
+ for (int i = 0; i < debug_info->break_points()->length(); i++) { |
if (!debug_info->break_points()->get(i)->IsUndefined()) { |
BreakPointInfo* break_point_info = |
BreakPointInfo::cast(debug_info->break_points()->get(i)); |
- int break_points = break_point_info->GetBreakPointCount(); |
- if (break_points == 0) continue; |
- Smi* position = NULL; |
- switch (position_alignment) { |
- case STATEMENT_ALIGNED: |
- position = break_point_info->statement_position(); |
- break; |
- case BREAK_POSITION_ALIGNED: |
- position = break_point_info->source_position(); |
- break; |
+ if (break_point_info->GetBreakPointCount() > 0) { |
+ Smi* position = NULL; |
+ switch (position_alignment) { |
+ case STATEMENT_ALIGNED: |
+ position = break_point_info->statement_position(); |
+ break; |
+ case BREAK_POSITION_ALIGNED: |
+ position = break_point_info->source_position(); |
+ break; |
+ } |
+ |
+ locations->set(count++, position); |
} |
- for (int j = 0; j < break_points; ++j) locations->set(count++, position); |
} |
} |
return locations; |
@@ -1816,6 +1817,7 @@ |
static bool SkipSharedFunctionInfo(SharedFunctionInfo* shared, |
Object* active_code_marker) { |
if (!shared->allows_lazy_compilation()) return true; |
+ if (!shared->script()->IsScript()) return true; |
Object* script = shared->script(); |
if (!script->IsScript()) return true; |
if (Script::cast(script)->type()->value() == Script::TYPE_NATIVE) return true; |
@@ -2096,21 +2098,6 @@ |
} |
} // End while loop. |
- // JSFunctions from the same literal may not have the same shared function |
- // info. Find those JSFunctions and deduplicate the shared function info. |
- HeapIterator iterator(heap, FLAG_lazy ? HeapIterator::kNoFiltering |
- : HeapIterator::kFilterUnreachable); |
- for (HeapObject* obj = iterator.next(); obj != NULL; obj = iterator.next()) { |
- if (!obj->IsJSFunction()) continue; |
- JSFunction* function = JSFunction::cast(obj); |
- SharedFunctionInfo* shared = function->shared(); |
- if (shared != *target && shared->script() == target->script() && |
- shared->start_position_and_type() == |
- target->start_position_and_type()) { |
- function->set_shared(*target); |
- } |
- } |
- |
return target; |
} |