/********************************************************************* * NAN - Native Abstractions for Node.js * * Copyright (c) 2018 NAN contributors * * MIT License ********************************************************************/ #include using namespace Nan; // NOLINT(build/namespaces) NAN_METHOD(ReturnUtf8String) { info.GetReturnValue().Set(New(*Utf8String(info[0])).ToLocalChecked()); } NAN_METHOD(HeapString) { Utf8String *s = new Utf8String(info[0]); v8::Local res = New(**s).ToLocalChecked(); delete s; info.GetReturnValue().Set(res); } NAN_METHOD(EncodeHex) { info.GetReturnValue().Set(Encode("hello", 5, HEX)); } NAN_METHOD(EncodeUCS2) { info.GetReturnValue().Set(Encode(u"hello", 10, UCS2)); } Persistent returnUtf8String_persistent; Persistent heapString_persistent; Persistent encodeHex_persistent; Persistent encodeUCS2_persistent; NAN_MODULE_INIT(Init) { v8::Local returnUtf8String = New(ReturnUtf8String); returnUtf8String_persistent.Reset(returnUtf8String); Set(target , New("returnUtf8String").ToLocalChecked() , GetFunction(returnUtf8String).ToLocalChecked() ).FromJust(); v8::Local heapString = New(HeapString); heapString_persistent.Reset(heapString); Set(target , New("heapString").ToLocalChecked() , GetFunction(heapString).ToLocalChecked() ).FromJust(); v8::Local encodeHex = New(EncodeHex); encodeHex_persistent.Reset(encodeHex); Set(target , New("encodeHex").ToLocalChecked() , GetFunction(encodeHex).ToLocalChecked() ).FromJust(); v8::Local encodeUCS2 = New(EncodeUCS2); encodeUCS2_persistent.Reset(encodeUCS2); Set(target , New("encodeUCS2").ToLocalChecked() , GetFunction(encodeUCS2).ToLocalChecked() ).FromJust(); } NODE_MODULE(strings, Init)