<html>
  <head>
    <meta content="text/html;charset=utf-8" http-equiv="Content-Type"/>
  </head>
  <body>
    <script>
      // The `--no-modules`-generated JS from `wasm-bindgen` attempts to use
      // `WebAssembly.instantiateStreaming` to instantiate the wasm module,
      // but this doesn't work with `file://` urls. This example is frequently
      // viewed by simply opening `index.html` in a browser (with a `file://`
      // url), so it would fail if we were to call this function!
      //
      // Work around this for now by deleting the function to ensure that the
      // `no_modules.js` script doesn't have access to it. You won't need this
      // hack when deploying over HTTP.
      delete WebAssembly.instantiateStreaming;
    </script>

    <!-- this is the JS generated by the `wasm-bindgen` CLI tool -->
    <script src='./no_modules.js'></script>

    <script>
      // the `wasm_bindgen` global is set to the exports of the Rust module
      const { greet } = wasm_bindgen;

      // we'll defer our execution until the wasm is ready to go
      function run() {
          greet('World');
      }

      // here we tell bindgen the path to the wasm file so it can run
      // initialization and return to us a promise when it's done
      wasm_bindgen('./no_modules_bg.wasm')
        .then(run)
        .catch(console.error);
    </script>
  </body>
</html>