wasm-abi.js (1283B)
1 for (let numLocals of [3, 4, 5, 6, 17, 18, 19]) { 2 for (let numParams of [1, 2, 3, 4, 5, 6, 7, 8]) { 3 let locals = ` (local `; 4 let setLocals = ``; 5 let getLocals = ``; 6 let adds = ``; 7 let sum = 0; 8 for (let i = 0; i < numLocals; i++) { 9 sum += i + 1; 10 locals += `i32 `; 11 setLocals += ` (local.set ${i + 1} (i32.add (local.get 0) (i32.const ${i + 1})))\n`; 12 getLocals += ` local.get ${i + 1}\n`; 13 if (i > 0) 14 adds += ` i32.add\n`; 15 } 16 locals += `)\n`; 17 18 var callee = ` (func $f (param `; 19 var caller = ` (call $f `; 20 for (let i = 0; i < numParams; i++) { 21 callee += `f32 `; 22 caller += `(f32.const ${i}) `; 23 } 24 callee += `))\n`; 25 caller += `)\n`; 26 27 var code = `(module \n` + 28 callee + 29 ` (func (export "run") (param i32) (result i32)\n` + 30 locals + 31 setLocals + 32 caller + 33 getLocals + 34 adds + 35 ` )\n` + 36 `)`; 37 wasmFullPass(code, numLocals * 100 + sum, undefined, 100); 38 } 39 }