JSObject.makeFunction constructor
JSObject.makeFunction(})
Implementation
factory JSObject.makeFunction(
JSContext context, {
String? name,
List<String>? parameterNames,
required String body,
String? sourceURL,
int startingLineNumber = 1,
}) {
final JSException exception = JSException.create(context);
final JSString? jsName = name != null ? JSString.fromString(name) : null;
final List<JSString>? jsParameterNames = parameterNames?.map((String element) => JSString.fromString(element)).toList();
final JSString jsBody = JSString.fromString(body);
final JSString? jsSourceURL = sourceURL != null ? JSString.fromString(sourceURL) : null;
try {
final JSObject object = JSObject(
context,
js_bd.JSObjectMakeFunction(
context.ref,
jsName?.ref ?? nullptr,
jsParameterNames?.length ?? 0,
jsParameterNames?.ref ?? nullptr,
jsBody.ref,
jsSourceURL?.ref ?? nullptr,
startingLineNumber,
exception.ref,
),
);
if (exception.shouldThrow) {
throw exception.error;
}
return object;
} finally {
jsSourceURL?.release();
jsBody.release();
jsParameterNames?.release();
jsName?.release();
exception.release();
}
}