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 #include "src/frames.h" | 5 #include "src/frames.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "src/ast/ast.h" | 9 #include "src/ast/ast.h" |
10 #include "src/ast/scopeinfo.h" | 10 #include "src/ast/scopeinfo.h" |
(...skipping 845 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
856 | 856 |
857 | 857 |
858 void JavaScriptFrame::GetFunctions(List<JSFunction*>* functions) const { | 858 void JavaScriptFrame::GetFunctions(List<JSFunction*>* functions) const { |
859 DCHECK(functions->length() == 0); | 859 DCHECK(functions->length() == 0); |
860 functions->Add(function()); | 860 functions->Add(function()); |
861 } | 861 } |
862 | 862 |
863 void JavaScriptFrame::Summarize(List<FrameSummary>* functions) const { | 863 void JavaScriptFrame::Summarize(List<FrameSummary>* functions) const { |
864 DCHECK(functions->length() == 0); | 864 DCHECK(functions->length() == 0); |
865 Code* code = LookupCode(); | 865 Code* code = LookupCode(); |
866 | |
867 // TODO(caitp): these builtins cause crashes here --- that's not good! | |
caitp (gmail)
2016/04/26 22:01:30
unfortunately still needed in Option C, for reason
| |
868 // Should probably be a better way to keep functions from being included in | |
869 // stack trace. | |
870 if (code == *function()->GetIsolate()->builtins()->AsyncFunctionNext() || | |
871 code == *function()->GetIsolate()->builtins()->AsyncFunctionThrow()) | |
872 return; | |
873 | |
866 int offset = static_cast<int>(pc() - code->instruction_start()); | 874 int offset = static_cast<int>(pc() - code->instruction_start()); |
867 AbstractCode* abstract_code = AbstractCode::cast(code); | 875 AbstractCode* abstract_code = AbstractCode::cast(code); |
868 FrameSummary summary(receiver(), function(), abstract_code, offset, | 876 FrameSummary summary(receiver(), function(), abstract_code, offset, |
869 IsConstructor()); | 877 IsConstructor()); |
870 functions->Add(summary); | 878 functions->Add(summary); |
871 } | 879 } |
872 | 880 |
873 JSFunction* JavaScriptFrame::function() const { | 881 JSFunction* JavaScriptFrame::function() const { |
874 return JSFunction::cast(function_slot_object()); | 882 return JSFunction::cast(function_slot_object()); |
875 } | 883 } |
(...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1763 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { | 1771 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { |
1764 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); | 1772 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); |
1765 list.Add(frame, zone); | 1773 list.Add(frame, zone); |
1766 } | 1774 } |
1767 return list.ToVector(); | 1775 return list.ToVector(); |
1768 } | 1776 } |
1769 | 1777 |
1770 | 1778 |
1771 } // namespace internal | 1779 } // namespace internal |
1772 } // namespace v8 | 1780 } // namespace v8 |
OLD | NEW |