Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>WASM Test</title>
</head>
<body>
  <script>
    function fetchAndInstantiateWasm (url, imports) {
      return fetch(url)
      .then(res => {
        if (res.ok)
          return res.arrayBuffer();
        throw new Error(`Unable to fetch Web Assembly file ${url}.`);
      })
      .then(bytes => WebAssembly.compile(bytes))
      .then(module => WebAssembly.instantiate(module, imports || {}))
      .then(instance => instance.exports);
    }
    fetchAndInstantiateWasm(
      'https://rawgit.com/ArvinH/975d9090903254aa58d72d7e8b9f07ab/raw/'+
      '348daa555fa4f1e90c23550858ca506628518644/readMemory.wasm', {})
    .then(m => {
      const memory = m.memory;
      const strBuf = new Uint8Array(memory.buffer, m.getStrOffset(), 11);
      const str = new TextDecoder().decode(strBuf);
      console.log(str);
    });
  </script>
</body>
</html>
 
<!doctype html>
  <title>WASM Test</title>
  <script>
    function fetchAndInstantiateWasm (url, imports) {
      return fetch(url)
      .then(res => {
        if (res.ok)
          return res.arrayBuffer();
        throw new Error(`Unable to fetch Web Assembly file ${url}.`);
      })
      .then(bytes => WebAssembly.compile(bytes))
      .then(module => WebAssembly.instantiate(module, imports || {}))
      .then(instance => instance.exports);
    }
    fetchAndInstantiateWasm('https://gist.githubusercontent.com/ArvinH/0fad6bf2a8e60b4906a7b8b4b99935d9/raw/56162e1c77ae7542c88af4ff8dbb8ddbdfd070ef/add.wasm', {
      env: {
        consoleLog: num => console.log(num)
      },
      test: {
        log: console.log
      }
    })
    .then(m => {
      console.log(m.add(5));
    });
  </script>
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x