jsEval static method

JsEvalResult jsEval(
  1. Pointer<JSContext> ctx,
  2. String js, {
  3. String fileName = 'nofile.js',
})

Implementation

static JsEvalResult jsEval(
  Pointer<JSContext> ctx,
  String js, {
  String fileName = 'nofile.js',
}) {
  Pointer<JSValueConst>? result = calloc<JSValueConst>();
  Pointer<Pointer<Utf8NullTerminated>> stringResult =
      calloc<Pointer<Utf8NullTerminated>>();
  Pointer<Int32> errors = calloc<Int32>();
  _jsEvalWrapper(ctx, Utf8NullTerminated.toUtf8(js), js.length,
      Utf8NullTerminated.toUtf8(fileName), 0, errors, result, stringResult);

  final strResult = Utf8NullTerminated.fromUtf8(stringResult.value);
  return JsEvalResult(
    strResult,
    result,
    isError: errors.value == 1,
    isPromise: strResult == '[object Promise]',
  );
}