initializeWasmModule function

Future<void> initializeWasmModule({
  1. required String root,
  2. String wasmBindgenName = 'wasm_bindgen',
})

The code is used only internally and is not a public API. The comment exists mainly to satisfy the linter.

Implementation

Future<void> initializeWasmModule({
  required String root,
  String wasmBindgenName = 'wasm_bindgen',
}) async {
  _ensureCrossOriginIsolated();

  final script = web.HTMLScriptElement()..src = '$root.js';
  web.document.head!.append(script);

  await script.onLoad.first;

  jsEval('window.$wasmBindgenName = $wasmBindgenName');

  final jsObject = web.window.getProperty(wasmBindgenName.toJS) as JSObject;
  final wasmBindgen = _JSWasmBindgen(jsObject);
  await wasmBindgen({"module_or_path": '${root}_bg.wasm'}.jsify()).toDart;
}