| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 | 5 |
| 6 #include "src/v8.h" | 6 #include "src/v8.h" |
| 7 | 7 |
| 8 #include "src/liveedit.h" | 8 #include "src/liveedit.h" |
| 9 | 9 |
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
| (...skipping 1725 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1736 class MultipleFunctionTarget { | 1736 class MultipleFunctionTarget { |
| 1737 public: | 1737 public: |
| 1738 MultipleFunctionTarget(Handle<JSArray> shared_info_array, | 1738 MultipleFunctionTarget(Handle<JSArray> shared_info_array, |
| 1739 Handle<JSArray> result) | 1739 Handle<JSArray> result) |
| 1740 : m_shared_info_array(shared_info_array), | 1740 : m_shared_info_array(shared_info_array), |
| 1741 m_result(result) {} | 1741 m_result(result) {} |
| 1742 bool MatchActivation(StackFrame* frame, | 1742 bool MatchActivation(StackFrame* frame, |
| 1743 LiveEdit::FunctionPatchabilityStatus status) { | 1743 LiveEdit::FunctionPatchabilityStatus status) { |
| 1744 return CheckActivation(m_shared_info_array, m_result, frame, status); | 1744 return CheckActivation(m_shared_info_array, m_result, frame, status); |
| 1745 } | 1745 } |
| 1746 const char* GetNotFoundMessage() { | 1746 const char* GetNotFoundMessage() const { |
| 1747 return NULL; | 1747 return NULL; |
| 1748 } | 1748 } |
| 1749 private: | 1749 private: |
| 1750 Handle<JSArray> m_shared_info_array; | 1750 Handle<JSArray> m_shared_info_array; |
| 1751 Handle<JSArray> m_result; | 1751 Handle<JSArray> m_result; |
| 1752 }; | 1752 }; |
| 1753 | 1753 |
| 1754 | 1754 |
| 1755 // Drops all call frame matched by target and all frames above them. | 1755 // Drops all call frame matched by target and all frames above them. |
| 1756 template<typename TARGET> | 1756 template<typename TARGET> |
| 1757 static const char* DropActivationsInActiveThreadImpl( | 1757 static const char* DropActivationsInActiveThreadImpl( |
| 1758 Isolate* isolate, TARGET& target, bool do_drop) { | 1758 Isolate* isolate, |
| 1759 TARGET& target, // NOLINT |
| 1760 bool do_drop) { |
| 1759 Debug* debug = isolate->debug(); | 1761 Debug* debug = isolate->debug(); |
| 1760 Zone zone(isolate); | 1762 Zone zone(isolate); |
| 1761 Vector<StackFrame*> frames = CreateStackMap(isolate, &zone); | 1763 Vector<StackFrame*> frames = CreateStackMap(isolate, &zone); |
| 1762 | 1764 |
| 1763 | 1765 |
| 1764 int top_frame_index = -1; | 1766 int top_frame_index = -1; |
| 1765 int frame_index = 0; | 1767 int frame_index = 0; |
| 1766 for (; frame_index < frames.length(); frame_index++) { | 1768 for (; frame_index < frames.length(); frame_index++) { |
| 1767 StackFrame* frame = frames[frame_index]; | 1769 StackFrame* frame = frames[frame_index]; |
| 1768 if (frame->id() == debug->break_frame_id()) { | 1770 if (frame->id() == debug->break_frame_id()) { |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2006 m_saved_status(LiveEdit::FUNCTION_AVAILABLE_FOR_PATCH) {} | 2008 m_saved_status(LiveEdit::FUNCTION_AVAILABLE_FOR_PATCH) {} |
| 2007 | 2009 |
| 2008 bool MatchActivation(StackFrame* frame, | 2010 bool MatchActivation(StackFrame* frame, |
| 2009 LiveEdit::FunctionPatchabilityStatus status) { | 2011 LiveEdit::FunctionPatchabilityStatus status) { |
| 2010 if (frame->fp() == m_frame->fp()) { | 2012 if (frame->fp() == m_frame->fp()) { |
| 2011 m_saved_status = status; | 2013 m_saved_status = status; |
| 2012 return true; | 2014 return true; |
| 2013 } | 2015 } |
| 2014 return false; | 2016 return false; |
| 2015 } | 2017 } |
| 2016 const char* GetNotFoundMessage() { | 2018 const char* GetNotFoundMessage() const { |
| 2017 return "Failed to found requested frame"; | 2019 return "Failed to found requested frame"; |
| 2018 } | 2020 } |
| 2019 LiveEdit::FunctionPatchabilityStatus saved_status() { | 2021 LiveEdit::FunctionPatchabilityStatus saved_status() { |
| 2020 return m_saved_status; | 2022 return m_saved_status; |
| 2021 } | 2023 } |
| 2022 private: | 2024 private: |
| 2023 JavaScriptFrame* m_frame; | 2025 JavaScriptFrame* m_frame; |
| 2024 LiveEdit::FunctionPatchabilityStatus m_saved_status; | 2026 LiveEdit::FunctionPatchabilityStatus m_saved_status; |
| 2025 }; | 2027 }; |
| 2026 | 2028 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2074 void LiveEditFunctionTracker::RecordRootFunctionInfo(Handle<Code> code) { | 2076 void LiveEditFunctionTracker::RecordRootFunctionInfo(Handle<Code> code) { |
| 2075 isolate_->active_function_info_listener()->FunctionCode(code); | 2077 isolate_->active_function_info_listener()->FunctionCode(code); |
| 2076 } | 2078 } |
| 2077 | 2079 |
| 2078 | 2080 |
| 2079 bool LiveEditFunctionTracker::IsActive(Isolate* isolate) { | 2081 bool LiveEditFunctionTracker::IsActive(Isolate* isolate) { |
| 2080 return isolate->active_function_info_listener() != NULL; | 2082 return isolate->active_function_info_listener() != NULL; |
| 2081 } | 2083 } |
| 2082 | 2084 |
| 2083 } } // namespace v8::internal | 2085 } } // namespace v8::internal |
| OLD | NEW |