| /* File : example.i */ |
| %module example |
| |
| // placeholder() used to help SWIG generate "SWIG_From_int" call |
| %{ |
| int placeholder(); |
| %} |
| int placeholder() { return 0; } |
| |
| // actual demo code |
| %wrapper |
| %{ |
| #if defined(SWIG_V8_VERSION) /* Engine: Node || V8 */ |
| |
| static SwigV8ReturnValue JavaScript_do_work(const SwigV8Arguments &args) { |
| SWIGV8_HANDLESCOPE(); |
| const int MY_MAGIC_NUMBER = 5; |
| 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."); |
| SWIGV8_RETURN(jsresult); |
| fail: |
| 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, |
| JSObjectRef function, JSObjectRef thisObject, size_t argc, |
| const JSValueRef argv[], JSValueRef* exception) { |
| const int MY_MAGIC_NUMBER = 5; |
| JSValueRef jsresult = |
| SWIG_From_int SWIG_JSC_FROM_CALL_ARGS( |
| static_cast< int >(MY_MAGIC_NUMBER)); |
| if (argc != 0) |
| SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments."); |
| return jsresult; |
| fail: |
| return JSValueMakeUndefined(context); |
| } |
| |
| #endif |
| %} |
| |
| |
| %native(magicNumber) void JavaScript_do_work(); |