| 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 #ifndef V8_FRAMES_INL_H_ |    5 #ifndef V8_FRAMES_INL_H_ | 
|    6 #define V8_FRAMES_INL_H_ |    6 #define V8_FRAMES_INL_H_ | 
|    7  |    7  | 
|    8 #include "src/frames.h" |    8 #include "src/frames.h" | 
|    9 #include "src/isolate.h" |    9 #include "src/isolate.h" | 
|   10 #include "src/objects-inl.h" |   10 #include "src/objects-inl.h" | 
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  217 inline ArgumentsAdaptorFrame::ArgumentsAdaptorFrame( |  217 inline ArgumentsAdaptorFrame::ArgumentsAdaptorFrame( | 
|  218     StackFrameIteratorBase* iterator) : JavaScriptFrame(iterator) { |  218     StackFrameIteratorBase* iterator) : JavaScriptFrame(iterator) { | 
|  219 } |  219 } | 
|  220  |  220  | 
|  221 inline BuiltinFrame::BuiltinFrame(StackFrameIteratorBase* iterator) |  221 inline BuiltinFrame::BuiltinFrame(StackFrameIteratorBase* iterator) | 
|  222     : JavaScriptFrame(iterator) {} |  222     : JavaScriptFrame(iterator) {} | 
|  223  |  223  | 
|  224 inline WasmFrame::WasmFrame(StackFrameIteratorBase* iterator) |  224 inline WasmFrame::WasmFrame(StackFrameIteratorBase* iterator) | 
|  225     : StandardFrame(iterator) {} |  225     : StandardFrame(iterator) {} | 
|  226  |  226  | 
 |  227 inline WasmCompiledFrame::WasmCompiledFrame(StackFrameIteratorBase* iterator) | 
 |  228     : WasmFrame(iterator) {} | 
 |  229  | 
 |  230 inline WasmInterpretedFrame::WasmInterpretedFrame( | 
 |  231     StackFrameIteratorBase* iterator) | 
 |  232     : WasmFrame(iterator) {} | 
 |  233  | 
|  227 inline WasmToJsFrame::WasmToJsFrame(StackFrameIteratorBase* iterator) |  234 inline WasmToJsFrame::WasmToJsFrame(StackFrameIteratorBase* iterator) | 
|  228     : StubFrame(iterator) {} |  235     : StubFrame(iterator) {} | 
|  229  |  236  | 
|  230 inline JsToWasmFrame::JsToWasmFrame(StackFrameIteratorBase* iterator) |  237 inline JsToWasmFrame::JsToWasmFrame(StackFrameIteratorBase* iterator) | 
|  231     : StubFrame(iterator) {} |  238     : StubFrame(iterator) {} | 
|  232  |  239  | 
|  233 inline InternalFrame::InternalFrame(StackFrameIteratorBase* iterator) |  240 inline InternalFrame::InternalFrame(StackFrameIteratorBase* iterator) | 
|  234     : StandardFrame(iterator) { |  241     : StandardFrame(iterator) { | 
|  235 } |  242 } | 
|  236  |  243  | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
|  262   // the JavaScript frame type, because we may encounter arguments |  269   // the JavaScript frame type, because we may encounter arguments | 
|  263   // adaptor frames. |  270   // adaptor frames. | 
|  264   StackFrame* frame = iterator_.frame(); |  271   StackFrame* frame = iterator_.frame(); | 
|  265   DCHECK(frame->is_java_script() || frame->is_arguments_adaptor()); |  272   DCHECK(frame->is_java_script() || frame->is_arguments_adaptor()); | 
|  266   return static_cast<JavaScriptFrame*>(frame); |  273   return static_cast<JavaScriptFrame*>(frame); | 
|  267 } |  274 } | 
|  268  |  275  | 
|  269 inline StandardFrame* StackTraceFrameIterator::frame() const { |  276 inline StandardFrame* StackTraceFrameIterator::frame() const { | 
|  270   StackFrame* frame = iterator_.frame(); |  277   StackFrame* frame = iterator_.frame(); | 
|  271   DCHECK(frame->is_java_script() || frame->is_arguments_adaptor() || |  278   DCHECK(frame->is_java_script() || frame->is_arguments_adaptor() || | 
|  272          frame->is_wasm()); |  279          frame->is_wasm_compiled() || frame->is_wasm_interpreted()); | 
|  273   return static_cast<StandardFrame*>(frame); |  280   return static_cast<StandardFrame*>(frame); | 
|  274 } |  281 } | 
|  275  |  282  | 
|  276 bool StackTraceFrameIterator::is_javascript() const { |  283 bool StackTraceFrameIterator::is_javascript() const { | 
|  277   return frame()->is_java_script(); |  284   return frame()->is_java_script(); | 
|  278 } |  285 } | 
|  279  |  286  | 
|  280 bool StackTraceFrameIterator::is_wasm() const { return frame()->is_wasm(); } |  287 bool StackTraceFrameIterator::is_wasm() const { return frame()->is_wasm(); } | 
|  281  |  288  | 
|  282 JavaScriptFrame* StackTraceFrameIterator::javascript_frame() const { |  289 JavaScriptFrame* StackTraceFrameIterator::javascript_frame() const { | 
|  283   DCHECK(is_javascript()); |  290   DCHECK(is_javascript()); | 
|  284   return static_cast<JavaScriptFrame*>(frame()); |  291   return static_cast<JavaScriptFrame*>(frame()); | 
|  285 } |  292 } | 
|  286  |  293  | 
|  287 WasmFrame* StackTraceFrameIterator::wasm_frame() const { |  294 WasmFrame* StackTraceFrameIterator::wasm_frame() const { | 
|  288   DCHECK(is_wasm()); |  295   DCHECK(is_wasm()); | 
|  289   return static_cast<WasmFrame*>(frame()); |  296   return static_cast<WasmFrame*>(frame()); | 
|  290 } |  297 } | 
|  291  |  298  | 
|  292 inline StackFrame* SafeStackFrameIterator::frame() const { |  299 inline StackFrame* SafeStackFrameIterator::frame() const { | 
|  293   DCHECK(!done()); |  300   DCHECK(!done()); | 
|  294   DCHECK(frame_->is_java_script() || frame_->is_exit()); |  301   DCHECK(frame_->is_java_script() || frame_->is_exit()); | 
|  295   return frame_; |  302   return frame_; | 
|  296 } |  303 } | 
|  297  |  304  | 
 |  305 inline Handle<Object> FrameSummary::receiver() { | 
 |  306   DCHECK(is_javascript()); | 
 |  307   return receiver_; | 
 |  308 } | 
 |  309  | 
 |  310 Handle<Object> FrameSummary::wasm_object() { | 
 |  311   DCHECK(is_wasm()); | 
 |  312   return receiver_; | 
 |  313 } | 
 |  314  | 
 |  315 Handle<JSFunction> FrameSummary::function() { | 
 |  316   DCHECK(is_javascript()); | 
 |  317   return Handle<JSFunction>::cast(function_); | 
 |  318 } | 
 |  319  | 
 |  320 int FrameSummary::wasm_function_index() { | 
 |  321   DCHECK(is_wasm()); | 
 |  322   return Smi::cast(*function_)->value(); | 
 |  323 } | 
 |  324  | 
 |  325 bool FrameSummary::is_subject_to_debugging() { | 
 |  326   return is_wasm() || function()->shared()->IsSubjectToDebugging(); | 
 |  327 } | 
|  298  |  328  | 
|  299 }  // namespace internal |  329 }  // namespace internal | 
|  300 }  // namespace v8 |  330 }  // namespace v8 | 
|  301  |  331  | 
|  302 #endif  // V8_FRAMES_INL_H_ |  332 #endif  // V8_FRAMES_INL_H_ | 
| OLD | NEW |