aboutsummaryrefslogtreecommitdiff
path: root/Examples/javascript/native/example.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/javascript/native/example.i')
-rw-r--r--Examples/javascript/native/example.i19
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,