callFunction method

  1. @override
JsEvalResult callFunction(
  1. dynamic function,
  2. dynamic argument
)
override

Implementation

@override
JsEvalResult callFunction(
  dynamic function,
  dynamic argument,
) {
  // Cast to Pointer for native implementation
  final fnPtr = function as Pointer<JSValueConst>;
  final argPtr = argument as Pointer<JSValueConst>;
  Pointer result = calloc<JSValueConst>();
  Pointer<Pointer<Utf8NullTerminated>> stringResult =
      calloc<Pointer<Utf8NullTerminated>>();
  int operationResult = _callJsFunction1Arg(
      _context,
      fnPtr,
      argPtr,
      result as Pointer<JSValueConst>,
      stringResult);
  String resultStr = Utf8NullTerminated.fromUtf8(stringResult.value);
  return JsEvalResult(
    resultStr,
    result,
    isError: operationResult == 0,
    isPromise: resultStr == '[object Promise]',
  );
}