/* Lovingly generated by gen-spec-js.py based on the wonderful content of *
 * https://github.com/WebAssembly/spec/blob/master/interpreter/host/js.ml */
'use strict';

let soft_validate = true;

let spectest = {
  print: print || ((...xs) => console.log(...xs)),
  global: 666,
  table: new WebAssembly.Table({initial: 10, maximum: 20, element: 'anyfunc'}),
  memory: new WebAssembly.Memory({initial: 1, maximum: 2}),};

let registry = {spectest};
let $$;

function register(name, instance) {
  registry[name] = instance.exports;
}

function module(bytes) {
  let buffer = new ArrayBuffer(bytes.length);
  let view = new Uint8Array(buffer);
  for (let i = 0; i < bytes.length; ++i) {
    view[i] = bytes.charCodeAt(i);
  }
  return new WebAssembly.Module(buffer);
}

function instance(bytes, imports = registry) {
  return new WebAssembly.Instance(module(bytes), imports);
}

function assert_malformed(bytes) {
  try { module(bytes) } catch (e) {
    if (e instanceof WebAssembly.CompileError) return;
  }
  throw new Error("Wasm decoding failure expected");
}

function assert_invalid(bytes) {
  try { module(bytes) } catch (e) {
    if (e instanceof WebAssembly.CompileError) return;
  }
  throw new Error("Wasm validation failure expected");
}

function assert_soft_invalid(bytes) {
  try { module(bytes) } catch (e) {
    if (e instanceof WebAssembly.CompileError) return;
    throw new Error("Wasm validation failure expected");
  }
  if (soft_validate)
    throw new Error("Wasm validation failure expected");
}

function assert_unlinkable(bytes) {
  let mod = module(bytes);
  try { new WebAssembly.Instance(mod, registry) } catch (e) {
    if (e instanceof TypeError) return;
  }
  throw new Error("Wasm linking failure expected");
}

function assert_uninstantiable(bytes) {
  let mod = module(bytes);
  try { new WebAssembly.Instance(mod, registry) } catch (e) {
    if (e instanceof WebAssembly.RuntimeError) return;
  }
  throw new Error("Wasm trap expected");
}

function assert_trap(action) {
  try { action() } catch (e) {
    if (e instanceof WebAssembly.RuntimeError) return;
  }
  throw new Error("Wasm trap expected");
}

function assert_return(action, expected) {
  let actual = action();
  if (!Object.is(actual, expected)) {
    throw new Error("Wasm return value " + expected + " expected, got " + actual);
  };
}

function assert_return_nan(action) {
  let actual = action();
  if (!Number.isNaN(actual)) {
    throw new Error("Wasm return value NaN expected, got " + actual);
  };
}

let f32 = Math.fround;

$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x00\x00");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x00\x01");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x05\x01\x01\x01\x80\x02");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x06\x01\x01\x00\x80\x80\x04");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x00\x00\x0b\x06\x01\x00\x41\x00\x0b\x00");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x00\x00\x0b\x06\x01\x00\x41\x00\x0b\x00");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x01\x01\x0b\x07\x01\x00\x41\x00\x0b\x01\x61");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x01\x02\x0b\x0f\x02\x00\x41\x00\x0b\x01\x61\x00\x41\xff\xff\x03\x0b\x01\x62");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x01\x02\x0b\x13\x03\x00\x41\x00\x0b\x01\x61\x00\x41\x01\x0b\x01\x62\x00\x41\x02\x0b\x01\x63");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x02\x14\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x67\x6c\x6f\x62\x61\x6c\x03\x7f\x00\x05\x03\x01\x00\x01\x0b\x07\x01\x00\x23\x00\x0b\x01\x61");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x02\x14\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x67\x6c\x6f\x62\x61\x6c\x03\x7f\x00\x05\x03\x01\x00\x01\x0b\x07\x01\x00\x23\x00\x0b\x01\x61");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x05\x02\x00\x00\x00\x00");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x02\x14\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x00\x05\x03\x01\x00\x00");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x05\x01\x60\x00\x01\x7f\x03\x02\x01\x00\x05\x04\x01\x01\x00\x00\x07\x0b\x01\x07\x6d\x65\x6d\x73\x69\x7a\x65\x00\x00\x0a\x06\x01\x04\x00\x3f\x00\x0b\x0b\x06\x01\x00\x41\x00\x0b\x00");
assert_return(() => $$.exports["memsize"](), 0);
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x05\x01\x60\x00\x01\x7f\x03\x02\x01\x00\x05\x04\x01\x01\x00\x00\x07\x0b\x01\x07\x6d\x65\x6d\x73\x69\x7a\x65\x00\x00\x0a\x06\x01\x04\x00\x3f\x00\x0b\x0b\x06\x01\x00\x41\x00\x0b\x00");
assert_return(() => $$.exports["memsize"](), 0);
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x05\x01\x60\x00\x01\x7f\x03\x02\x01\x00\x05\x04\x01\x01\x01\x01\x07\x0b\x01\x07\x6d\x65\x6d\x73\x69\x7a\x65\x00\x00\x0a\x06\x01\x04\x00\x3f\x00\x0b\x0b\x07\x01\x00\x41\x00\x0b\x01\x78");
assert_return(() => $$.exports["memsize"](), 1);
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x0b\x06\x01\x00\x41\x00\x0b\x00");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x0b\x06\x01\x00\x41\x00\x0b\x00");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x0b\x07\x01\x00\x41\x00\x0b\x01\x78");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x0a\x0a\x01\x08\x00\x41\x00\x2a\x02\x00\x1a\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x0a\x0e\x01\x0c\x00\x43\x00\x00\x00\x00\x41\x00\x38\x02\x00\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x0a\x0a\x01\x08\x00\x41\x00\x2c\x00\x00\x1a\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x0a\x0b\x01\x09\x00\x41\x00\x41\x00\x3a\x00\x00\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x0a\x07\x01\x05\x00\x3f\x00\x1a\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x0a\x09\x01\x07\x00\x41\x00\x40\x00\x1a\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x03\x01\x00\x01\x0b\x06\x01\x00\x42\x00\x0b\x00");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x03\x01\x00\x01\x0b\x07\x01\x00\x41\x00\x68\x0b\x00");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x03\x01\x00\x01\x0b\x05\x01\x00\x01\x0b\x00");
assert_unlinkable("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x00\x00\x0b\x07\x01\x00\x41\x00\x0b\x01\x61");
assert_unlinkable("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x01\x02\x0b\x0f\x02\x00\x41\x00\x0b\x01\x61\x00\x41\x80\x80\x06\x0b\x01\x62");
assert_unlinkable("\x00\x61\x73\x6d\x0d\x00\x00\x00\x02\x14\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x67\x6c\x6f\x62\x61\x6c\x03\x7f\x00\x05\x03\x01\x00\x00\x0b\x07\x01\x00\x23\x00\x0b\x01\x61");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x00\x00\x0b\x06\x01\x00\x41\x00\x0b\x00");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x00\x00\x0b\x06\x01\x00\x41\x01\x0b\x00");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x01\x02\x0b\x11\x02\x00\x41\x00\x0b\x03\x61\x62\x63\x00\x41\x00\x0b\x03\x64\x65\x66");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x01\x02\x0b\x0f\x02\x00\x41\x03\x0b\x02\x61\x62\x00\x41\x00\x0b\x02\x64\x65");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x01\x02\x0b\x13\x03\x00\x41\x00\x0b\x01\x61\x00\x41\x02\x0b\x01\x62\x00\x41\x01\x0b\x01\x63");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x04\x01\x01\x01\x00");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x05\x01\x00\x81\x80\x04");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x07\x01\x00\x80\x80\x80\x80\x08");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x07\x01\x00\xff\xff\xff\xff\x0f");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x06\x01\x01\x00\x81\x80\x04");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x08\x01\x01\x00\x80\x80\x80\x80\x08");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x05\x08\x01\x01\x00\xff\xff\xff\xff\x0f");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x0a\x01\x08\x00\x41\x00\x2d\x00\x00\x1a\x0b");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x0a\x01\x08\x00\x41\x00\x2f\x01\x00\x1a\x0b");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x0a\x01\x08\x00\x41\x00\x28\x02\x00\x1a\x0b");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x0a\x01\x08\x00\x41\x00\x2a\x02\x00\x1a\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x0a\x01\x08\x00\x41\x00\x29\x04\x00\x1a\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x0a\x01\x08\x00\x41\x00\x29\x05\x00\x1a\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x0a\x01\x08\x00\x41\x00\x28\x03\x00\x1a\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x0a\x01\x08\x00\x41\x00\x2f\x02\x00\x1a\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x0a\x01\x08\x00\x41\x00\x2d\x01\x00\x1a\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x0b\x01\x09\x00\x41\x00\x41\x00\x3a\x01\x00\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x09\x01\x07\x00\x41\x00\x2f\x02\x00\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x09\x01\x07\x00\x41\x00\x2d\x01\x00\x0b");
assert_invalid("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x05\x03\x01\x00\x00\x0a\x0b\x01\x09\x00\x41\x00\x41\x00\x3a\x01\x00\x0b");
$$ = instance("\x00\x61\x73\x6d\x0d\x00\x00\x00\x01\x16\x05\x60\x00\x01\x7f\x60\x00\x01\x7c\x60\x01\x7f\x01\x7f\x60\x01\x7e\x01\x7e\x60\x00\x00\x03\x1b\x1a\x00\x00\x00\x01\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x05\x03\x01\x00\x01\x07\xbd\x02\x1a\x04\x64\x61\x74\x61\x00\x00\x07\x61\x6c\x69\x67\x6e\x65\x64\x00\x01\x09\x75\x6e\x61\x6c\x69\x67\x6e\x65\x64\x00\x02\x04\x63\x61\x73\x74\x00\x03\x0b\x69\x33\x32\x5f\x6c\x6f\x61\x64\x38\x5f\x73\x00\x04\x0b\x69\x33\x32\x5f\x6c\x6f\x61\x64\x38\x5f\x75\x00\x05\x0c\x69\x33\x32\x5f\x6c\x6f\x61\x64\x31\x36\x5f\x73\x00\x06\x0c\x69\x33\x32\x5f\x6c\x6f\x61\x64\x31\x36\x5f\x75\x00\x07\x0b\x69\x36\x34\x5f\x6c\x6f\x61\x64\x38\x5f\x73\x00\x08\x0b\x69\x36\x34\x5f\x6c\x6f\x61\x64\x38\x5f\x75\x00\x09\x0c\x69\x36\x34\x5f\x6c\x6f\x61\x64\x31\x36\x5f\x73\x00\x0a\x0c\x69\x36\x34\x5f\x6c\x6f\x61\x64\x31\x36\x5f\x75\x00\x0b\x0c\x69\x36\x34\x5f\x6c\x6f\x61\x64\x33\x32\x5f\x73\x00\x0c\x0c\x69\x36\x34\x5f\x6c\x6f\x61\x64\x33\x32\x5f\x75\x00\x0d\x08\x61\x73\x73\x65\x72\x74\x5f\x30\x00\x0e\x08\x61\x73\x73\x65\x72\x74\x5f\x31\x00\x0f\x08\x61\x73\x73\x65\x72\x74\x5f\x32\x00\x10\x08\x61\x73\x73\x65\x72\x74\x5f\x33\x00\x11\x08\x61\x73\x73\x65\x72\x74\x5f\x34\x00\x12\x08\x61\x73\x73\x65\x72\x74\x5f\x35\x00\x13\x08\x61\x73\x73\x65\x72\x74\x5f\x36\x00\x14\x08\x61\x73\x73\x65\x72\x74\x5f\x37\x00\x15\x08\x61\x73\x73\x65\x72\x74\x5f\x38\x00\x16\x08\x61\x73\x73\x65\x72\x74\x5f\x39\x00\x17\x09\x61\x73\x73\x65\x72\x74\x5f\x31\x30\x00\x18\x09\x61\x73\x73\x65\x72\x74\x5f\x31\x31\x00\x19\x0a\x9a\x05\x1a\x4e\x00\x41\x00\x2d\x00\x00\x41\xc1\x00\x46\x41\x03\x2d\x00\x00\x41\xa7\x01\x46\x71\x41\x06\x2d\x00\x00\x41\x00\x46\x41\x13\x2d\x00\x00\x41\x00\x46\x71\x71\x41\x14\x2d\x00\x00\x41\xd7\x00\x46\x41\x17\x2d\x00\x00\x41\xcd\x00\x46\x71\x41\x18\x2d\x00\x00\x41\x00\x46\x41\xff\x07\x2d\x00\x00\x41\x00\x46\x71\x71\x71\x0b\x43\x01\x03\x7f\x41\x0a\x21\x00\x02\x40\x03\x40\x20\x00\x41\x00\x46\x04\x40\x0c\x02\x0b\x20\x00\x41\x04\x6c\x21\x02\x20\x02\x20\x00\x36\x02\x00\x20\x02\x28\x02\x00\x21\x01\x20\x00\x20\x01\x47\x04\x40\x41\x00\x0f\x0b\x20\x00\x41\x01\x6b\x21\x00\x0c\x00\x0b\x0b\x41\x01\x0b\x43\x02\x01\x7f\x02\x7c\x41\x0a\x21\x00\x02\x40\x03\x40\x20\x00\x41\x00\x46\x04\x40\x0c\x02\x0b\x20\x00\xb7\x21\x02\x20\x00\x20\x02\x39\x00\x00\x20\x00\x2b\x00\x00\x21\x01\x20\x02\x20\x01\x62\x04\x40\x41\x00\x0f\x0b\x20\x00\x41\x01\x6b\x21\x00\x0c\x00\x0b\x0b\x41\x01\x0b\x38\x00\x41\x08\x42\xc7\x9f\x7f\x37\x03\x00\x41\x08\x2b\x03\x00\x42\xc7\x9f\x7f\xbf\x61\x04\x40\x44\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0b\x41\x09\x42\x00\x37\x00\x00\x41\x0f\x41\xc5\x80\x01\x3b\x00\x00\x41\x09\x2b\x00\x00\x0b\x0e\x00\x41\x08\x20\x00\x3a\x00\x00\x41\x08\x2c\x00\x00\x0b\x0e\x00\x41\x08\x20\x00\x3a\x00\x00\x41\x08\x2d\x00\x00\x0b\x0e\x00\x41\x08\x20\x00\x3b\x01\x00\x41\x08\x2e\x01\x00\x0b\x0e\x00\x41\x08\x20\x00\x3b\x01\x00\x41\x08\x2f\x01\x00\x0b\x0e\x00\x41\x08\x20\x00\x3c\x00\x00\x41\x08\x30\x00\x00\x0b\x0e\x00\x41\x08\x20\x00\x3c\x00\x00\x41\x08\x31\x00\x00\x0b\x0e\x00\x41\x08\x20\x00\x3d\x01\x00\x41\x08\x32\x01\x00\x0b\x0e\x00\x41\x08\x20\x00\x3d\x01\x00\x41\x08\x33\x01\x00\x0b\x0e\x00\x41\x08\x20\x00\x3e\x02\x00\x41\x08\x34\x02\x00\x0b\x0e\x00\x41\x08\x20\x00\x3e\x02\x00\x41\x08\x35\x02\x00\x0b\x11\x00\x02\x40\x42\x7f\x10\x08\x42\x7f\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x12\x00\x02\x40\x42\x7f\x10\x09\x42\xff\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x11\x00\x02\x40\x42\x7f\x10\x0a\x42\x7f\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x13\x00\x02\x40\x42\x7f\x10\x0b\x42\xff\xff\x03\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x11\x00\x02\x40\x42\x7f\x10\x0c\x42\x7f\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x15\x00\x02\x40\x42\x7f\x10\x0d\x42\xff\xff\xff\xff\x0f\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x13\x00\x02\x40\x42\xe4\x00\x10\x08\x42\xe4\x00\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x13\x00\x02\x40\x42\xc8\x01\x10\x09\x42\xc8\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x15\x00\x02\x40\x42\xa0\x9c\x01\x10\x0a\x42\xa0\x9c\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x15\x00\x02\x40\x42\xc0\xb8\x02\x10\x0b\x42\xc0\xb8\x02\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x15\x00\x02\x40\x42\xa0\x9c\x01\x10\x0c\x42\xa0\x9c\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x15\x00\x02\x40\x42\xc0\xb8\x02\x10\x0d\x42\xc0\xb8\x02\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x0b\x14\x02\x00\x41\x00\x0b\x05\x41\x42\x43\xa7\x44\x00\x41\x14\x0b\x04\x57\x41\x53\x4d");
assert_return(() => $$.exports["data"](), 1);
assert_return(() => $$.exports["aligned"](), 1);
assert_return(() => $$.exports["unaligned"](), 1);
assert_return(() => $$.exports["cast"](), 42.0);
assert_return(() => $$.exports["i32_load8_s"](-1), -1);
assert_return(() => $$.exports["i32_load8_u"](-1), 255);
assert_return(() => $$.exports["i32_load16_s"](-1), -1);
assert_return(() => $$.exports["i32_load16_u"](-1), 65535);
assert_return(() => $$.exports["i32_load8_s"](100), 100);
assert_return(() => $$.exports["i32_load8_u"](200), 200);
assert_return(() => $$.exports["i32_load16_s"](20000), 20000);
assert_return(() => $$.exports["i32_load16_u"](40000), 40000);
assert_return(() => $$.exports["assert_0"]());
assert_return(() => $$.exports["assert_1"]());
assert_return(() => $$.exports["assert_2"]());
assert_return(() => $$.exports["assert_3"]());
assert_return(() => $$.exports["assert_4"]());
assert_return(() => $$.exports["assert_5"]());
assert_return(() => $$.exports["assert_6"]());
assert_return(() => $$.exports["assert_7"]());
assert_return(() => $$.exports["assert_8"]());
assert_return(() => $$.exports["assert_9"]());
assert_return(() => $$.exports["assert_10"]());
assert_return(() => $$.exports["assert_11"]());
