| <!DOCTYPE HTML> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8"> |
| <title>Binaryen</title> |
| <style type="text/css"> |
| |
| * { margin:0; padding:0; font-family:inherit; } |
| body { |
| margin:2em; |
| background:white; |
| color:black; |
| font:14px monospace; |
| white-space: pre; |
| } |
| p { |
| white-space: normal; |
| font-family:sans-serif; |
| } |
| |
| </style> |
| <script type="text/javascript" src="../../bin/binaryen.js"></script> |
| </head> |
| <body><script type="text/javascript"> |
| // Separate javascript tag to support <=ES3 browser (the other block uses ES5 and ES6 features) |
| if (!window.Wasm) { |
| var e = document.createElement('p'); |
| e.innerHTML = 'No WASM support detected.<br>Please see <a href="https://github.com/kripken/emscripten/wiki/WebAssembly#testing-native-webassembly-in-browsers">https://github.com/kripken/emscripten/wiki/WebAssembly#testing-native-webassembly-in-browsers</a> for instructions on how to enable it.'; |
| document.body.appendChild(e); |
| } |
| </script><script type="text/javascript"> |
| if (window.Wasm) { |
| try { |
| let startTime = new Date; |
| document.write("Start at "+startTime.toLocaleTimeString()+"\n"); |
| |
| Binaryen = Binaryen(); |
| |
| var input1 =` |
| (module |
| (export "add" $add) |
| (import $add2 "env" "add" (param f64 f64) (result f64)) |
| (func $add (param $x f64) (param $y f64) (result f64) |
| (f64.add |
| (call_import $add2 (get_local $x) (get_local $y)) |
| (f64.add (get_local $x) (get_local $y)) |
| ) |
| ) |
| )`; |
| |
| document.write("let buf = Binaryen.compileWast('"+input1+"')\n"); |
| let buf = Binaryen.compileWast(input1); |
| |
| document.write("Wasm.verifyModule(buf) ..."); |
| Wasm.verifyModule(buf); |
| document.write(" OK\n"); |
| |
| document.write("let m = Wasm.instantiateModule(buf, {env:{add: function(a, b){...}}})\n"); |
| let m = Wasm.instantiateModule(buf, { |
| env: { |
| add: function(a, b) { return a + b; } |
| } |
| }); |
| |
| let res = m.exports.add(10.0, 20) |
| document.write("m.exports.add(10.0, 20) => "+res+"\n"); |
| |
| let endTime = new Date; |
| document.write("Completed at "+endTime.toLocaleTimeString()+ |
| " (total of "+(endTime - startTime)+" ms)\n"); |
| |
| } catch (err) { |
| document.write("Error: " + (err.stack || String(err))); |
| throw err; |
| } |
| } |
| |
| </script> |
| </body> |
| </html> |