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

          Line data    Source code
       1             : // Copyright 2016 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_FIELD_TYPE_H_
       6             : #define V8_FIELD_TYPE_H_
       7             : 
       8             : #include "src/objects.h"
       9             : #include "src/objects/heap-object.h"
      10             : #include "src/objects/map.h"
      11             : 
      12             : namespace v8 {
      13             : namespace internal {
      14             : 
      15             : template <typename T>
      16             : class Handle;
      17             : 
      18             : class FieldType : public Object {
      19             :  public:
      20             :   static FieldType None();
      21             :   static FieldType Any();
      22             :   V8_EXPORT_PRIVATE static Handle<FieldType> None(Isolate* isolate);
      23             :   V8_EXPORT_PRIVATE static Handle<FieldType> Any(Isolate* isolate);
      24             :   V8_EXPORT_PRIVATE static FieldType Class(Map map);
      25             :   V8_EXPORT_PRIVATE static Handle<FieldType> Class(Handle<Map> map,
      26             :                                                    Isolate* isolate);
      27             :   V8_EXPORT_PRIVATE static FieldType cast(Object object);
      28             :   static FieldType unchecked_cast(Object object) {
      29             :     return FieldType(object.ptr());
      30             :   }
      31             : 
      32             :   bool NowContains(Object value) const;
      33             : 
      34    27165601 :   bool NowContains(Handle<Object> value) const { return NowContains(*value); }
      35             : 
      36             :   bool IsClass() const;
      37             :   Map AsClass() const;
      38     1758600 :   bool IsNone() const { return *this == None(); }
      39         238 :   bool IsAny() const { return *this == Any(); }
      40             :   bool NowStable() const;
      41             :   bool NowIs(FieldType other) const;
      42             :   bool NowIs(Handle<FieldType> other) const;
      43             : 
      44             :   void PrintTo(std::ostream& os) const;
      45             : 
      46             :   FieldType* operator->() { return this; }
      47             :   const FieldType* operator->() const { return this; }
      48             : 
      49             :  private:
      50             :   explicit constexpr FieldType(Address ptr) : Object(ptr) {}
      51             : };
      52             : 
      53             : }  // namespace internal
      54             : }  // namespace v8
      55             : 
      56             : #endif  // V8_FIELD_TYPE_H_

Generated by: LCOV version 1.10