evaluate method
Evaluate js script.
Implementation
JsEvalResult evaluate(
String command, {
String? name,
int? evalFlags,
String? sourceUrl,
}) {
_ensureEngine();
final ctx = _ctx!;
final jsval = jsEval(
ctx,
command,
name ?? sourceUrl ?? '<eval>',
evalFlags ?? JSEvalFlag.GLOBAL,
);
if (jsIsException(jsval) != 0) {
jsFreeValue(ctx, jsval);
JSError exception = _parseJSException(ctx);
return JsEvalResult(exception.toString(), exception, isError: true);
}
final result = _jsToDart(ctx, jsval);
final isPromise = result is Future;
jsFreeValue(ctx, jsval);
_maybeDrainJobs();
return JsEvalResult(
result?.toString() ?? "null",
result,
isPromise: isPromise,
isError: result is JSError,
);
}