| 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"); |