V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
debug-frames.h
1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef V8_DEBUG_DEBUG_FRAMES_H_
6 #define V8_DEBUG_DEBUG_FRAMES_H_
7 
8 #include "src/deoptimizer.h"
9 #include "src/frames.h"
10 #include "src/isolate.h"
11 #include "src/objects.h"
12 #include "src/wasm/wasm-interpreter.h"
13 
14 namespace v8 {
15 namespace internal {
16 
18  public:
19  FrameInspector(StandardFrame* frame, int inlined_frame_index,
20  Isolate* isolate);
21 
22  ~FrameInspector(); // NOLINT (modernize-use-equals-default)
23 
24  int GetParametersCount();
25  Handle<JSFunction> GetFunction() const { return function_; }
26  Handle<Script> GetScript() { return script_; }
27  Handle<Object> GetParameter(int index);
28  Handle<Object> GetExpression(int index);
29  int GetSourcePosition() { return source_position_; }
30  bool IsConstructor() { return is_constructor_; }
31  Handle<Object> GetContext();
32  Handle<Object> GetReceiver() { return receiver_; }
33 
34  Handle<String> GetFunctionName() { return function_name_; }
35 
36  bool IsWasm();
37  bool IsJavaScript();
38 
39  inline JavaScriptFrame* javascript_frame() {
40  return frame_->is_arguments_adaptor() ? ArgumentsAdaptorFrame::cast(frame_)
41  : JavaScriptFrame::cast(frame_);
42  }
43 
44  int inlined_frame_index() const { return inlined_frame_index_; }
45 
46  private:
47  bool ParameterIsShadowedByContextLocal(Handle<ScopeInfo> info,
48  Handle<String> parameter_name);
49 
50  StandardFrame* frame_;
51  int inlined_frame_index_;
52  std::unique_ptr<DeoptimizedFrameInfo> deoptimized_frame_;
53  wasm::WasmInterpreter::FramePtr wasm_interpreted_frame_;
54  Isolate* isolate_;
55  Handle<Script> script_;
56  Handle<Object> receiver_;
57  Handle<JSFunction> function_;
58  Handle<String> function_name_;
59  int source_position_ = -1;
60  bool is_optimized_ = false;
61  bool is_interpreted_ = false;
62  bool has_adapted_arguments_ = false;
63  bool is_constructor_ = false;
64 
65  DISALLOW_COPY_AND_ASSIGN(FrameInspector);
66 };
67 } // namespace internal
68 } // namespace v8
69 
70 #endif // V8_DEBUG_DEBUG_FRAMES_H_
Definition: libplatform.h:13