// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. // TODO(joshualitt): Investigate making this a module. Currently, Dart2Wasm is // broken in D8 with modules because of an issue with async. This may or may not // affect chrome. (async () => { // Fetch and compile Wasm binary. let data = document.getElementById('WasmBootstrapInfo').dataset; let modulePromise = WebAssembly.compileStreaming(fetch(data.wasmurl)); // Instantiate the Dart module, importing from the global scope. let dart2wasm = await import('./' + data.jsruntimeurl); let dartInstance = await dart2wasm.instantiate(modulePromise, {}); // Call `main`. If tasks are placed into the event loop (by scheduling tasks // explicitly or awaiting Futures), these will automatically keep the script // alive even after `main` returns. await dart2wasm.invoke(dartInstance); })();