blob: 6ee09fd519b72d7f2a499e71881063e9344aa230 [file] [log] [blame]
let $1 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x1c\x05\x60\x01\x7f\x01\x7f\x60\x01\x7e\x01\x7e\x60\x02\x6b\x00\x7f\x01\x7f\x60\x00\x01\x7f\x60\x02\x7e\x7e\x01\x7e\x03\x0b\x0a\x02\x00\x00\x00\x03\x01\x04\x01\x01\x01\x06\x1f\x05\x6b\x01\x00\xd2\x05\x0b\x6b\x04\x00\xd2\x06\x0b\x6b\x01\x00\xd2\x07\x0b\x6b\x01\x00\xd2\x08\x0b\x6b\x01\x00\xd2\x09\x0b\x07\x31\x07\x03\x72\x75\x6e\x00\x03\x04\x6e\x75\x6c\x6c\x00\x04\x03\x66\x61\x63\x00\x05\x07\x66\x61\x63\x2d\x61\x63\x63\x00\x06\x03\x66\x69\x62\x00\x07\x04\x65\x76\x65\x6e\x00\x08\x03\x6f\x64\x64\x00\x09\x09\x06\x01\x03\x00\x02\x01\x02\x0a\xaf\x01\x0a\x07\x00\x20\x01\x20\x00\x14\x0b\x07\x00\x20\x00\x20\x00\x6c\x0b\x07\x00\x41\x00\x20\x00\x6b\x0b\x15\x01\x02\x6c\x00\xd2\x01\x21\x01\xd2\x02\x21\x02\x20\x00\x20\x01\x14\x20\x02\x14\x0b\x07\x00\x41\x01\xd0\x00\x14\x0b\x16\x00\x20\x00\x50\x04\x7e\x42\x01\x05\x20\x00\x20\x00\x42\x01\x7d\x23\x00\x14\x7e\x0b\x0b\x18\x00\x20\x00\x50\x04\x7e\x20\x01\x05\x20\x00\x42\x01\x7d\x20\x00\x20\x01\x7e\x23\x01\x14\x0b\x0b\x1e\x00\x20\x00\x42\x01\x58\x04\x7e\x42\x01\x05\x20\x00\x42\x02\x7d\x23\x02\x14\x20\x00\x42\x01\x7d\x23\x02\x14\x7c\x0b\x0b\x13\x00\x20\x00\x50\x04\x7e\x42\x2c\x05\x20\x00\x42\x01\x7d\x23\x04\x14\x0b\x0b\x14\x00\x20\x00\x50\x04\x7e\x42\xe3\x00\x05\x20\x00\x42\x01\x7d\x23\x03\x14\x0b\x0b");
// call_ref.wast:94
assert_return(() => call($1, "run", [0]), 0);
// call_ref.wast:95
assert_return(() => call($1, "run", [3]), -9);
// call_ref.wast:97
assert_trap(() => call($1, "null", []));
// call_ref.wast:99
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x66\x61\x63\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x15\x01\x13\x00\x02\x40\x42\x00\x10\x00\x01\x42\x01\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fac" (i64.const 0)) (i64.const 1))
// call_ref.wast:100
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x66\x61\x63\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x15\x01\x13\x00\x02\x40\x42\x01\x10\x00\x01\x42\x01\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fac" (i64.const 1)) (i64.const 1))
// call_ref.wast:101
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x66\x61\x63\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x16\x01\x14\x00\x02\x40\x42\x05\x10\x00\x01\x42\xf8\x00\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fac" (i64.const 5)) (i64.const 120))
// call_ref.wast:102
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x66\x61\x63\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x1e\x01\x1c\x00\x02\x40\x42\x19\x10\x00\x01\x42\x80\x80\x80\xde\x87\x92\xec\xcf\xe1\x00\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fac" (i64.const 25)) (i64.const 7034535277573963776))
// call_ref.wast:103
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x0a\x02\x60\x00\x00\x60\x02\x7e\x7e\x01\x7e\x02\x0e\x01\x02\x24\x31\x07\x66\x61\x63\x2d\x61\x63\x63\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x17\x01\x15\x00\x02\x40\x42\x00\x42\x01\x10\x00\x01\x42\x01\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fac-acc" (i64.const 0) (i64.const 1)) (i64.const 1))
// call_ref.wast:104
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x0a\x02\x60\x00\x00\x60\x02\x7e\x7e\x01\x7e\x02\x0e\x01\x02\x24\x31\x07\x66\x61\x63\x2d\x61\x63\x63\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x17\x01\x15\x00\x02\x40\x42\x01\x42\x01\x10\x00\x01\x42\x01\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fac-acc" (i64.const 1) (i64.const 1)) (i64.const 1))
// call_ref.wast:105
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x0a\x02\x60\x00\x00\x60\x02\x7e\x7e\x01\x7e\x02\x0e\x01\x02\x24\x31\x07\x66\x61\x63\x2d\x61\x63\x63\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x18\x01\x16\x00\x02\x40\x42\x05\x42\x01\x10\x00\x01\x42\xf8\x00\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fac-acc" (i64.const 5) (i64.const 1)) (i64.const 120))
// call_ref.wast:106
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x0a\x02\x60\x00\x00\x60\x02\x7e\x7e\x01\x7e\x02\x0e\x01\x02\x24\x31\x07\x66\x61\x63\x2d\x61\x63\x63\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x20\x01\x1e\x00\x02\x40\x42\x19\x42\x01\x10\x00\x01\x42\x80\x80\x80\xde\x87\x92\xec\xcf\xe1\x00\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fac-acc" (i64.const 25) (i64.const 1)) (i64.const 7034535277573963776)
// call_ref.wast:111
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x66\x69\x62\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x15\x01\x13\x00\x02\x40\x42\x00\x10\x00\x01\x42\x01\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fib" (i64.const 0)) (i64.const 1))
// call_ref.wast:112
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x66\x69\x62\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x15\x01\x13\x00\x02\x40\x42\x01\x10\x00\x01\x42\x01\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fib" (i64.const 1)) (i64.const 1))
// call_ref.wast:113
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x66\x69\x62\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x15\x01\x13\x00\x02\x40\x42\x02\x10\x00\x01\x42\x02\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fib" (i64.const 2)) (i64.const 2))
// call_ref.wast:114
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x66\x69\x62\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x15\x01\x13\x00\x02\x40\x42\x05\x10\x00\x01\x42\x08\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fib" (i64.const 5)) (i64.const 8))
// call_ref.wast:115
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x66\x69\x62\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x17\x01\x15\x00\x02\x40\x42\x14\x10\x00\x01\x42\xc2\xd5\x00\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "fib" (i64.const 20)) (i64.const 10946))
// call_ref.wast:117
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0b\x01\x02\x24\x31\x04\x65\x76\x65\x6e\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x15\x01\x13\x00\x02\x40\x42\x00\x10\x00\x01\x42\x2c\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "even" (i64.const 0)) (i64.const 44))
// call_ref.wast:118
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0b\x01\x02\x24\x31\x04\x65\x76\x65\x6e\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x16\x01\x14\x00\x02\x40\x42\x01\x10\x00\x01\x42\xe3\x00\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "even" (i64.const 1)) (i64.const 99))
// call_ref.wast:119
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0b\x01\x02\x24\x31\x04\x65\x76\x65\x6e\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x16\x01\x14\x00\x02\x40\x42\xe4\x00\x10\x00\x01\x42\x2c\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "even" (i64.const 100)) (i64.const 44))
// call_ref.wast:120
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0b\x01\x02\x24\x31\x04\x65\x76\x65\x6e\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x17\x01\x15\x00\x02\x40\x42\xcd\x00\x10\x00\x01\x42\xe3\x00\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "even" (i64.const 77)) (i64.const 99))
// call_ref.wast:121
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x6f\x64\x64\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x16\x01\x14\x00\x02\x40\x42\x00\x10\x00\x01\x42\xe3\x00\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "odd" (i64.const 0)) (i64.const 99))
// call_ref.wast:122
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x6f\x64\x64\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x15\x01\x13\x00\x02\x40\x42\x01\x10\x00\x01\x42\x2c\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "odd" (i64.const 1)) (i64.const 44))
// call_ref.wast:123
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x6f\x64\x64\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x17\x01\x15\x00\x02\x40\x42\xc8\x01\x10\x00\x01\x42\xe3\x00\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "odd" (i64.const 200)) (i64.const 99))
// call_ref.wast:124
run(() => call(instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x09\x02\x60\x00\x00\x60\x01\x7e\x01\x7e\x02\x0a\x01\x02\x24\x31\x03\x6f\x64\x64\x00\x01\x03\x02\x01\x00\x07\x07\x01\x03\x72\x75\x6e\x00\x01\x0a\x16\x01\x14\x00\x02\x40\x42\xcd\x00\x10\x00\x01\x42\x2c\x01\x51\x45\x0d\x00\x0f\x0b\x00\x0b", exports("$1", $1)), "run", [])); // (assert_return (invoke "odd" (i64.const 77)) (i64.const 44))
// Unreachable typing.
// call_ref.wast:129
let $2 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x05\x01\x60\x00\x01\x7f\x03\x02\x01\x00\x07\x0f\x01\x0b\x75\x6e\x72\x65\x61\x63\x68\x61\x62\x6c\x65\x00\x00\x0a\x06\x01\x04\x00\x00\x14\x0b");
assert_trap(() => call($2, "unreachable", []));
// call_ref.wast:137
let $3 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x0a\x02\x60\x01\x7f\x01\x7f\x60\x00\x01\x7f\x03\x03\x02\x00\x01\x07\x0f\x01\x0b\x75\x6e\x72\x65\x61\x63\x68\x61\x62\x6c\x65\x00\x01\x09\x05\x01\x03\x00\x01\x00\x0a\x0d\x02\x04\x00\x20\x00\x0b\x06\x00\x00\xd2\x00\x14\x0b");
assert_trap(() => call($3, "unreachable", []));
// call_ref.wast:149
let $4 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x0a\x02\x60\x01\x7f\x01\x7f\x60\x00\x01\x7f\x03\x03\x02\x00\x01\x07\x0f\x01\x0b\x75\x6e\x72\x65\x61\x63\x68\x61\x62\x6c\x65\x00\x01\x09\x05\x01\x03\x00\x01\x00\x0a\x12\x02\x04\x00\x20\x00\x0b\x0b\x00\x00\x41\x00\xd2\x00\x14\x1a\x41\x00\x0b");
assert_trap(() => call($4, "unreachable", []));
// call_ref.wast:164
// FIXME: https://bugs.webkit.org/show_bug.cgi?id=220278.
// assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x0a\x02\x60\x01\x7f\x01\x7f\x60\x00\x01\x7f\x03\x03\x02\x00\x01\x07\x0f\x01\x0b\x75\x6e\x72\x65\x61\x63\x68\x61\x62\x6c\x65\x00\x01\x09\x05\x01\x03\x00\x01\x00\x0a\x0f\x02\x04\x00\x20\x00\x0b\x08\x00\x00\x42\x00\xd2\x00\x14\x0b");
// call_ref.wast:179
// FIXME: https://bugs.webkit.org/show_bug.cgi?id=220278.
// assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x0a\x02\x60\x01\x7f\x01\x7f\x60\x00\x01\x7f\x03\x03\x02\x00\x01\x07\x0f\x01\x0b\x75\x6e\x72\x65\x61\x63\x68\x61\x62\x6c\x65\x00\x01\x09\x05\x01\x03\x00\x01\x00\x0a\x10\x02\x04\x00\x20\x00\x0b\x09\x00\x00\xd2\x00\x14\x1a\x42\x00\x0b");
// call_ref.wast:195
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x05\x01\x60\x01\x6f\x00\x03\x02\x01\x00\x0a\x07\x01\x05\x00\x20\x00\x14\x0b");