@@ -10,6 +10,7 @@ use crate::wit::{JsImport, JsImportName, NonstandardWitSection, WasmBindgenAux};
10
10
use crate :: { reset_indentation, Bindgen , EncodeInto , OutputMode , PLACEHOLDER_MODULE } ;
11
11
use anyhow:: { anyhow, bail, Context as _, Error } ;
12
12
use binding:: TsReference ;
13
+ use file_util:: create_load_inline_bytes_snippet;
13
14
use std:: borrow:: Cow ;
14
15
use std:: collections:: { BTreeMap , BTreeSet , HashMap , HashSet } ;
15
16
use std:: fmt;
@@ -19,6 +20,7 @@ use std::path::{Path, PathBuf};
19
20
use walrus:: { FunctionId , ImportId , MemoryId , Module , TableId , ValType } ;
20
21
21
22
mod binding;
23
+ pub ( crate ) mod file_util;
22
24
23
25
pub struct Context < ' a > {
24
26
globals : String ,
@@ -308,19 +310,14 @@ impl<'a> Context<'a> {
308
310
fn generate_inline_wasm_loading ( & mut self ) -> String {
309
311
let mut shim = String :: new ( ) ;
310
312
311
- let buf = self . module . emit_wasm ( ) ;
313
+ let wasm = self . module . emit_wasm ( ) ;
314
+
315
+ let serialized = create_load_inline_bytes_snippet ( & wasm, "bytes" . into ( ) ) ;
312
316
313
- let mut serialized = "const bytes = new Uint8Array([" . to_string ( ) ;
314
- let ( last, bytes) = buf. split_last ( ) . unwrap ( ) ;
315
- for byte in bytes {
316
- serialized. push_str ( & format ! ( "{}," , byte) ) ;
317
- }
318
- serialized. push_str ( & format ! ( "{}" , last) ) ;
319
- serialized. push_str ( "]);" ) ;
320
317
shim. push_str ( & serialized) ;
321
318
shim. push_str (
322
319
"
323
- const wasmModule = new WebAssembly.Module(bytes.buffer );
320
+ const wasmModule = new WebAssembly.Module(bytes);
324
321
const wasmInstance = new WebAssembly.Instance(wasmModule, imports);
325
322
wasm = wasmInstance.exports;
326
323
module.exports.__wasm = wasm;
0 commit comments