LCOV - code coverage report
Current view: top level - src - vm-state.h (source / functions) Hit Total Coverage
Test: app.info Lines: 2 2 100.0 %
Date: 2017-04-26 Functions: 0 0 -

          Line data    Source code
       1             : // Copyright 2010 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_VM_STATE_H_
       6             : #define V8_VM_STATE_H_
       7             : 
       8             : #include "src/allocation.h"
       9             : #include "src/counters.h"
      10             : #include "src/isolate.h"
      11             : 
      12             : namespace v8 {
      13             : namespace internal {
      14             : 
      15             : // Logging and profiling.  A StateTag represents a possible state of
      16             : // the VM. The logger maintains a stack of these. Creating a VMState
      17             : // object enters a state by pushing on the stack, and destroying a
      18             : // VMState object leaves a state by popping the current state from the
      19             : // stack.
      20             : template <StateTag Tag>
      21             : class VMState BASE_EMBEDDED {
      22             :  public:
      23             :   explicit inline VMState(Isolate* isolate);
      24             :   inline ~VMState();
      25             : 
      26             :  private:
      27             :   Isolate* isolate_;
      28             :   StateTag previous_tag_;
      29             : };
      30             : 
      31             : 
      32             : class ExternalCallbackScope BASE_EMBEDDED {
      33             :  public:
      34             :   inline ExternalCallbackScope(Isolate* isolate, Address callback);
      35             :   inline ~ExternalCallbackScope();
      36             :   Address callback() { return callback_; }
      37             :   Address* callback_entrypoint_address() {
      38       33070 :     if (callback_ == nullptr) return nullptr;
      39             : #if USES_FUNCTION_DESCRIPTORS
      40             :     return FUNCTION_ENTRYPOINT_ADDRESS(callback_);
      41             : #else
      42       33070 :     return &callback_;
      43             : #endif
      44             :   }
      45             :   ExternalCallbackScope* previous() { return previous_scope_; }
      46             :   inline Address scope_address();
      47             : 
      48             :  private:
      49             :   Isolate* isolate_;
      50             :   Address callback_;
      51             :   ExternalCallbackScope* previous_scope_;
      52             : #ifdef USE_SIMULATOR
      53             :   Address scope_address_;
      54             : #endif
      55             : };
      56             : 
      57             : }  // namespace internal
      58             : }  // namespace v8
      59             : 
      60             : 
      61             : #endif  // V8_VM_STATE_H_

Generated by: LCOV version 1.10