@@ -15,7 +15,6 @@ static Persistent<v8::String> persistentTest1;
1515
1616NAN_METHOD (Save1) {
1717 persistentTest1.Reset (info[0 ].As <v8::String>());
18- info.GetReturnValue ().SetUndefined ();
1918}
2019
2120NAN_METHOD (Get1) {
@@ -24,7 +23,6 @@ NAN_METHOD(Get1) {
2423
2524NAN_METHOD (Dispose1) {
2625 persistentTest1.Reset ();
27- info.GetReturnValue ().SetUndefined ();
2826}
2927
3028NAN_METHOD (ToPersistentAndBackAgain) {
@@ -39,8 +37,8 @@ NAN_METHOD(PersistentToPersistent) {
3937 Persistent<v8::String> persistent (info[0 ].As <v8::String>());
4038 persistentTest1.Reset (persistent);
4139 persistent.Reset ();
40+ info.GetReturnValue ().Set (New (persistentTest1));
4241 persistentTest1.Reset ();
43- info.GetReturnValue ().SetUndefined ();
4442}
4543
4644NAN_METHOD (CopyablePersistent) {
@@ -49,30 +47,46 @@ NAN_METHOD(CopyablePersistent) {
4947 info.GetReturnValue ().Set (New (p));
5048}
5149
50+ template <typename T> Global<T> passer (v8::Local<T> handle) {
51+ return Global<T>(handle).Pass ();
52+ }
53+
54+ NAN_METHOD (PassGlobal) {
55+ info.GetReturnValue ().Set (passer (New (42 )));
56+ }
57+
5258NAN_MODULE_INIT (Init) {
5359 Set (target
5460 , New<v8::String>(" save1" ).ToLocalChecked ()
55- , New<v8::FunctionTemplate>(Save1)-> GetFunction ()
61+ , GetFunction ( New<v8::FunctionTemplate>(Save1)). ToLocalChecked ()
5662 );
5763 Set (target
5864 , New<v8::String>(" get1" ).ToLocalChecked ()
59- , New<v8::FunctionTemplate>(Get1)-> GetFunction ()
65+ , GetFunction ( New<v8::FunctionTemplate>(Get1)). ToLocalChecked ()
6066 );
6167 Set (target
6268 , New<v8::String>(" dispose1" ).ToLocalChecked ()
63- , New<v8::FunctionTemplate>(Dispose1)-> GetFunction ()
69+ , GetFunction ( New<v8::FunctionTemplate>(Dispose1)). ToLocalChecked ()
6470 );
6571 Set (target
6672 , New<v8::String>(" toPersistentAndBackAgain" ).ToLocalChecked ()
67- , New<v8::FunctionTemplate>(ToPersistentAndBackAgain)->GetFunction ()
73+ , GetFunction (New<v8::FunctionTemplate>(ToPersistentAndBackAgain))
74+ .ToLocalChecked ()
6875 );
6976 Set (target
7077 , New<v8::String>(" persistentToPersistent" ).ToLocalChecked ()
71- , New<v8::FunctionTemplate>(PersistentToPersistent)->GetFunction ()
78+ , GetFunction (New<v8::FunctionTemplate>(PersistentToPersistent))
79+ .ToLocalChecked ()
7280 );
7381 Set (target
7482 , New<v8::String>(" copyablePersistent" ).ToLocalChecked ()
75- , New<v8::FunctionTemplate>(CopyablePersistent)->GetFunction ()
83+ , GetFunction (New<v8::FunctionTemplate>(CopyablePersistent))
84+ .ToLocalChecked ()
85+ );
86+ Set (target
87+ , New<v8::String>(" passGlobal" ).ToLocalChecked ()
88+ , GetFunction (New<v8::FunctionTemplate>(PassGlobal))
89+ .ToLocalChecked ()
7690 );
7791}
7892
0 commit comments