evaluate method

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

Evaluate js script.

Implementation

JsEvalResult evaluate(
  String command, {
  String? name,
  int? evalFlags,
  String? sourceUrl,
}) {
  _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);
  jsFreeValue(ctx, jsval);
  return JsEvalResult(result?.toString() ?? "null", result);
}