evaluate method
Evaluate js script.
Implementation
JsEvalResult evaluate(
String command, {
String? name,
int? evalFlags,
}) {
_ensureEngine();
final ctx = _ctx!;
final jsval = jsEval(
ctx,
command,
name ?? '<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);
// if (result is Future) {
// result.then((e) {
// print('E: $e');
// return e;
// });
// print(
// 'RESULT: ${result.whenComplete(() => print('COMPLETED _-----------------'))}');
// print(
// 'RESULT: ${result.onError((error, stackTrace) => print('ERROR: $error _-----------------'))}');
// }
jsFreeValue(ctx, jsval);
return JsEvalResult(result?.toString() ?? "null", result);
}