LCOV - code coverage report
Current view: top level - src/debug - debug-type-profile.h (source / functions) Hit Total Coverage
Test: app.info Lines: 5 5 100.0 %
Date: 2019-04-19 Functions: 0 0 -

          Line data    Source code
       1             : // Copyright 2017 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_TYPE_PROFILE_H_
       6             : #define V8_DEBUG_DEBUG_TYPE_PROFILE_H_
       7             : 
       8             : #include <vector>
       9             : 
      10             : #include "src/debug/debug-interface.h"
      11             : #include "src/handles.h"
      12             : #include "src/objects.h"
      13             : 
      14             : namespace v8 {
      15             : namespace internal {
      16             : 
      17             : // Forward declaration.
      18             : class Isolate;
      19             : 
      20         764 : struct TypeProfileEntry {
      21             :   explicit TypeProfileEntry(
      22             :       int pos, std::vector<v8::internal::Handle<internal::String>> t)
      23         148 :       : position(pos), types(std::move(t)) {}
      24             :   int position;
      25             :   std::vector<v8::internal::Handle<internal::String>> types;
      26             : };
      27             : 
      28         172 : struct TypeProfileScript {
      29         100 :   explicit TypeProfileScript(Handle<Script> s) : script(s) {}
      30             :   Handle<Script> script;
      31             :   std::vector<TypeProfileEntry> entries;
      32             : };
      33             : 
      34          40 : class TypeProfile : public std::vector<TypeProfileScript> {
      35             :  public:
      36             :   static std::unique_ptr<TypeProfile> Collect(Isolate* isolate);
      37             :   static void SelectMode(Isolate* isolate, debug::TypeProfileMode mode);
      38             : 
      39             :  private:
      40             :   TypeProfile() = default;
      41             : };
      42             : 
      43             : }  // namespace internal
      44             : }  // namespace v8
      45             : 
      46             : #endif  // V8_DEBUG_DEBUG_TYPE_PROFILE_H_

Generated by: LCOV version 1.10