package.doc.new.md Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of nan Show documentation
Show all versions of nan Show documentation
Native Abstractions for Node.js: C++ header for Node 0.8 -> 18 compatibility
## New
NAN provides a `Nan::New()` helper for the creation of new JavaScript objects in a way that's compatible across the supported versions of V8.
- Nan::New()
- Nan::Undefined()
- Nan::Null()
- Nan::True()
- Nan::False()
- Nan::EmptyString()
### Nan::New()
`Nan::New()` should be used to instantiate new JavaScript objects.
Refer to the specific V8 type in the [V8 documentation](https://v8docs.nodesource.com/node-8.16/d1/d83/classv8_1_1_data.html) for information on the types of arguments required for instantiation.
Signatures:
Return types are mostly omitted from the signatures for simplicity. In most cases the type will be contained within a `v8::Local`. The following types will be contained within a `Nan::MaybeLocal`: `v8::String`, `v8::Date`, `v8::RegExp`, `v8::Script`, `v8::UnboundScript`.
Empty objects:
```c++
Nan::New();
```
Generic single and multiple-argument:
```c++
Nan::New(A0 arg0);
Nan::New(A0 arg0, A1 arg1);
Nan::New(A0 arg0, A1 arg1, A2 arg2);
Nan::New(A0 arg0, A1 arg1, A2 arg2, A3 arg3);
```
For creating `v8::FunctionTemplate` and `v8::Function` objects:
_The definition of `Nan::FunctionCallback` can be found in the [Method declaration](./methods.md#api_nan_method) documentation._
```c++
Nan::New(Nan::FunctionCallback callback,
v8::Local data = v8::Local());
Nan::New(Nan::FunctionCallback callback,
v8::Local data = v8::Local(),
A2 a2 = A2());
```
Native number types:
```c++
v8::Local Nan::New(bool value);
v8::Local Nan::New(int32_t value);
v8::Local Nan::New(uint32_t value);
v8::Local Nan::New(double value);
```
String types:
```c++
Nan::MaybeLocal Nan::New(std::string const& value);
Nan::MaybeLocal Nan::New(const char * value, int length);
Nan::MaybeLocal Nan::New(const char * value);
Nan::MaybeLocal Nan::New(const uint16_t * value);
Nan::MaybeLocal Nan::New(const uint16_t * value, int length);
```
Specialized types:
```c++
v8::Local Nan::New(v8::String::ExternalStringResource * value);
v8::Local Nan::New(Nan::ExternalOneByteStringResource * value);
v8::Local Nan::New(v8::Local pattern, v8::RegExp::Flags flags);
```
Note that `Nan::ExternalOneByteStringResource` maps to [`v8::String::ExternalOneByteStringResource`](https://v8docs.nodesource.com/node-8.16/d9/db3/classv8_1_1_string_1_1_external_one_byte_string_resource.html), and `v8::String::ExternalAsciiStringResource` in older versions of V8.
### Nan::Undefined()
A helper method to reference the `v8::Undefined` object in a way that is compatible across all supported versions of V8.
Signature:
```c++
v8::Local Nan::Undefined()
```
### Nan::Null()
A helper method to reference the `v8::Null` object in a way that is compatible across all supported versions of V8.
Signature:
```c++
v8::Local Nan::Null()
```
### Nan::True()
A helper method to reference the `v8::Boolean` object representing the `true` value in a way that is compatible across all supported versions of V8.
Signature:
```c++
v8::Local Nan::True()
```
### Nan::False()
A helper method to reference the `v8::Boolean` object representing the `false` value in a way that is compatible across all supported versions of V8.
Signature:
```c++
v8::Local Nan::False()
```
### Nan::EmptyString()
Call [`v8::String::Empty`](https://v8docs.nodesource.com/node-8.16/d2/db3/classv8_1_1_string.html#a7c1bc8886115d7ee46f1d571dd6ebc6d) to reference the empty string in a way that is compatible across all supported versions of V8.
Signature:
```c++
v8::Local Nan::EmptyString()
```
### Nan::NewOneByteString()
An implementation of [`v8::String::NewFromOneByte()`](https://v8docs.nodesource.com/node-8.16/d2/db3/classv8_1_1_string.html#a5264d50b96d2c896ce525a734dc10f09) provided for consistent availability and API across supported versions of V8. Allocates a new string from Latin-1 data.
Signature:
```c++
Nan::MaybeLocal Nan::NewOneByteString(const uint8_t * value,
int length = -1)
```
© 2015 - 2024 Weber Informatics LLC | Privacy Policy