diff options
Diffstat (limited to 'Examples/javascript/native/example.i')
-rw-r--r-- | Examples/javascript/native/example.i | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/Examples/javascript/native/example.i b/Examples/javascript/native/example.i index 8c6160060..7444ae6f4 100644 --- a/Examples/javascript/native/example.i +++ b/Examples/javascript/native/example.i @@ -10,12 +10,12 @@ int placeholder() { return 0; } // actual demo code %wrapper %{ -#ifdef SWIG_V8_VERSION /* Engine: Node || V8 */ +#if defined(SWIG_V8_VERSION) /* Engine: Node || V8 */ static SwigV8ReturnValue JavaScript_do_work(const SwigV8Arguments &args) { SWIGV8_HANDLESCOPE(); const int MY_MAGIC_NUMBER = 5; - v8::Handle<v8::Value> jsresult = + SWIGV8_VALUE jsresult = SWIG_From_int(static_cast< int >(MY_MAGIC_NUMBER)); if (args.Length() != 0) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments."); @@ -24,6 +24,21 @@ int placeholder() { return 0; } SWIGV8_RETURN(SWIGV8_UNDEFINED()); } +#elif defined(NAPI_VERSION) /* Engine: NAPI */ + + static Napi::Value JavaScript_do_work(const Napi::CallbackInfo &args) { + Napi::Env env = args.Env(); + Napi::EscapableHandleScope scope(env); + const int MY_MAGIC_NUMBER = 5; + Napi::Value jsresult = + SWIG_From_int(env, static_cast< int >(MY_MAGIC_NUMBER)); + if (args.Length() != 0) + SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments."); + return scope.Escape(jsresult); + fail: + return Napi::Value(); + } + #else /* Engine: JavaScriptCore */ static JSValueRef JavaScript_do_work(JSContextRef context, |