JSValue.newCFunctionData constructor
JSValue.newCFunctionData(
- JSContext _ctx,
- JSCFunctionData func,
- int len,
- int magic,
- int dataLen,
- JSValueRef data, {
- bool autoDispose = true,
Implementation
JSValue.newCFunctionData(
this._ctx,
JSCFunctionData func,
int len,
int magic,
int dataLen,
JSValueRef data, {
bool autoDispose = true,
}) {
_cfuncDataNC = NativeCallable.isolateLocal((
JSContextRef ctx,
JSValue_ thiz,
int argc,
JSValueRef argv,
int magic,
JSValueRef func_data,
) {
var jsValue = JSValue.ptr(_ctx, thiz);
var jsContext = JSContext(ctx);
try {
return func
.call(
jsContext,
jsValue,
argv.toList(_ctx, dataLen),
magic,
func_data.toList(_ctx, argc),
)
.ref
.ref;
} finally {
jsValue.free();
}
});
_ref = calloc.call(sizeOf<JSValue_>())
..ref = JS_NewCFunctionData(
_ctx.ref,
_cfuncDataNC!.nativeFunction,
len,
magic,
dataLen,
data,
);
attach(Q_JS_FreeValueAddress.cast(), _ref.cast(), autoDispose: autoDispose);
}