mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00

PR-URL: https://github.com/nodejs/node/pull/42651 Reviewed-By: Gabriel Schulhof <gabrielschulhof@gmail.com> Reviewed-By: Michael Dawson <midawson@redhat.com>
45 lines
1.6 KiB
C++
45 lines
1.6 KiB
C++
#ifndef SRC_JS_NATIVE_API_V8_INTERNALS_H_
|
|
#define SRC_JS_NATIVE_API_V8_INTERNALS_H_
|
|
|
|
// The V8 implementation of N-API, including `js_native_api_v8.h` uses certain
|
|
// idioms which require definition here. For example, it uses a variant of
|
|
// persistent references which need not be reset in the constructor. It is the
|
|
// responsibility of this file to define these idioms. Optionally, this file
|
|
// may also define `NAPI_VERSION` and set it to the version of N-API to be
|
|
// exposed.
|
|
|
|
// In the case of the Node.js implementation of N-API some of the idioms are
|
|
// imported directly from Node.js by including `node_internals.h` below. Others
|
|
// are bridged to remove references to the `node` namespace. `node_version.h`,
|
|
// included below, defines `NAPI_VERSION`.
|
|
|
|
#include "node_version.h"
|
|
|
|
#include "env.h"
|
|
#include "gtest/gtest_prod.h"
|
|
#include "node_errors.h"
|
|
#include "node_internals.h"
|
|
|
|
#define NAPI_ARRAYSIZE(array) node::arraysize((array))
|
|
|
|
#define NAPI_FIXED_ONE_BYTE_STRING(isolate, string) \
|
|
node::FIXED_ONE_BYTE_STRING((isolate), (string))
|
|
|
|
#define NAPI_PRIVATE_KEY(context, suffix) \
|
|
(node::Environment::GetCurrent((context))->napi_##suffix())
|
|
|
|
namespace v8impl {
|
|
|
|
template <typename T>
|
|
using Persistent = v8::Global<T>;
|
|
|
|
using PersistentToLocal = node::PersistentToLocal;
|
|
|
|
[[noreturn]] inline void OnFatalError(const char* location,
|
|
const char* message) {
|
|
node::OnFatalError(location, message);
|
|
}
|
|
|
|
} // end of namespace v8impl
|
|
|
|
#endif // SRC_JS_NATIVE_API_V8_INTERNALS_H_
|