evaluate method

JsEvalResult evaluate(
  1. String command, {
  2. String? name,
  3. int? evalFlags,
})
override

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);
}