mirror of https://github.com/swig/swig
63 lines
1.8 KiB
OpenEdge ABL
63 lines
1.8 KiB
OpenEdge ABL
/* 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();
|