evaluateQuickjsByteCode function

Future<bool> evaluateQuickjsByteCode(
  1. double contextId,
  2. Uint8List bytes, {
  3. ScriptElement? scriptElement,
})

Implementation

Future<bool> evaluateQuickjsByteCode(double contextId, Uint8List bytes, {ScriptElement? scriptElement}) async {
  if (WebFController.getControllerOfJSContextId(contextId) == null) {
    return false;
  }
  Completer<bool> completer = Completer();
  Pointer<Uint8> byteData = malloc.allocate(sizeOf<Uint8>() * bytes.length);
  byteData.asTypedList(bytes.length).setAll(0, bytes);
  assert(_allocatedPages.containsKey(contextId));

  _EvaluateQuickjsByteCodeContext context = _EvaluateQuickjsByteCodeContext(completer, byteData);

  Pointer<NativeFunction<NativeEvaluateQuickjsByteCodeCallback>> nativeCallback =
      Pointer.fromFunction(handleEvaluateQuickjsByteCodeResult);

  Pointer<NativeBindingObject> scriptElementPtr = scriptElement?.pointer! ?? nullptr;

  _evaluateQuickjsByteCode(
      _allocatedPages[contextId]!, byteData, bytes.length, scriptElementPtr, context, nativeCallback);

  return completer.future;
}