| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <iomanip> | 5 #include <iomanip> |
| 6 #include <sstream> | 6 #include <sstream> |
| 7 | 7 |
| 8 #include "src/v8.h" | 8 #include "src/v8.h" |
| 9 | 9 |
| 10 #include "src/accessors.h" | 10 #include "src/accessors.h" |
| (...skipping 16708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16719 new_break_point_info-> | 16719 new_break_point_info-> |
| 16720 set_statement_position(Smi::FromInt(statement_position)); | 16720 set_statement_position(Smi::FromInt(statement_position)); |
| 16721 new_break_point_info->set_break_point_objects( | 16721 new_break_point_info->set_break_point_objects( |
| 16722 isolate->heap()->undefined_value()); | 16722 isolate->heap()->undefined_value()); |
| 16723 BreakPointInfo::SetBreakPoint(new_break_point_info, break_point_object); | 16723 BreakPointInfo::SetBreakPoint(new_break_point_info, break_point_object); |
| 16724 debug_info->break_points()->set(index, *new_break_point_info); | 16724 debug_info->break_points()->set(index, *new_break_point_info); |
| 16725 } | 16725 } |
| 16726 | 16726 |
| 16727 | 16727 |
| 16728 // Get the break point objects for a code position. | 16728 // Get the break point objects for a code position. |
| 16729 Object* DebugInfo::GetBreakPointObjects(int code_position) { | 16729 Handle<Object> DebugInfo::GetBreakPointObjects(int code_position) { |
| 16730 Object* break_point_info = GetBreakPointInfo(code_position); | 16730 Object* break_point_info = GetBreakPointInfo(code_position); |
| 16731 if (break_point_info->IsUndefined()) { | 16731 if (break_point_info->IsUndefined()) { |
| 16732 return GetHeap()->undefined_value(); | 16732 return GetIsolate()->factory()->undefined_value(); |
| 16733 } | 16733 } |
| 16734 return BreakPointInfo::cast(break_point_info)->break_point_objects(); | 16734 return Handle<Object>( |
| 16735 BreakPointInfo::cast(break_point_info)->break_point_objects(), |
| 16736 GetIsolate()); |
| 16735 } | 16737 } |
| 16736 | 16738 |
| 16737 | 16739 |
| 16738 // Get the total number of break points. | 16740 // Get the total number of break points. |
| 16739 int DebugInfo::GetBreakPointCount() { | 16741 int DebugInfo::GetBreakPointCount() { |
| 16740 if (break_points()->IsUndefined()) return 0; | 16742 if (break_points()->IsUndefined()) return 0; |
| 16741 int count = 0; | 16743 int count = 0; |
| 16742 for (int i = 0; i < break_points()->length(); i++) { | 16744 for (int i = 0; i < break_points()->length(); i++) { |
| 16743 if (!break_points()->get(i)->IsUndefined()) { | 16745 if (!break_points()->get(i)->IsUndefined()) { |
| 16744 BreakPointInfo* break_point_info = | 16746 BreakPointInfo* break_point_info = |
| 16745 BreakPointInfo::cast(break_points()->get(i)); | 16747 BreakPointInfo::cast(break_points()->get(i)); |
| 16746 count += break_point_info->GetBreakPointCount(); | 16748 count += break_point_info->GetBreakPointCount(); |
| 16747 } | 16749 } |
| 16748 } | 16750 } |
| 16749 return count; | 16751 return count; |
| 16750 } | 16752 } |
| 16751 | 16753 |
| 16752 | 16754 |
| 16753 Object* DebugInfo::FindBreakPointInfo(Handle<DebugInfo> debug_info, | 16755 Handle<Object> DebugInfo::FindBreakPointInfo( |
| 16754 Handle<Object> break_point_object) { | 16756 Handle<DebugInfo> debug_info, Handle<Object> break_point_object) { |
| 16755 Heap* heap = debug_info->GetHeap(); | 16757 Isolate* isolate = debug_info->GetIsolate(); |
| 16756 if (debug_info->break_points()->IsUndefined()) return heap->undefined_value(); | 16758 if (!debug_info->break_points()->IsUndefined()) { |
| 16757 for (int i = 0; i < debug_info->break_points()->length(); i++) { | 16759 for (int i = 0; i < debug_info->break_points()->length(); i++) { |
| 16758 if (!debug_info->break_points()->get(i)->IsUndefined()) { | 16760 if (!debug_info->break_points()->get(i)->IsUndefined()) { |
| 16759 Handle<BreakPointInfo> break_point_info = | 16761 Handle<BreakPointInfo> break_point_info = Handle<BreakPointInfo>( |
| 16760 Handle<BreakPointInfo>(BreakPointInfo::cast( | 16762 BreakPointInfo::cast(debug_info->break_points()->get(i)), isolate); |
| 16761 debug_info->break_points()->get(i))); | 16763 if (BreakPointInfo::HasBreakPointObject(break_point_info, |
| 16762 if (BreakPointInfo::HasBreakPointObject(break_point_info, | 16764 break_point_object)) { |
| 16763 break_point_object)) { | 16765 return break_point_info; |
| 16764 return *break_point_info; | 16766 } |
| 16765 } | 16767 } |
| 16766 } | 16768 } |
| 16767 } | 16769 } |
| 16768 return heap->undefined_value(); | 16770 return isolate->factory()->undefined_value(); |
| 16769 } | 16771 } |
| 16770 | 16772 |
| 16771 | 16773 |
| 16772 // Find the index of the break point info object for the specified code | 16774 // Find the index of the break point info object for the specified code |
| 16773 // position. | 16775 // position. |
| 16774 int DebugInfo::GetBreakPointInfoIndex(int code_position) { | 16776 int DebugInfo::GetBreakPointInfoIndex(int code_position) { |
| 16775 if (break_points()->IsUndefined()) return kNoBreakPointInfo; | 16777 if (break_points()->IsUndefined()) return kNoBreakPointInfo; |
| 16776 for (int i = 0; i < break_points()->length(); i++) { | 16778 for (int i = 0; i < break_points()->length(); i++) { |
| 16777 if (!break_points()->get(i)->IsUndefined()) { | 16779 if (!break_points()->get(i)->IsUndefined()) { |
| 16778 BreakPointInfo* break_point_info = | 16780 BreakPointInfo* break_point_info = |
| (...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 17164 CompilationInfo* info) { | 17166 CompilationInfo* info) { |
| 17165 Handle<DependentCode> codes = DependentCode::InsertCompilationInfo( | 17167 Handle<DependentCode> codes = DependentCode::InsertCompilationInfo( |
| 17166 handle(cell->dependent_code(), info->isolate()), | 17168 handle(cell->dependent_code(), info->isolate()), |
| 17167 DependentCode::kPropertyCellChangedGroup, info->object_wrapper()); | 17169 DependentCode::kPropertyCellChangedGroup, info->object_wrapper()); |
| 17168 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); | 17170 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); |
| 17169 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( | 17171 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( |
| 17170 cell, info->zone()); | 17172 cell, info->zone()); |
| 17171 } | 17173 } |
| 17172 | 17174 |
| 17173 } } // namespace v8::internal | 17175 } } // namespace v8::internal |
| OLD | NEW |