JSClass.subclass constructor
JSClass.subclass(
- JSContext ctx, {
- required JSClassDef classDef,
- required List<
JSCFunctionListEntry> ? funcs, - required JSValue parentProto,
- required JSValue constructor,
- bool autoDispose = true,
Implementation
JSClass.subclass(
this.ctx, {
required this.classDef,
required this.funcs,
required JSValue parentProto,
required JSValue constructor,
bool autoDispose = true,
}) {
_classID = calloc.call(sizeOf<Uint32>());
assert(_classID != null);
classID = newClassID(_classID!);
final rt = ctx.runtime.ref;
JS_NewClass(rt, _classID!.value, classDef.ref);
proto = JSValue.newObjectProto(ctx, parentProto);
JS_SetConstructor(ctx.ref, constructor.ref.ref, proto!.ref.ref);
ctx.setClassProto(_classID!.value, proto!);
if (funcs != null && funcs!.isNotEmpty) {
proto!.setPropertyFunctionList(funcs!);
}
attach(calloc.nativeFree, _classID!.cast(), autoDispose: autoDispose);
}