From f8b7c875d04d425a41dfd4f3f8345bc3a11e6c52 Mon Sep 17 00:00:00 2001 From: Benjamin Byholm Date: Wed, 27 Apr 2016 20:24:45 +0300 Subject: [PATCH] Fix compilation on outdated versions due to Handle removal Fixes #562 --- nan.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/nan.h b/nan.h index 1fa1b6e7..6d4679ba 100644 --- a/nan.h +++ b/nan.h @@ -1850,6 +1850,41 @@ NAN_INLINE void SetInstanceTemplate( SetTemplate(templ->InstanceTemplate(), name, value, attributes); } +#if NODE_MODULE_VERSION < IOJS_3_0_MODULE_VERSION +NAN_INLINE void SetMethod( + v8::Handle recv + , const char *name + , FunctionCallback callback) { + HandleScope scope; + v8::Local fn = GetFunction(New( + callback)).ToLocalChecked(); + v8::Local fn_name = New(name).ToLocalChecked(); + fn->SetName(fn_name); + recv->Set(fn_name, fn); +} + +NAN_INLINE void SetMethod( + v8::Handle templ + , const char *name + , FunctionCallback callback) { + HandleScope scope; + v8::Local t = New(callback); + v8::Local fn_name = New(name).ToLocalChecked(); + t->SetClassName(fn_name); + templ->Set(fn_name, t); +} + +NAN_INLINE void SetMethod( + v8::Handle templ + , const char *name + , FunctionCallback callback) { + HandleScope scope; + v8::Local t = New(callback); + v8::Local fn_name = New(name).ToLocalChecked(); + t->SetClassName(fn_name); + templ->Set(fn_name, t); +} +#else NAN_INLINE void SetMethod( v8::Local recv , const char *name @@ -1883,6 +1918,7 @@ NAN_INLINE void SetMethod( t->SetClassName(fn_name); templ->Set(fn_name, t); } +#endif NAN_INLINE void SetPrototypeMethod( v8::Local recv