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 |