Coverage Report

Created: 2025-07-04 09:33

/src/node/deps/v8/include/v8-data.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright 2021 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 INCLUDE_V8_DATA_H_
6
#define INCLUDE_V8_DATA_H_
7
8
#include "v8-local-handle.h"  // NOLINT(build/include_directory)
9
#include "v8config.h"         // NOLINT(build/include_directory)
10
11
namespace v8 {
12
13
class Context;
14
15
/**
16
 * The superclass of objects that can reside on V8's heap.
17
 */
18
class V8_EXPORT Data {
19
 public:
20
  /**
21
   * Returns true if this data is a |v8::Value|.
22
   */
23
  bool IsValue() const;
24
25
  /**
26
   * Returns true if this data is a |v8::Module|.
27
   */
28
  bool IsModule() const;
29
30
  /**
31
   * Returns tru if this data is a |v8::FixedArray|
32
   */
33
  bool IsFixedArray() const;
34
35
  /**
36
   * Returns true if this data is a |v8::Private|.
37
   */
38
  bool IsPrivate() const;
39
40
  /**
41
   * Returns true if this data is a |v8::ObjectTemplate|.
42
   */
43
  bool IsObjectTemplate() const;
44
45
  /**
46
   * Returns true if this data is a |v8::FunctionTemplate|.
47
   */
48
  bool IsFunctionTemplate() const;
49
50
  /**
51
   * Returns true if this data is a |v8::Context|.
52
   */
53
  bool IsContext() const;
54
55
 private:
56
  Data() = delete;
57
};
58
59
/**
60
 * A fixed-sized array with elements of type Data.
61
 */
62
class V8_EXPORT FixedArray : public Data {
63
 public:
64
  int Length() const;
65
  Local<Data> Get(Local<Context> context, int i) const;
66
67
0
  V8_INLINE static FixedArray* Cast(Data* data) {
68
0
#ifdef V8_ENABLE_CHECKS
69
0
    CheckCast(data);
70
0
#endif
71
0
    return reinterpret_cast<FixedArray*>(data);
72
0
  }
73
74
 private:
75
  static void CheckCast(Data* obj);
76
};
77
78
}  // namespace v8
79
80
#endif  // INCLUDE_V8_DATA_H_