Coverage Report

Created: 2025-07-04 09:33

/src/node/deps/v8/include/v8-external.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_EXTERNAL_H_
6
#define INCLUDE_V8_EXTERNAL_H_
7
8
#include "v8-value.h"  // NOLINT(build/include_directory)
9
#include "v8config.h"  // NOLINT(build/include_directory)
10
11
namespace v8 {
12
13
class Isolate;
14
15
/**
16
 * A JavaScript value that wraps a C++ void*. This type of value is mainly used
17
 * to associate C++ data structures with JavaScript objects.
18
 */
19
class V8_EXPORT External : public Value {
20
 public:
21
  static Local<External> New(Isolate* isolate, void* value);
22
0
  V8_INLINE static External* Cast(Value* value) {
23
0
#ifdef V8_ENABLE_CHECKS
24
0
    CheckCast(value);
25
0
#endif
26
0
    return static_cast<External*>(value);
27
0
  }
28
29
  void* Value() const;
30
31
 private:
32
  static void CheckCast(v8::Value* obj);
33
};
34
35
}  // namespace v8
36
37
#endif  // INCLUDE_V8_EXTERNAL_H_