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::New() should be used to instantiate new JavaScript objects.

Refer to the specific V8 type in the V8 documentation 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<T>. The following types will be contained within a Nan::MaybeLocal<T>: v8::String, v8::Date, v8::RegExp, v8::Script, v8::UnboundScript.

Empty objects:

c++ Nan::New<T>();

Generic single and multiple-argument:

c++ Nan::New<T>(A0 arg0); Nan::New<T>(A0 arg0, A1 arg1); Nan::New<T>(A0 arg0, A1 arg1, A2 arg2); Nan::New<T>(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 documentation.

c++ Nan::New<T>(Nan::FunctionCallback callback, v8::Local<v8::Value> data = v8::Local<v8::Value>()); Nan::New<T>(Nan::FunctionCallback callback, v8::Local<v8::Value> data = v8::Local<v8::Value>(), A2 a2 = A2());

Native number types:

c++ v8::Local<v8::Boolean> Nan::New<T>(bool value); v8::Local<v8::Int32> Nan::New<T>(int32_t value); v8::Local<v8::Uint32> Nan::New<T>(uint32_t value); v8::Local<v8::Number> Nan::New<T>(double value);

String types:

c++ Nan::MaybeLocal<v8::String> Nan::New<T>(std::string const& value); Nan::MaybeLocal<v8::String> Nan::New<T>(const char * value, int length); Nan::MaybeLocal<v8::String> Nan::New<T>(const char * value); Nan::MaybeLocal<v8::String> Nan::New<T>(const uint16_t * value); Nan::MaybeLocal<v8::String> Nan::New<T>(const uint16_t * value, int length);

Specialized types:

c++ v8::Local<v8::String> Nan::New<T>(v8::String::ExternalStringResource * value); v8::Local<v8::String> Nan::New<T>(Nan::ExternalOneByteStringResource * value); v8::Local<v8::RegExp> Nan::New<T>(v8::Local<v8::String> pattern, v8::RegExp::Flags flags);

Note that Nan::ExternalOneByteStringResource maps to v8::String::ExternalOneByteStringResource, 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<v8::Primitive> 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<v8::Primitive> 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<v8::Boolean> 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<v8::Boolean> Nan::False()

Nan::EmptyString()

Call v8::String::Empty to reference the empty string in a way that is compatible across all supported versions of V8.

Signature:

c++ v8::Local<v8::String> Nan::EmptyString()

Nan::NewOneByteString()

An implementation of v8::String::NewFromOneByte() provided for consistent availability and API across supported versions of V8. Allocates a new string from Latin-1 data.

Signature:

c++ Nan::MaybeLocal<v8::String> Nan::NewOneByteString(const uint8_t * value, int length = -1)