This repository was archived by the owner on Mar 3, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Please refer to this issue: WebAssembly/threads#195 Signed-off-by: YiYing He <yiying@secondstate.io>
- Loading branch information
Showing
343 changed files
with
2,589 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
{"source_filename": "atomic_wait_notify.wast", | ||
"commands": [ | ||
{"type": "module", "line": 2, "filename": "atomic_wait_notify.0.wasm"}, | ||
{"type": "action", "line": 15, "action": {"type": "invoke", "field": "init", "args": [{"type": "i64", "value": "281474976710655"}]}, "expected": []}, | ||
{"type": "assert_return", "line": 18, "action": {"type": "invoke", "field": "memory.atomic.wait32", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}, {"type": "i64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, | ||
{"type": "assert_return", "line": 19, "action": {"type": "invoke", "field": "memory.atomic.wait64", "args": [{"type": "i32", "value": "0"}, {"type": "i64", "value": "0"}, {"type": "i64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, | ||
{"type": "assert_return", "line": 22, "action": {"type": "invoke", "field": "memory.atomic.wait32", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "4294967295"}, {"type": "i64", "value": "10"}]}, "expected": [{"type": "i32", "value": "2"}]}, | ||
{"type": "assert_return", "line": 23, "action": {"type": "invoke", "field": "memory.atomic.wait64", "args": [{"type": "i32", "value": "0"}, {"type": "i64", "value": "281474976710655"}, {"type": "i64", "value": "10"}]}, "expected": [{"type": "i32", "value": "2"}]}, | ||
{"type": "assert_return", "line": 26, "action": {"type": "invoke", "field": "memory.atomic.notify", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, | ||
{"type": "assert_return", "line": 27, "action": {"type": "invoke", "field": "memory.atomic.notify", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "0"}]}, | ||
{"type": "assert_trap", "line": 30, "action": {"type": "invoke", "field": "memory.atomic.wait32", "args": [{"type": "i32", "value": "65536"}, {"type": "i32", "value": "0"}, {"type": "i64", "value": "0"}]}, "text": "out of bounds memory access", "expected": [{"type": "i32"}]}, | ||
{"type": "assert_trap", "line": 31, "action": {"type": "invoke", "field": "memory.atomic.wait64", "args": [{"type": "i32", "value": "65536"}, {"type": "i64", "value": "0"}, {"type": "i64", "value": "0"}]}, "text": "out of bounds memory access", "expected": [{"type": "i32"}]}, | ||
{"type": "assert_trap", "line": 34, "action": {"type": "invoke", "field": "memory.atomic.notify", "args": [{"type": "i32", "value": "65536"}, {"type": "i32", "value": "0"}]}, "text": "out of bounds memory access", "expected": [{"type": "i32"}]}, | ||
{"type": "assert_trap", "line": 37, "action": {"type": "invoke", "field": "memory.atomic.wait32", "args": [{"type": "i32", "value": "65531"}, {"type": "i32", "value": "0"}, {"type": "i64", "value": "0"}]}, "text": "unaligned atomic", "expected": [{"type": "i32"}]}, | ||
{"type": "assert_trap", "line": 38, "action": {"type": "invoke", "field": "memory.atomic.wait64", "args": [{"type": "i32", "value": "65524"}, {"type": "i64", "value": "0"}, {"type": "i64", "value": "0"}]}, "text": "unaligned atomic", "expected": [{"type": "i32"}]}, | ||
{"type": "assert_trap", "line": 40, "action": {"type": "invoke", "field": "memory.atomic.notify", "args": [{"type": "i32", "value": "65531"}, {"type": "i32", "value": "0"}]}, "text": "unaligned atomic", "expected": [{"type": "i32"}]}, | ||
{"type": "module", "line": 43, "filename": "atomic_wait_notify.1.wasm"}, | ||
{"type": "action", "line": 56, "action": {"type": "invoke", "field": "init", "args": [{"type": "i64", "value": "281474976710655"}]}, "expected": []}, | ||
{"type": "assert_trap", "line": 58, "action": {"type": "invoke", "field": "memory.atomic.wait32", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}, {"type": "i64", "value": "0"}]}, "text": "expected shared memory", "expected": [{"type": "i32"}]}, | ||
{"type": "assert_trap", "line": 59, "action": {"type": "invoke", "field": "memory.atomic.wait64", "args": [{"type": "i32", "value": "0"}, {"type": "i64", "value": "0"}, {"type": "i64", "value": "0"}]}, "text": "expected shared memory", "expected": [{"type": "i32"}]}, | ||
{"type": "assert_return", "line": 62, "action": {"type": "invoke", "field": "memory.atomic.notify", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, | ||
{"type": "assert_trap", "line": 65, "action": {"type": "invoke", "field": "memory.atomic.notify", "args": [{"type": "i32", "value": "65536"}, {"type": "i32", "value": "0"}]}, "text": "out of bounds memory access", "expected": [{"type": "i32"}]}, | ||
{"type": "assert_trap", "line": 66, "action": {"type": "invoke", "field": "memory.atomic.notify", "args": [{"type": "i32", "value": "65531"}, {"type": "i32", "value": "0"}]}, "text": "unaligned atomic", "expected": [{"type": "i32"}]}, | ||
{"type": "module", "line": 69, "name": "$Mem", "filename": "atomic_wait_notify.2.wasm"}]} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
;; wait/notify | ||
(module | ||
(memory 1 1 shared) | ||
|
||
(func (export "init") (param $value i64) (i64.store (i32.const 0) (local.get $value))) | ||
|
||
(func (export "memory.atomic.notify") (param $addr i32) (param $count i32) (result i32) | ||
(memory.atomic.notify (local.get 0) (local.get 1))) | ||
(func (export "memory.atomic.wait32") (param $addr i32) (param $expected i32) (param $timeout i64) (result i32) | ||
(memory.atomic.wait32 (local.get 0) (local.get 1) (local.get 2))) | ||
(func (export "memory.atomic.wait64") (param $addr i32) (param $expected i64) (param $timeout i64) (result i32) | ||
(memory.atomic.wait64 (local.get 0) (local.get 1) (local.get 2))) | ||
) | ||
|
||
(invoke "init" (i64.const 0xffffffffffff)) | ||
|
||
;; wait returns immediately if values do not match | ||
(assert_return (invoke "memory.atomic.wait32" (i32.const 0) (i32.const 0) (i64.const 0)) (i32.const 1)) | ||
(assert_return (invoke "memory.atomic.wait64" (i32.const 0) (i64.const 0) (i64.const 0)) (i32.const 1)) | ||
|
||
;; wait times out if values do match and timeout is small | ||
(assert_return (invoke "memory.atomic.wait32" (i32.const 0) (i32.const 0xffffffff) (i64.const 10)) (i32.const 2)) | ||
(assert_return (invoke "memory.atomic.wait64" (i32.const 0) (i64.const 0xffffffffffff) (i64.const 10)) (i32.const 2)) | ||
|
||
;; notify always returns | ||
(assert_return (invoke "memory.atomic.notify" (i32.const 0) (i32.const 0)) (i32.const 0)) | ||
(assert_return (invoke "memory.atomic.notify" (i32.const 0) (i32.const 10)) (i32.const 0)) | ||
|
||
;; OOB wait and notify always trap | ||
(assert_trap (invoke "memory.atomic.wait32" (i32.const 65536) (i32.const 0) (i64.const 0)) "out of bounds memory access") | ||
(assert_trap (invoke "memory.atomic.wait64" (i32.const 65536) (i64.const 0) (i64.const 0)) "out of bounds memory access") | ||
|
||
;; in particular, notify always traps even if waking 0 threads | ||
(assert_trap (invoke "memory.atomic.notify" (i32.const 65536) (i32.const 0)) "out of bounds memory access") | ||
|
||
;; similarly, unaligned wait and notify always trap | ||
(assert_trap (invoke "memory.atomic.wait32" (i32.const 65531) (i32.const 0) (i64.const 0)) "unaligned atomic") | ||
(assert_trap (invoke "memory.atomic.wait64" (i32.const 65524) (i64.const 0) (i64.const 0)) "unaligned atomic") | ||
|
||
(assert_trap (invoke "memory.atomic.notify" (i32.const 65531) (i32.const 0)) "unaligned atomic") | ||
|
||
;; atomic.wait traps on unshared memory even if it wouldn't block | ||
(module | ||
(memory 1 1) | ||
|
||
(func (export "init") (param $value i64) (i64.store (i32.const 0) (local.get $value))) | ||
|
||
(func (export "memory.atomic.notify") (param $addr i32) (param $count i32) (result i32) | ||
(memory.atomic.notify (local.get 0) (local.get 1))) | ||
(func (export "memory.atomic.wait32") (param $addr i32) (param $expected i32) (param $timeout i64) (result i32) | ||
(memory.atomic.wait32 (local.get 0) (local.get 1) (local.get 2))) | ||
(func (export "memory.atomic.wait64") (param $addr i32) (param $expected i64) (param $timeout i64) (result i32) | ||
(memory.atomic.wait64 (local.get 0) (local.get 1) (local.get 2))) | ||
) | ||
|
||
(invoke "init" (i64.const 0xffffffffffff)) | ||
|
||
(assert_trap (invoke "memory.atomic.wait32" (i32.const 0) (i32.const 0) (i64.const 0)) "expected shared memory") | ||
(assert_trap (invoke "memory.atomic.wait64" (i32.const 0) (i64.const 0) (i64.const 0)) "expected shared memory") | ||
|
||
;; notify still works | ||
(assert_return (invoke "memory.atomic.notify" (i32.const 0) (i32.const 0)) (i32.const 0)) | ||
|
||
;; OOB and unaligned notify still trap | ||
(assert_trap (invoke "memory.atomic.notify" (i32.const 65536) (i32.const 0)) "out of bounds memory access") | ||
(assert_trap (invoke "memory.atomic.notify" (i32.const 65531) (i32.const 0)) "unaligned atomic") | ||
|
||
;; test that looping notify eventually unblocks a parallel waiting thread | ||
(module $Mem | ||
(memory (export "shared") 1 1 shared) | ||
) | ||
|
||
(thread $T1 (shared (module $Mem)) | ||
(register "mem" $Mem) | ||
(module | ||
(memory (import "mem" "shared") 1 10 shared) | ||
(func (export "run") (result i32) | ||
(memory.atomic.wait32 (i32.const 0) (i32.const 0) (i64.const -1)) | ||
) | ||
) | ||
;; test that this thread eventually gets unblocked | ||
(assert_return (invoke "run") (i32.const 0)) | ||
) | ||
|
||
(thread $T2 (shared (module $Mem)) | ||
(register "mem" $Mem) | ||
(module | ||
(memory (import "mem" "shared") 1 1 shared) | ||
(func (export "notify-0") (result i32) | ||
(memory.atomic.notify (i32.const 0) (i32.const 0)) | ||
) | ||
(func (export "notify-1-while") | ||
(loop | ||
(i32.const 1) | ||
(memory.atomic.notify (i32.const 0) (i32.const 1)) | ||
(i32.ne) | ||
(br_if 0) | ||
) | ||
) | ||
) | ||
;; notifying with a count of 0 will not unblock | ||
(assert_return (invoke "notify-0") (i32.const 0)) | ||
;; loop until something is notified | ||
(assert_return (invoke "notify-1-while")) | ||
) | ||
|
||
(wait $T1) | ||
(wait $T2) |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
{"source_filename": "exports.wast", | ||
"commands": [ | ||
{"type": "module", "line": 3, "filename": "exports.0.wasm"}, | ||
{"type": "module", "line": 4, "filename": "exports.1.wasm"}, | ||
{"type": "module", "line": 5, "filename": "exports.2.wasm"}, | ||
{"type": "module", "line": 7, "filename": "exports.3.wasm"}, | ||
{"type": "module", "line": 8, "filename": "exports.4.wasm"}, | ||
{"type": "module", "line": 9, "filename": "exports.5.wasm"}, | ||
{"type": "module", "line": 10, "filename": "exports.6.wasm"}, | ||
{"type": "module", "line": 11, "filename": "exports.7.wasm"}, | ||
{"type": "module", "line": 12, "filename": "exports.8.wasm"}, | ||
{"type": "module", "line": 13, "filename": "exports.9.wasm"}, | ||
{"type": "module", "line": 14, "filename": "exports.10.wasm"}, | ||
{"type": "module", "line": 16, "name": "$Func", "filename": "exports.11.wasm"}, | ||
{"type": "assert_return", "line": 22, "action": {"type": "invoke", "field": "e", "args": [{"type": "i32", "value": "42"}]}, "expected": [{"type": "i32", "value": "43"}]}, | ||
{"type": "assert_return", "line": 23, "action": {"type": "invoke", "module": "$Func", "field": "e", "args": [{"type": "i32", "value": "42"}]}, "expected": [{"type": "i32", "value": "43"}]}, | ||
{"type": "module", "line": 24, "filename": "exports.12.wasm"}, | ||
{"type": "module", "line": 25, "name": "$Other1", "filename": "exports.13.wasm"}, | ||
{"type": "assert_return", "line": 26, "action": {"type": "invoke", "module": "$Func", "field": "e", "args": [{"type": "i32", "value": "42"}]}, "expected": [{"type": "i32", "value": "43"}]}, | ||
{"type": "module", "line": 28, "filename": "exports.14.wasm"}, | ||
{"type": "assert_return", "line": 34, "action": {"type": "invoke", "field": "a", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, | ||
{"type": "assert_return", "line": 35, "action": {"type": "invoke", "field": "b", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, | ||
{"type": "assert_return", "line": 36, "action": {"type": "invoke", "field": "c", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, | ||
{"type": "assert_invalid", "line": 39, "filename": "exports.15.wasm", "text": "unknown function", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 43, "filename": "exports.16.wasm", "text": "unknown function", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 47, "filename": "exports.17.wasm", "text": "unknown function", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 51, "filename": "exports.18.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 55, "filename": "exports.19.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 59, "filename": "exports.20.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 63, "filename": "exports.21.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 67, "filename": "exports.22.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "module", "line": 74, "filename": "exports.23.wasm"}, | ||
{"type": "module", "line": 75, "filename": "exports.24.wasm"}, | ||
{"type": "module", "line": 76, "filename": "exports.25.wasm"}, | ||
{"type": "module", "line": 78, "filename": "exports.26.wasm"}, | ||
{"type": "module", "line": 79, "filename": "exports.27.wasm"}, | ||
{"type": "module", "line": 80, "filename": "exports.28.wasm"}, | ||
{"type": "module", "line": 81, "filename": "exports.29.wasm"}, | ||
{"type": "module", "line": 82, "filename": "exports.30.wasm"}, | ||
{"type": "module", "line": 83, "filename": "exports.31.wasm"}, | ||
{"type": "module", "line": 85, "name": "$Global", "filename": "exports.32.wasm"}, | ||
{"type": "assert_return", "line": 89, "action": {"type": "get", "field": "e"}, "expected": [{"type": "i32", "value": "42"}]}, | ||
{"type": "assert_return", "line": 90, "action": {"type": "get", "module": "$Global", "field": "e"}, "expected": [{"type": "i32", "value": "42"}]}, | ||
{"type": "module", "line": 91, "filename": "exports.33.wasm"}, | ||
{"type": "module", "line": 92, "name": "$Other2", "filename": "exports.34.wasm"}, | ||
{"type": "assert_return", "line": 93, "action": {"type": "get", "module": "$Global", "field": "e"}, "expected": [{"type": "i32", "value": "42"}]}, | ||
{"type": "assert_invalid", "line": 96, "filename": "exports.35.wasm", "text": "unknown global", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 100, "filename": "exports.36.wasm", "text": "unknown global", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 104, "filename": "exports.37.wasm", "text": "unknown global", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 108, "filename": "exports.38.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 112, "filename": "exports.39.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 116, "filename": "exports.40.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 120, "filename": "exports.41.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 124, "filename": "exports.42.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "module", "line": 131, "filename": "exports.43.wasm"}, | ||
{"type": "module", "line": 132, "filename": "exports.44.wasm"}, | ||
{"type": "module", "line": 133, "filename": "exports.45.wasm"}, | ||
{"type": "module", "line": 135, "filename": "exports.46.wasm"}, | ||
{"type": "module", "line": 136, "filename": "exports.47.wasm"}, | ||
{"type": "module", "line": 137, "filename": "exports.48.wasm"}, | ||
{"type": "module", "line": 138, "filename": "exports.49.wasm"}, | ||
{"type": "module", "line": 139, "filename": "exports.50.wasm"}, | ||
{"type": "module", "line": 140, "filename": "exports.51.wasm"}, | ||
{"type": "module", "line": 141, "filename": "exports.52.wasm"}, | ||
{"type": "module", "line": 142, "filename": "exports.53.wasm"}, | ||
{"type": "module", "line": 143, "filename": "exports.54.wasm"}, | ||
{"type": "module", "line": 144, "filename": "exports.55.wasm"}, | ||
{"type": "module", "line": 145, "filename": "exports.56.wasm"}, | ||
{"type": "module", "line": 146, "filename": "exports.57.wasm"}, | ||
{"type": "assert_invalid", "line": 151, "filename": "exports.58.wasm", "text": "unknown table", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 155, "filename": "exports.59.wasm", "text": "unknown table", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 159, "filename": "exports.60.wasm", "text": "unknown table", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 163, "filename": "exports.61.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 167, "filename": "exports.62.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 171, "filename": "exports.63.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 175, "filename": "exports.64.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 179, "filename": "exports.65.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "module", "line": 186, "filename": "exports.66.wasm"}, | ||
{"type": "module", "line": 187, "filename": "exports.67.wasm"}, | ||
{"type": "module", "line": 191, "filename": "exports.68.wasm"}, | ||
{"type": "module", "line": 192, "filename": "exports.69.wasm"}, | ||
{"type": "module", "line": 193, "filename": "exports.70.wasm"}, | ||
{"type": "module", "line": 194, "filename": "exports.71.wasm"}, | ||
{"type": "module", "line": 195, "filename": "exports.72.wasm"}, | ||
{"type": "module", "line": 196, "filename": "exports.73.wasm"}, | ||
{"type": "module", "line": 197, "filename": "exports.74.wasm"}, | ||
{"type": "module", "line": 198, "filename": "exports.75.wasm"}, | ||
{"type": "module", "line": 199, "filename": "exports.76.wasm"}, | ||
{"type": "module", "line": 200, "filename": "exports.77.wasm"}, | ||
{"type": "module", "line": 201, "filename": "exports.78.wasm"}, | ||
{"type": "module", "line": 202, "filename": "exports.79.wasm"}, | ||
{"type": "module", "line": 204, "filename": "exports.80.wasm"}, | ||
{"type": "module", "line": 205, "filename": "exports.81.wasm"}, | ||
{"type": "module", "line": 206, "filename": "exports.82.wasm"}, | ||
{"type": "module", "line": 207, "filename": "exports.83.wasm"}, | ||
{"type": "module", "line": 208, "filename": "exports.84.wasm"}, | ||
{"type": "module", "line": 209, "filename": "exports.85.wasm"}, | ||
{"type": "assert_invalid", "line": 214, "filename": "exports.86.wasm", "text": "unknown memory", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 218, "filename": "exports.87.wasm", "text": "unknown memory", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 222, "filename": "exports.88.wasm", "text": "unknown memory", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 226, "filename": "exports.89.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 235, "filename": "exports.90.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 239, "filename": "exports.91.wasm", "text": "duplicate export name", "module_type": "binary"}, | ||
{"type": "assert_invalid", "line": 243, "filename": "exports.92.wasm", "text": "duplicate export name", "module_type": "binary"}]} |
Oops, something went wrong.