JSClassDefinition.create constructor
JSClassDefinition.create({
- int version = 0,
- JSClassAttributes attributes = JSClassAttributes.kJSClassAttributeNone,
- required String className,
- JSClass? parentClass,
- List<
JSStaticVale> ? staticValues, - List<
JSStaticFunction> ? staticFunctions, - JSObjectInitializeCallback? initialize,
- JSObjectFinalizeCallback? finalize,
- JSObjectHasPropertyCallback? hasProperty,
- JSObjectGetPropertyCallback? getProperty,
- JSObjectSetPropertyCallback? setProperty,
- JSObjectDeletePropertyCallback? deleteProperty,
- JSObjectGetPropertyNamesCallback? getPropertyNames,
- JSObjectCallAsConstructorCallback? callAsConstructor,
- JSObjectCallAsFunctionCallback? callAsFunction,
- JSObjectHasInstanceCallback? hasInstance,
- JSObjectConvertToTypeCallback? convertToType,
Implementation
JSClassDefinition.create({
// The version number of this structure. The current version is 0.
int version = 0,
// A logically ORed set of [JSClassAttributes] to give to the class.
JSClassAttributes attributes = JSClassAttributes.kJSClassAttributeNone,
// A null-terminated UTF8 string containing the class's name.
required String className,
// A JSClass to set as the class's parent class. Pass NULL use the default object class.
JSClass? parentClass,
// A JSStaticValue array containing the class's statically declared value properties. Pass NULL to specify no statically declared value properties. The array must be terminated by a JSStaticValue whose name field is NULL.
List<JSStaticVale>? staticValues,
// A JSStaticFunction array containing the class's statically declared function properties. Pass NULL to specify no statically declared function properties. The array must be terminated by a JSStaticFunction whose name field is NULL.
List<JSStaticFunction>? staticFunctions,
JSObjectInitializeCallback? initialize,
JSObjectFinalizeCallback? finalize,
JSObjectHasPropertyCallback? hasProperty,
JSObjectGetPropertyCallback? getProperty,
JSObjectSetPropertyCallback? setProperty,
JSObjectDeletePropertyCallback? deleteProperty,
JSObjectGetPropertyNamesCallback? getPropertyNames,
JSObjectCallAsConstructorCallback? callAsConstructor,
JSObjectCallAsFunctionCallback? callAsFunction,
JSObjectHasInstanceCallback? hasInstance,
JSObjectConvertToTypeCallback? convertToType,
}) {
_staticValues = staticValues;
_staticFunctions = staticFunctions;
_initializeNC = initializeCallbackDartToNativeConverter(initialize);
_finalizeNC = finalizeCallbackDartToNativeConverter(finalize);
_hasPropertyNC = hasPropertyCallbackDartToNativeConverter(hasProperty);
_getPropertyNC = getPropertyCallbackDartToNativeConverter(getProperty);
_setPropertyNC = setPropertyCallbackDartToNativeConverter(setProperty);
_deletePropertyNC = deletePropertyCallbackDartToNativeConverter(
deleteProperty,
);
_getPropertyNamesNC = getPropertyNamesCallbackDartToNativeConverter(
getPropertyNames,
);
_callAsFunctionNC = callAsFunctionCallbackDartToNativeConverter(
callAsFunction,
);
_callAsConstructorNC = callAsConstructorCallbackDartToNativeConverter(
callAsConstructor,
);
_hasInstanceNC = hasInstanceCallbackDartToNativeConverter(hasInstance);
_convertToTypeNC = convertToTypeCallbackDartToNativeConverter(
convertToType,
);
_ref = JSClassDefinitionPointer.alloc(
className: className.toNativeUtf8(),
version: version,
attributes: JSClassAttributesRef.kJSClassAttributeNone,
parentClass: parentClass?.ref ?? nullptr,
staticValues: staticValues?.ref ?? nullptr,
staticFunctions: staticFunctions?.ref ?? nullptr,
initialize: _initializeNC?.nativeFunction ?? nullptr,
finalize: _finalizeNC?.nativeFunction ?? nullptr,
hasProperty: _hasPropertyNC?.nativeFunction ?? nullptr,
getProperty: _getPropertyNC?.nativeFunction ?? nullptr,
setProperty: _setPropertyNC?.nativeFunction ?? nullptr,
deleteProperty: _deletePropertyNC?.nativeFunction ?? nullptr,
getPropertyNames: _getPropertyNamesNC?.nativeFunction ?? nullptr,
callAsFunction: _callAsFunctionNC?.nativeFunction ?? nullptr,
callAsConstructor: _callAsConstructorNC?.nativeFunction ?? nullptr,
hasInstance: _hasInstanceNC?.nativeFunction ?? nullptr,
convertToType: _convertToTypeNC?.nativeFunction ?? nullptr,
);
attach(calloc.nativeFree, _ref.cast());
}