LCOV - code coverage report
Current view: top level - src/debug - debug-frames.h (source / functions) Hit Total Coverage
Test: app.info Lines: 2 2 100.0 %
Date: 2019-03-21 Functions: 0 0 -

          Line data    Source code
       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             : 
      17             : class FrameInspector {
      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      426309 :     return frame_->is_arguments_adaptor() ? ArgumentsAdaptorFrame::cast(frame_)
      41      852618 :                                           : 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_

Generated by: LCOV version 1.10