From b28f7903ca233ebc3e22f21124a2c0f1a618a7c7 Mon Sep 17 00:00:00 2001 From: Paul Betts Date: Wed, 2 Sep 2015 16:17:07 -0700 Subject: [PATCH 1/4] Version bump nan to 2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3033961..90c3b3a 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ ], "dependencies": { "event-kit": "^1.0.0", - "nan": "https://atom.io/download/atom-shell/nan-1.6.1.tgz" + "nan": "^2.0.0" }, "devDependencies": { "coffee-script": "^1.7.0", From 8ad4638f1fac53b99a2ac1068f6e0d1d967cf580 Mon Sep 17 00:00:00 2001 From: Paul Betts Date: Wed, 2 Sep 2015 16:17:47 -0700 Subject: [PATCH 2/4] Translate to nan 2.0 APIs --- src/keyboard-layout-observer-mac.mm | 42 +++++++++++------------ src/keyboard-layout-observer-non-mac.cc | 34 +++++++++---------- src/keyboard-layout-observer-windows.cc | 44 ++++++++++++------------- src/keyboard-layout-observer.h | 6 ++-- 4 files changed, 63 insertions(+), 63 deletions(-) diff --git a/src/keyboard-layout-observer-mac.mm b/src/keyboard-layout-observer-mac.mm index facdc92..26bda44 100644 --- a/src/keyboard-layout-observer-mac.mm +++ b/src/keyboard-layout-observer-mac.mm @@ -9,31 +9,31 @@ using namespace v8; void KeyboardLayoutObserver::Init(Handle target) { - NanScope(); - Local newTemplate = NanNew(KeyboardLayoutObserver::New); - newTemplate->SetClassName(NanNew("KeyboardLayoutObserver")); + Nan::HandleScope scope; + Local newTemplate = Nan::New(KeyboardLayoutObserver::New); + newTemplate->SetClassName(Nan::New("KeyboardLayoutObserver").ToLocalChecked()); newTemplate->InstanceTemplate()->SetInternalFieldCount(1); Local proto = newTemplate->PrototypeTemplate(); - NODE_SET_METHOD(proto, "getCurrentKeyboardLayout", KeyboardLayoutObserver::GetCurrentKeyboardLayout); - NODE_SET_METHOD(proto, "getCurrentKeyboardLanguage", KeyboardLayoutObserver::GetCurrentKeyboardLanguage); - NODE_SET_METHOD(proto, "getInstalledKeyboardLanguages", KeyboardLayoutObserver::GetInstalledKeyboardLanguages); + Nan::SetMethod(proto, "getCurrentKeyboardLayout", KeyboardLayoutObserver::GetCurrentKeyboardLayout); + Nan::SetMethod(proto, "getCurrentKeyboardLanguage", KeyboardLayoutObserver::GetCurrentKeyboardLanguage); + Nan::SetMethod(proto, "getInstalledKeyboardLanguages", KeyboardLayoutObserver::GetInstalledKeyboardLanguages); - target->Set(NanNew("KeyboardLayoutObserver"), newTemplate->GetFunction()); + target->Set(Nan::New("KeyboardLayoutObserver").ToLocalChecked(), newTemplate->GetFunction()); } NODE_MODULE(keyboard_layout_observer, KeyboardLayoutObserver::Init) NAN_METHOD(KeyboardLayoutObserver::New) { - NanScope(); + Nan::HandleScope scope; - Local callbackHandle = args[0].As(); - NanCallback *callback = new NanCallback(callbackHandle); + Local callbackHandle = info[0].As(); + Nan::Callback *callback = new Nan::Callback(callbackHandle); KeyboardLayoutObserver *observer = new KeyboardLayoutObserver(callback); - observer->Wrap(args.This()); - NanReturnUndefined(); + observer->Wrap(info.This()); + return; } uv_loop_t *loop = uv_default_loop(); @@ -48,7 +48,7 @@ static void asyncSendHandler(uv_async_t *handle) { (static_cast(handle->data))->HandleKeyboardLayoutChanged(); } -KeyboardLayoutObserver::KeyboardLayoutObserver(NanCallback *callback) : callback(callback) { +KeyboardLayoutObserver::KeyboardLayoutObserver(Nan::Callback *callback) : callback(callback) { uv_async_init(loop, &async, (uv_async_cb) asyncSendHandler); CFNotificationCenterAddObserver( @@ -70,7 +70,7 @@ static void asyncSendHandler(uv_async_t *handle) { } NAN_METHOD(KeyboardLayoutObserver::GetInstalledKeyboardLanguages) { - NanScope(); + Nan::HandleScope scope; @autoreleasepool { std::vector ret; @@ -99,29 +99,29 @@ static void asyncSendHandler(uv_async_t *handle) { ret.push_back(str); } - Local result = NanNew(ret.size()); + Local result = Nan::New(ret.size()); for (size_t i = 0; i < ret.size(); ++i) { const std::string& lang = ret[i]; - result->Set(i, NanNew(lang.data(), lang.size())); + result->Set(i, Nan::New(lang.data(), lang.size())).ToLocalChecked(); } - NanReturnValue(result); + info.GetReturnValue().Set(result); } } NAN_METHOD(KeyboardLayoutObserver::GetCurrentKeyboardLanguage) { - NanScope(); + Nan::HandleScope scope; TISInputSourceRef source = TISCopyCurrentKeyboardInputSource(); NSArray* langs = (NSArray*) TISGetInputSourceProperty(source, kTISPropertyInputSourceLanguages); NSString* lang = (NSString*) [langs objectAtIndex:0]; - NanReturnValue(NanNew([lang UTF8String])); + info.GetReturnValue().Set(Nan::New([lang UTF8String])); } NAN_METHOD(KeyboardLayoutObserver::GetCurrentKeyboardLayout) { - NanScope(); + Nan::HandleScope scope; TISInputSourceRef source = TISCopyCurrentKeyboardInputSource(); CFStringRef sourceId = (CFStringRef) TISGetInputSourceProperty(source, kTISPropertyInputSourceID); - NanReturnValue(NanNew([(NSString *)sourceId UTF8String])); + info.GetReturnValue().Set(Nan::New([(NSString *)sourceId UTF8String])); } diff --git a/src/keyboard-layout-observer-non-mac.cc b/src/keyboard-layout-observer-non-mac.cc index b67ce57..3d23d11 100644 --- a/src/keyboard-layout-observer-non-mac.cc +++ b/src/keyboard-layout-observer-non-mac.cc @@ -3,31 +3,31 @@ using namespace v8; void KeyboardLayoutObserver::Init(Handle target) { - NanScope(); - Local newTemplate = NanNew(KeyboardLayoutObserver::New); - newTemplate->SetClassName(NanNew("KeyboardLayoutObserver")); + Nan::HandleScope scope; + Local newTemplate = Nan::New(KeyboardLayoutObserver::New); + newTemplate->SetClassName(Nan::New("KeyboardLayoutObserver").ToLocalChecked()); newTemplate->InstanceTemplate()->SetInternalFieldCount(1); Local proto = newTemplate->PrototypeTemplate(); - NODE_SET_METHOD(proto, "getCurrentKeyboardLayout", KeyboardLayoutObserver::GetCurrentKeyboardLayout); - NODE_SET_METHOD(proto, "getCurrentKeyboardLanguage", KeyboardLayoutObserver::GetCurrentKeyboardLayout); // NB: Intentionally mapped to same stub - NODE_SET_METHOD(proto, "getInstalledKeyboardLanguages", KeyboardLayoutObserver::GetInstalledKeyboardLanguages); - target->Set(NanNew("KeyboardLayoutObserver"), newTemplate->GetFunction()); + Nan::SetMethod(proto, "getCurrentKeyboardLayout", KeyboardLayoutObserver::GetCurrentKeyboardLayout); + Nan::SetMethod(proto, "getCurrentKeyboardLanguage", KeyboardLayoutObserver::GetCurrentKeyboardLayout); // NB: Intentionally mapped to same stub + Nan::SetMethod(proto, "getInstalledKeyboardLanguages", KeyboardLayoutObserver::GetInstalledKeyboardLanguages); + target->Set(Nan::New("KeyboardLayoutObserver").ToLocalChecked(), newTemplate->GetFunction()); } NODE_MODULE(keyboard_layout_observer, KeyboardLayoutObserver::Init) NAN_METHOD(KeyboardLayoutObserver::New) { - NanScope(); + Nan::HandleScope scope; - Local callbackHandle = args[0].As(); - NanCallback *callback = new NanCallback(callbackHandle); + Local callbackHandle = info[0].As(); + Nan::Callback *callback = new Nan::Callback(callbackHandle); KeyboardLayoutObserver *observer = new KeyboardLayoutObserver(callback); - observer->Wrap(args.This()); - NanReturnUndefined(); + observer->Wrap(info.This()); + return; } -KeyboardLayoutObserver::KeyboardLayoutObserver(NanCallback *callback) : callback(callback) { +KeyboardLayoutObserver::KeyboardLayoutObserver(Nan::Callback *callback) : callback(callback) { } KeyboardLayoutObserver::~KeyboardLayoutObserver() { @@ -38,11 +38,11 @@ void KeyboardLayoutObserver::HandleKeyboardLayoutChanged() { } NAN_METHOD(KeyboardLayoutObserver::GetCurrentKeyboardLayout) { - NanScope(); - NanReturnUndefined(); + Nan::HandleScope scope; + return; } NAN_METHOD(KeyboardLayoutObserver::GetInstalledKeyboardLanguages) { - NanScope(); - NanReturnUndefined(); + Nan::HandleScope scope; + return; } diff --git a/src/keyboard-layout-observer-windows.cc b/src/keyboard-layout-observer-windows.cc index ac67bc3..e061bfa 100644 --- a/src/keyboard-layout-observer-windows.cc +++ b/src/keyboard-layout-observer-windows.cc @@ -29,32 +29,32 @@ std::string ToUTF8(const std::wstring& string) { } void KeyboardLayoutObserver::Init(Handle target) { - NanScope(); - Local newTemplate = NanNew(KeyboardLayoutObserver::New); - newTemplate->SetClassName(NanNew("KeyboardLayoutObserver")); + Nan::HandleScope scope; + Local newTemplate = Nan::New(KeyboardLayoutObserver::New); + newTemplate->SetClassName(Nan::New("KeyboardLayoutObserver").ToLocalChecked()); newTemplate->InstanceTemplate()->SetInternalFieldCount(1); Local proto = newTemplate->PrototypeTemplate(); - NODE_SET_METHOD(proto, "getCurrentKeyboardLayout", KeyboardLayoutObserver::GetCurrentKeyboardLayout); - NODE_SET_METHOD(proto, "getCurrentKeyboardLanguage", KeyboardLayoutObserver::GetCurrentKeyboardLanguage); - NODE_SET_METHOD(proto, "getInstalledKeyboardLanguages", KeyboardLayoutObserver::GetInstalledKeyboardLanguages); - target->Set(NanNew("KeyboardLayoutObserver"), newTemplate->GetFunction()); + Nan::SetMethod(proto, "getCurrentKeyboardLayout", KeyboardLayoutObserver::GetCurrentKeyboardLayout); + Nan::SetMethod(proto, "getCurrentKeyboardLanguage", KeyboardLayoutObserver::GetCurrentKeyboardLanguage); + Nan::SetMethod(proto, "getInstalledKeyboardLanguages", KeyboardLayoutObserver::GetInstalledKeyboardLanguages); + target->Set(Nan::New("KeyboardLayoutObserver").ToLocalChecked(), newTemplate->GetFunction()); } NODE_MODULE(keyboard_layout_observer, KeyboardLayoutObserver::Init) NAN_METHOD(KeyboardLayoutObserver::New) { - NanScope(); + Nan::HandleScope scope; - Local callbackHandle = args[0].As(); - NanCallback *callback = new NanCallback(callbackHandle); + Local callbackHandle = info[0].As(); + Nan::Callback *callback = new Nan::Callback(callbackHandle); KeyboardLayoutObserver *observer = new KeyboardLayoutObserver(callback); - observer->Wrap(args.This()); - NanReturnUndefined(); + observer->Wrap(info.This()); + return; } -KeyboardLayoutObserver::KeyboardLayoutObserver(NanCallback *callback) : callback(callback) { +KeyboardLayoutObserver::KeyboardLayoutObserver(Nan::Callback *callback) : callback(callback) { } KeyboardLayoutObserver::~KeyboardLayoutObserver() { @@ -65,17 +65,17 @@ void KeyboardLayoutObserver::HandleKeyboardLayoutChanged() { } NAN_METHOD(KeyboardLayoutObserver::GetCurrentKeyboardLayout) { - NanScope(); + Nan::HandleScope scope; char layoutName[KL_NAMELENGTH]; if (::GetKeyboardLayoutName(layoutName)) - NanReturnValue(NanNew(layoutName)); + info.GetReturnValue().Set(Nan::New(layoutName)); else - NanReturnValue(NanUndefined()); + info.GetReturnValue().Set(Nan::Undefined()); } NAN_METHOD(KeyboardLayoutObserver::GetCurrentKeyboardLanguage) { - NanScope(); + Nan::HandleScope scope; HKL layout; DWORD dwThreadId = 0; @@ -93,17 +93,17 @@ NAN_METHOD(KeyboardLayoutObserver::GetCurrentKeyboardLanguage) { wstr.assign(buf); std::string str = ToUTF8(wstr); - NanReturnValue(NanNew(str.data(), str.size())); + info.GetReturnValue().Set(Nan::New(str.data(), str.size())).ToLocalChecked(); } NAN_METHOD(KeyboardLayoutObserver::GetInstalledKeyboardLanguages) { - NanScope(); + Nan::HandleScope scope; int layoutCount = GetKeyboardLayoutList(0, NULL); HKL* layouts = new HKL[layoutCount]; GetKeyboardLayoutList(layoutCount, layouts); - Local result = NanNew(layoutCount); + Local result = Nan::New(layoutCount); wchar_t buf[LOCALE_NAME_MAX_LENGTH]; for (int i=0; i < layoutCount; i++) { @@ -112,9 +112,9 @@ NAN_METHOD(KeyboardLayoutObserver::GetInstalledKeyboardLanguages) { wstr.assign(buf); std::string str = ToUTF8(wstr); - result->Set(i, NanNew(str.data(), str.size())); + result->Set(i, Nan::New(str.data(), str.size())).ToLocalChecked(); } delete[] layouts; - NanReturnValue(result); + info.GetReturnValue().Set(result); } diff --git a/src/keyboard-layout-observer.h b/src/keyboard-layout-observer.h index 6351a65..565afdc 100644 --- a/src/keyboard-layout-observer.h +++ b/src/keyboard-layout-observer.h @@ -5,20 +5,20 @@ using namespace v8; // NOLINT -class KeyboardLayoutObserver : public node::ObjectWrap { +class KeyboardLayoutObserver : public Nan::ObjectWrap { public: static void Init(Handle target); void HandleKeyboardLayoutChanged(); private: - KeyboardLayoutObserver(NanCallback *callback); + KeyboardLayoutObserver(Nan::Callback *callback); ~KeyboardLayoutObserver(); static NAN_METHOD(New); static NAN_METHOD(GetCurrentKeyboardLayout); static NAN_METHOD(GetCurrentKeyboardLanguage); static NAN_METHOD(GetInstalledKeyboardLanguages); - NanCallback *callback; + Nan::Callback *callback; }; #endif // SRC_KEYBORD_LAYOUT_OBSERVER_H_ From a2cd0357c4d8a4d35516c368d6423926150ecb64 Mon Sep 17 00:00:00 2001 From: Paul Betts Date: Wed, 2 Sep 2015 16:19:17 -0700 Subject: [PATCH 3/4] Fix up calls to Set --- src/keyboard-layout-observer-mac.mm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/keyboard-layout-observer-mac.mm b/src/keyboard-layout-observer-mac.mm index 26bda44..76c4d56 100644 --- a/src/keyboard-layout-observer-mac.mm +++ b/src/keyboard-layout-observer-mac.mm @@ -102,7 +102,7 @@ static void asyncSendHandler(uv_async_t *handle) { Local result = Nan::New(ret.size()); for (size_t i = 0; i < ret.size(); ++i) { const std::string& lang = ret[i]; - result->Set(i, Nan::New(lang.data(), lang.size())).ToLocalChecked(); + result->Set(i, Nan::New(lang.data(), lang.size()).ToLocalChecked()); } info.GetReturnValue().Set(result); @@ -116,12 +116,12 @@ static void asyncSendHandler(uv_async_t *handle) { NSArray* langs = (NSArray*) TISGetInputSourceProperty(source, kTISPropertyInputSourceLanguages); NSString* lang = (NSString*) [langs objectAtIndex:0]; - info.GetReturnValue().Set(Nan::New([lang UTF8String])); + info.GetReturnValue().Set(Nan::New([lang UTF8String]).ToLocalChecked()); } NAN_METHOD(KeyboardLayoutObserver::GetCurrentKeyboardLayout) { Nan::HandleScope scope; TISInputSourceRef source = TISCopyCurrentKeyboardInputSource(); CFStringRef sourceId = (CFStringRef) TISGetInputSourceProperty(source, kTISPropertyInputSourceID); - info.GetReturnValue().Set(Nan::New([(NSString *)sourceId UTF8String])); + info.GetReturnValue().Set(Nan::New([(NSString *)sourceId UTF8String]).ToLocalChecked()); } From cb68367287badd148d051ae90415f028d354414d Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Mon, 14 Sep 2015 10:13:30 +0800 Subject: [PATCH 4/4] win: Fix calls to ToLocalChecked --- src/keyboard-layout-observer-windows.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/keyboard-layout-observer-windows.cc b/src/keyboard-layout-observer-windows.cc index e061bfa..370a060 100644 --- a/src/keyboard-layout-observer-windows.cc +++ b/src/keyboard-layout-observer-windows.cc @@ -69,7 +69,7 @@ NAN_METHOD(KeyboardLayoutObserver::GetCurrentKeyboardLayout) { char layoutName[KL_NAMELENGTH]; if (::GetKeyboardLayoutName(layoutName)) - info.GetReturnValue().Set(Nan::New(layoutName)); + info.GetReturnValue().Set(Nan::New(layoutName).ToLocalChecked()); else info.GetReturnValue().Set(Nan::Undefined()); } @@ -93,7 +93,7 @@ NAN_METHOD(KeyboardLayoutObserver::GetCurrentKeyboardLanguage) { wstr.assign(buf); std::string str = ToUTF8(wstr); - info.GetReturnValue().Set(Nan::New(str.data(), str.size())).ToLocalChecked(); + info.GetReturnValue().Set(Nan::New(str.data(), str.size()).ToLocalChecked()); } NAN_METHOD(KeyboardLayoutObserver::GetInstalledKeyboardLanguages) { @@ -112,7 +112,7 @@ NAN_METHOD(KeyboardLayoutObserver::GetInstalledKeyboardLanguages) { wstr.assign(buf); std::string str = ToUTF8(wstr); - result->Set(i, Nan::New(str.data(), str.size())).ToLocalChecked(); + result->Set(i, Nan::New(str.data(), str.size()).ToLocalChecked()); } delete[] layouts;