| ;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited. | |
| ;; RUN: wasm-opt %s -all -o %t.text.wast -g -S | |
| ;; RUN: wasm-as %s -all -g -o %t.wasm | |
| ;; RUN: wasm-dis %t.wasm -all -o %t.bin.wast | |
| ;; RUN: wasm-as %s -all -o %t.nodebug.wasm | |
| ;; RUN: wasm-dis %t.nodebug.wasm -all -o %t.bin.nodebug.wast | |
| ;; RUN: cat %t.text.wast | filecheck %s --check-prefix=CHECK-TEXT | |
| ;; RUN: cat %t.bin.wast | filecheck %s --check-prefix=CHECK-BIN | |
| ;; RUN: cat %t.bin.nodebug.wast | filecheck %s --check-prefix=CHECK-BIN-NODEBUG | |
| (module | |
| ;; CHECK-TEXT: (type $f1 (func)) | |
| ;; CHECK-TEXT: (type $k1 (cont $f1)) | |
| ;; CHECK-TEXT: (type $2 (func (param (ref $k1)))) | |
| ;; CHECK-TEXT: (type $ft1 (func (param i32))) | |
| ;; CHECK-TEXT: (type $ct1 (sub (cont $ft1))) | |
| ;; CHECK-TEXT: (type $ft (func (param i32) (result i32))) | |
| ;; CHECK-BIN: (type $f1 (func)) | |
| ;; CHECK-BIN: (type $k1 (cont $f1)) | |
| ;; CHECK-BIN: (type $2 (func (param (ref $k1)))) | |
| ;; CHECK-BIN: (type $ft1 (func (param i32))) | |
| ;; CHECK-BIN: (type $ct1 (sub (cont $ft1))) | |
| ;; CHECK-BIN: (type $ft (func (param i32) (result i32))) | |
| (type $ft (func (param i32) (result i32))) | |
| ;; CHECK-TEXT: (type $ct (cont $ft)) | |
| ;; CHECK-BIN: (type $ct (cont $ft)) | |
| (type $ct (cont $ft)) | |
| ;; CHECK-TEXT: (type $7 (func (param (ref $ct)) (result (ref $ct)))) | |
| ;; CHECK-TEXT: (type $8 (func (param contref nullcontref (ref cont) (ref nocont)) (result contref))) | |
| ;; CHECK-TEXT: (type $9 (func (param (ref $ct1)))) | |
| ;; CHECK-TEXT: (type $ct0 (sub (cont $f1))) | |
| ;; CHECK-TEXT: (global $kglo (mut (ref null $k1)) (ref.null nocont)) | |
| ;; CHECK-TEXT: (global $gglo (ref null $k1) (ref.null nocont)) | |
| ;; CHECK-TEXT: (elem declare func $f1 $f2 $f3 $fglo $r0 $r1) | |
| ;; CHECK-TEXT: (tag $exn (type $f1)) | |
| ;; CHECK-TEXT: (tag $e1 (type $f1)) | |
| ;; CHECK-TEXT: (tag $e2 (type $f1)) | |
| ;; CHECK-TEXT: (export "unhandled-1" (func $f1)) | |
| ;; CHECK-TEXT: (export "unhandled-2" (func $unhandled-2)) | |
| ;; CHECK-TEXT: (export "unhandled-3" (func $unhandled-3)) | |
| ;; CHECK-TEXT: (export "handled" (func $handled)) | |
| ;; CHECK-TEXT: (export "uncaught-1" (func $uncaught-1)) | |
| ;; CHECK-TEXT: (export "uncaught-2" (func $uncaught-2)) | |
| ;; CHECK-TEXT: (export "uncaught-3" (func $uncaught-3)) | |
| ;; CHECK-TEXT: (export "non-linear-1" (func $non-linear-1)) | |
| ;; CHECK-TEXT: (export "non-linear-2" (func $non-linear-2)) | |
| ;; CHECK-TEXT: (export "non-linear-3" (func $non-linear-3)) | |
| ;; CHECK-TEXT: (export "non-linear-4" (func $non-linear-4)) | |
| ;; CHECK-TEXT: (func $id (type $7) (param $x (ref $ct)) (result (ref $ct)) | |
| ;; CHECK-TEXT-NEXT: (local.get $x) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (type $7 (func (param (ref $ct)) (result (ref $ct)))) | |
| ;; CHECK-BIN: (type $8 (func (param contref nullcontref (ref cont) (ref nocont)) (result contref))) | |
| ;; CHECK-BIN: (type $9 (func (param (ref $ct1)))) | |
| ;; CHECK-BIN: (type $ct0 (sub (cont $f1))) | |
| ;; CHECK-BIN: (global $kglo (mut (ref null $k1)) (ref.null nocont)) | |
| ;; CHECK-BIN: (global $gglo (ref null $k1) (ref.null nocont)) | |
| ;; CHECK-BIN: (elem declare func $f1 $f2 $f3 $fglo $r0 $r1) | |
| ;; CHECK-BIN: (tag $exn (type $f1)) | |
| ;; CHECK-BIN: (tag $e1 (type $f1)) | |
| ;; CHECK-BIN: (tag $e2 (type $f1)) | |
| ;; CHECK-BIN: (export "unhandled-1" (func $f1)) | |
| ;; CHECK-BIN: (export "unhandled-2" (func $unhandled-2)) | |
| ;; CHECK-BIN: (export "unhandled-3" (func $unhandled-3)) | |
| ;; CHECK-BIN: (export "handled" (func $handled)) | |
| ;; CHECK-BIN: (export "uncaught-1" (func $uncaught-1)) | |
| ;; CHECK-BIN: (export "uncaught-2" (func $uncaught-2)) | |
| ;; CHECK-BIN: (export "uncaught-3" (func $uncaught-3)) | |
| ;; CHECK-BIN: (export "non-linear-1" (func $non-linear-1)) | |
| ;; CHECK-BIN: (export "non-linear-2" (func $non-linear-2)) | |
| ;; CHECK-BIN: (export "non-linear-3" (func $non-linear-3)) | |
| ;; CHECK-BIN: (export "non-linear-4" (func $non-linear-4)) | |
| ;; CHECK-BIN: (func $id (type $7) (param $x (ref $ct)) (result (ref $ct)) | |
| ;; CHECK-BIN-NEXT: (local.get $x) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $id (param $x (ref $ct)) (result (ref $ct)) | |
| (local.get $x) | |
| ) | |
| ;; CHECK-TEXT: (func $id2 (type $8) (param $w contref) (param $x nullcontref) (param $y (ref cont)) (param $z (ref nocont)) (result contref) | |
| ;; CHECK-TEXT-NEXT: (local.get $z) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $id2 (type $8) (param $w contref) (param $x nullcontref) (param $y (ref cont)) (param $z (ref nocont)) (result contref) | |
| ;; CHECK-BIN-NEXT: (local.get $z) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $id2 | |
| (param $w contref) | |
| (param $x nullcontref) | |
| (param $y (ref cont)) | |
| (param $z (ref nocont)) | |
| (result contref) | |
| (local.get $z) | |
| ) | |
| (tag $exn) | |
| (tag $e1) | |
| (tag $e2) | |
| (type $f1 (func)) | |
| (type $k1 (cont $f1)) | |
| (rec | |
| (type $f2 (func (param (ref $f3)))) | |
| (type $f3 (func (param (ref $f2)))) | |
| ) | |
| (type $k2 (cont $f2)) | |
| (type $k3 (cont $f3)) | |
| (type $ft1 (func (param i32))) | |
| (type $ct1 (sub (cont $ft1))) | |
| (type $ft0 (func)) | |
| (type $ct0 (sub (cont $ft0))) | |
| (type $f4 (sub (func (result anyref)))) | |
| (type $f5 (sub $f4 (func (result eqref)))) | |
| (type $c4 (sub (cont $f4))) | |
| (type $c5 (sub $c4 (cont $f5))) | |
| (type $ft2 (func)) | |
| (type $ct2 (cont $ft2)) | |
| (global $kglo (mut (ref null $ct2)) (ref.null $ct2)) | |
| (global $gglo (ref null $ct2) (ref.null $ct2)) | |
| ;; CHECK-TEXT: (func $fglo (type $f1) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $fglo (type $f1) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $fglo) | |
| ;; CHECK-BIN-NODEBUG: (type $0 (func)) | |
| ;; CHECK-BIN-NODEBUG: (type $1 (cont $0)) | |
| ;; CHECK-BIN-NODEBUG: (type $2 (func (param (ref $1)))) | |
| ;; CHECK-BIN-NODEBUG: (type $3 (func (param i32))) | |
| ;; CHECK-BIN-NODEBUG: (type $4 (sub (cont $3))) | |
| ;; CHECK-BIN-NODEBUG: (type $5 (func (param i32) (result i32))) | |
| ;; CHECK-BIN-NODEBUG: (type $6 (cont $5)) | |
| ;; CHECK-BIN-NODEBUG: (type $7 (func (param (ref $6)) (result (ref $6)))) | |
| ;; CHECK-BIN-NODEBUG: (type $8 (func (param contref nullcontref (ref cont) (ref nocont)) (result contref))) | |
| ;; CHECK-BIN-NODEBUG: (type $9 (func (param (ref $4)))) | |
| ;; CHECK-BIN-NODEBUG: (type $10 (sub (cont $0))) | |
| ;; CHECK-BIN-NODEBUG: (global $global$0 (mut (ref null $1)) (ref.null nocont)) | |
| ;; CHECK-BIN-NODEBUG: (global $global$1 (ref null $1) (ref.null nocont)) | |
| ;; CHECK-BIN-NODEBUG: (elem declare func $12 $15 $16 $2 $5 $9) | |
| (elem declare func $fglo) | |
| (func | |
| (global.set $kglo (cont.new $ct2 (ref.func $fglo)))) | |
| (func (param $x (ref $ct1)) | |
| (i32.const 123) | |
| (local.get $x) | |
| (cont.bind $ct1 $ct0) | |
| (drop) | |
| ) | |
| ;; CHECK-TEXT: (func $0 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (global.set $kglo | |
| ;; CHECK-TEXT-NEXT: (cont.new $k1 | |
| ;; CHECK-TEXT-NEXT: (ref.func $fglo) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT: (func $1 (type $9) (param $x (ref $ct1)) | |
| ;; CHECK-TEXT-NEXT: (drop | |
| ;; CHECK-TEXT-NEXT: (cont.bind $ct1 $ct0 | |
| ;; CHECK-TEXT-NEXT: (i32.const 123) | |
| ;; CHECK-TEXT-NEXT: (local.get $x) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT: (func $f1 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (suspend $e1) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $3 (type $f1) | |
| ;; CHECK-BIN-NEXT: (global.set $kglo | |
| ;; CHECK-BIN-NEXT: (cont.new $k1 | |
| ;; CHECK-BIN-NEXT: (ref.func $fglo) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN: (func $4 (type $9) (param $x (ref $ct1)) | |
| ;; CHECK-BIN-NEXT: (drop | |
| ;; CHECK-BIN-NEXT: (cont.bind $ct1 $ct0 | |
| ;; CHECK-BIN-NEXT: (i32.const 123) | |
| ;; CHECK-BIN-NEXT: (local.get $x) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN: (func $f1 (type $f1) | |
| ;; CHECK-BIN-NEXT: (suspend $e1) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $f1 (export "unhandled-1") | |
| (suspend $e1) | |
| ) | |
| ;; CHECK-TEXT: (func $unhandled-2 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 | |
| ;; CHECK-TEXT-NEXT: (cont.new $k1 | |
| ;; CHECK-TEXT-NEXT: (ref.func $f1) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $unhandled-2 (type $f1) | |
| ;; CHECK-BIN-NEXT: (resume $k1 | |
| ;; CHECK-BIN-NEXT: (cont.new $k1 | |
| ;; CHECK-BIN-NEXT: (ref.func $f1) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $unhandled-2 (export "unhandled-2") | |
| (resume $k1 (cont.new $k1 (ref.func $f1))) | |
| ) | |
| ;; CHECK-TEXT: (func $unhandled-3 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (drop | |
| ;; CHECK-TEXT-NEXT: (block $h (result (ref $k1)) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 (on $e2 $h) | |
| ;; CHECK-TEXT-NEXT: (cont.new $k1 | |
| ;; CHECK-TEXT-NEXT: (ref.func $f1) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (unreachable) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $unhandled-3 (type $f1) | |
| ;; CHECK-BIN-NEXT: (drop | |
| ;; CHECK-BIN-NEXT: (block $block (result (ref $k1)) | |
| ;; CHECK-BIN-NEXT: (resume $k1 (on $e2 $block) | |
| ;; CHECK-BIN-NEXT: (cont.new $k1 | |
| ;; CHECK-BIN-NEXT: (ref.func $f1) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (unreachable) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $unhandled-3 (export "unhandled-3") | |
| (block $h (result (ref $k1)) | |
| (resume $k1 (on $e2 $h) (cont.new $k1 (ref.func $f1))) | |
| (unreachable) | |
| ) | |
| (drop) | |
| ) | |
| ;; CHECK-TEXT: (func $handled (type $f1) | |
| ;; CHECK-TEXT-NEXT: (drop | |
| ;; CHECK-TEXT-NEXT: (block $h (result (ref $k1)) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 (on $e1 $h) | |
| ;; CHECK-TEXT-NEXT: (cont.new $k1 | |
| ;; CHECK-TEXT-NEXT: (ref.func $f1) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (unreachable) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $handled (type $f1) | |
| ;; CHECK-BIN-NEXT: (drop | |
| ;; CHECK-BIN-NEXT: (block $block (result (ref $k1)) | |
| ;; CHECK-BIN-NEXT: (resume $k1 (on $e1 $block) | |
| ;; CHECK-BIN-NEXT: (cont.new $k1 | |
| ;; CHECK-BIN-NEXT: (ref.func $f1) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (unreachable) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $handled (export "handled") | |
| (block $h (result (ref $k1)) | |
| (resume $k1 (on $e1 $h) (cont.new $k1 (ref.func $f1))) | |
| (unreachable) | |
| ) | |
| (drop) | |
| ) | |
| (elem declare func $f2) | |
| ;; CHECK-TEXT: (func $f2 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (throw $exn) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $f2 (type $f1) | |
| ;; CHECK-BIN-NEXT: (throw $exn) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $f2 | |
| (throw $exn) | |
| ) | |
| ;; CHECK-TEXT: (func $uncaught-1 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (drop | |
| ;; CHECK-TEXT-NEXT: (block $h (result (ref $k1)) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 (on $e1 $h) | |
| ;; CHECK-TEXT-NEXT: (cont.new $k1 | |
| ;; CHECK-TEXT-NEXT: (ref.func $f2) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (unreachable) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $uncaught-1 (type $f1) | |
| ;; CHECK-BIN-NEXT: (drop | |
| ;; CHECK-BIN-NEXT: (block $block (result (ref $k1)) | |
| ;; CHECK-BIN-NEXT: (resume $k1 (on $e1 $block) | |
| ;; CHECK-BIN-NEXT: (cont.new $k1 | |
| ;; CHECK-BIN-NEXT: (ref.func $f2) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (unreachable) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $uncaught-1 (export "uncaught-1") | |
| (block $h (result (ref $k1)) | |
| (resume $k1 (on $e1 $h) (cont.new $k1 (ref.func $f2))) | |
| (unreachable) | |
| ) | |
| (drop) | |
| ) | |
| ;; CHECK-TEXT: (func $uncaught-2 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (resume_throw $k1 $exn | |
| ;; CHECK-TEXT-NEXT: (block $h (result (ref $k1)) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 (on $e1 $h) | |
| ;; CHECK-TEXT-NEXT: (cont.new $k1 | |
| ;; CHECK-TEXT-NEXT: (ref.func $f1) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (unreachable) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $uncaught-2 (type $f1) | |
| ;; CHECK-BIN-NEXT: (resume_throw $k1 $exn | |
| ;; CHECK-BIN-NEXT: (block $block (result (ref $k1)) | |
| ;; CHECK-BIN-NEXT: (resume $k1 (on $e1 $block) | |
| ;; CHECK-BIN-NEXT: (cont.new $k1 | |
| ;; CHECK-BIN-NEXT: (ref.func $f1) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (unreachable) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $uncaught-2 (export "uncaught-2") | |
| (block $h (result (ref $k1)) | |
| (resume $k1 (on $e1 $h) (cont.new $k1 (ref.func $f1))) | |
| (unreachable) | |
| ) | |
| (resume_throw $k1 $exn) | |
| ) | |
| (elem declare func $f3) | |
| ;; CHECK-TEXT: (func $f3 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (call $f4) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $f3 (type $f1) | |
| ;; CHECK-BIN-NEXT: (call $f4) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $f3 | |
| (call $f4) | |
| ) | |
| ;; CHECK-TEXT: (func $f4 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (suspend $e1) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $f4 (type $f1) | |
| ;; CHECK-BIN-NEXT: (suspend $e1) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $f4 | |
| (suspend $e1) | |
| ) | |
| ;; CHECK-TEXT: (func $uncaught-3 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (resume_throw $k1 $exn | |
| ;; CHECK-TEXT-NEXT: (block $h (result (ref $k1)) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 (on $e1 $h) | |
| ;; CHECK-TEXT-NEXT: (cont.new $k1 | |
| ;; CHECK-TEXT-NEXT: (ref.func $f3) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (unreachable) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $uncaught-3 (type $f1) | |
| ;; CHECK-BIN-NEXT: (resume_throw $k1 $exn | |
| ;; CHECK-BIN-NEXT: (block $block (result (ref $k1)) | |
| ;; CHECK-BIN-NEXT: (resume $k1 (on $e1 $block) | |
| ;; CHECK-BIN-NEXT: (cont.new $k1 | |
| ;; CHECK-BIN-NEXT: (ref.func $f3) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (unreachable) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $uncaught-3 (export "uncaught-3") | |
| (block $h (result (ref $k1)) | |
| (resume $k1 (on $e1 $h) (cont.new $k1 (ref.func $f3))) | |
| (unreachable) | |
| ) | |
| (resume_throw $k1 $exn) | |
| ) | |
| (elem declare func $r0 $r1) | |
| ;; CHECK-TEXT: (func $r0 (type $f1) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $r0 (type $f1) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $r0) | |
| ;; CHECK-TEXT: (func $r1 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (suspend $e1) | |
| ;; CHECK-TEXT-NEXT: (suspend $e1) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $r1 (type $f1) | |
| ;; CHECK-BIN-NEXT: (suspend $e1) | |
| ;; CHECK-BIN-NEXT: (suspend $e1) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $r1 (suspend $e1) (suspend $e1)) | |
| ;; CHECK-TEXT: (func $nl1 (type $2) (param $k (ref $k1)) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 | |
| ;; CHECK-TEXT-NEXT: (local.get $k) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 | |
| ;; CHECK-TEXT-NEXT: (local.get $k) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $nl1 (type $2) (param $k (ref $k1)) | |
| ;; CHECK-BIN-NEXT: (resume $k1 | |
| ;; CHECK-BIN-NEXT: (local.get $k) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (resume $k1 | |
| ;; CHECK-BIN-NEXT: (local.get $k) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $nl1 (param $k (ref $k1)) | |
| (resume $k1 (local.get $k)) | |
| (resume $k1 (local.get $k)) | |
| ) | |
| ;; CHECK-TEXT: (func $nl2 (type $2) (param $k (ref $k1)) | |
| ;; CHECK-TEXT-NEXT: (drop | |
| ;; CHECK-TEXT-NEXT: (block $h (result (ref $k1)) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 (on $e1 $h) | |
| ;; CHECK-TEXT-NEXT: (local.get $k) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (unreachable) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 | |
| ;; CHECK-TEXT-NEXT: (local.get $k) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (unreachable) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $nl2 (type $2) (param $k (ref $k1)) | |
| ;; CHECK-BIN-NEXT: (drop | |
| ;; CHECK-BIN-NEXT: (block $block (result (ref $k1)) | |
| ;; CHECK-BIN-NEXT: (resume $k1 (on $e1 $block) | |
| ;; CHECK-BIN-NEXT: (local.get $k) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (unreachable) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (resume $k1 | |
| ;; CHECK-BIN-NEXT: (local.get $k) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (unreachable) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $nl2 (param $k (ref $k1)) | |
| (block $h (result (ref $k1)) | |
| (resume $k1 (on $e1 $h) (local.get $k)) | |
| (unreachable) | |
| ) | |
| (resume $k1 (local.get $k)) | |
| (unreachable) | |
| ) | |
| ;; CHECK-TEXT: (func $nl3 (type $2) (param $k (ref $k1)) | |
| ;; CHECK-TEXT-NEXT: (local $k' (ref null $k1)) | |
| ;; CHECK-TEXT-NEXT: (local.set $k' | |
| ;; CHECK-TEXT-NEXT: (block $h1 (result (ref $k1)) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 (on $e1 $h1) | |
| ;; CHECK-TEXT-NEXT: (local.get $k) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (unreachable) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (drop | |
| ;; CHECK-TEXT-NEXT: (block $h2 (result (ref $k1)) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 (on $e1 $h2) | |
| ;; CHECK-TEXT-NEXT: (local.get $k') | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (unreachable) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 | |
| ;; CHECK-TEXT-NEXT: (local.get $k') | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (unreachable) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $nl3 (type $2) (param $k (ref $k1)) | |
| ;; CHECK-BIN-NEXT: (local $k' (ref null $k1)) | |
| ;; CHECK-BIN-NEXT: (local.set $k' | |
| ;; CHECK-BIN-NEXT: (block $block (result (ref $k1)) | |
| ;; CHECK-BIN-NEXT: (resume $k1 (on $e1 $block) | |
| ;; CHECK-BIN-NEXT: (local.get $k) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (unreachable) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (drop | |
| ;; CHECK-BIN-NEXT: (block $block1 (result (ref $k1)) | |
| ;; CHECK-BIN-NEXT: (resume $k1 (on $e1 $block1) | |
| ;; CHECK-BIN-NEXT: (local.get $k') | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (unreachable) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (resume $k1 | |
| ;; CHECK-BIN-NEXT: (local.get $k') | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (unreachable) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $nl3 (param $k (ref $k1)) | |
| (local $k' (ref null $k1)) | |
| (block $h1 (result (ref $k1)) | |
| (resume $k1 (on $e1 $h1) (local.get $k)) | |
| (unreachable) | |
| ) | |
| (local.set $k') | |
| (block $h2 (result (ref $k1)) | |
| (resume $k1 (on $e1 $h2) (local.get $k')) | |
| (unreachable) | |
| ) | |
| (resume $k1 (local.get $k')) | |
| (unreachable) | |
| ) | |
| ;; CHECK-TEXT: (func $nl4 (type $2) (param $k (ref $k1)) | |
| ;; CHECK-TEXT-NEXT: (drop | |
| ;; CHECK-TEXT-NEXT: (cont.bind $k1 $k1 | |
| ;; CHECK-TEXT-NEXT: (local.get $k) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: (resume $k1 | |
| ;; CHECK-TEXT-NEXT: (local.get $k) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $nl4 (type $2) (param $k (ref $k1)) | |
| ;; CHECK-BIN-NEXT: (drop | |
| ;; CHECK-BIN-NEXT: (cont.bind $k1 $k1 | |
| ;; CHECK-BIN-NEXT: (local.get $k) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: (resume $k1 | |
| ;; CHECK-BIN-NEXT: (local.get $k) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $nl4 (param $k (ref $k1)) | |
| (drop (cont.bind $k1 $k1 (local.get $k))) | |
| (resume $k1 (local.get $k)) | |
| ) | |
| ;; CHECK-TEXT: (func $non-linear-1 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (call $nl1 | |
| ;; CHECK-TEXT-NEXT: (cont.new $k1 | |
| ;; CHECK-TEXT-NEXT: (ref.func $r0) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $non-linear-1 (type $f1) | |
| ;; CHECK-BIN-NEXT: (call $nl1 | |
| ;; CHECK-BIN-NEXT: (cont.new $k1 | |
| ;; CHECK-BIN-NEXT: (ref.func $r0) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $non-linear-1 (export "non-linear-1") | |
| (call $nl1 (cont.new $k1 (ref.func $r0))) | |
| ) | |
| ;; CHECK-TEXT: (func $non-linear-2 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (call $nl2 | |
| ;; CHECK-TEXT-NEXT: (cont.new $k1 | |
| ;; CHECK-TEXT-NEXT: (ref.func $r1) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $non-linear-2 (type $f1) | |
| ;; CHECK-BIN-NEXT: (call $nl2 | |
| ;; CHECK-BIN-NEXT: (cont.new $k1 | |
| ;; CHECK-BIN-NEXT: (ref.func $r1) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $non-linear-2 (export "non-linear-2") | |
| (call $nl2 (cont.new $k1 (ref.func $r1))) | |
| ) | |
| ;; CHECK-TEXT: (func $non-linear-3 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (call $nl3 | |
| ;; CHECK-TEXT-NEXT: (cont.new $k1 | |
| ;; CHECK-TEXT-NEXT: (ref.func $r1) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $non-linear-3 (type $f1) | |
| ;; CHECK-BIN-NEXT: (call $nl3 | |
| ;; CHECK-BIN-NEXT: (cont.new $k1 | |
| ;; CHECK-BIN-NEXT: (ref.func $r1) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $non-linear-3 (export "non-linear-3") | |
| (call $nl3 (cont.new $k1 (ref.func $r1))) | |
| ) | |
| ;; CHECK-TEXT: (func $non-linear-4 (type $f1) | |
| ;; CHECK-TEXT-NEXT: (call $nl4 | |
| ;; CHECK-TEXT-NEXT: (cont.new $k1 | |
| ;; CHECK-TEXT-NEXT: (ref.func $r1) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-TEXT-NEXT: ) | |
| ;; CHECK-BIN: (func $non-linear-4 (type $f1) | |
| ;; CHECK-BIN-NEXT: (call $nl4 | |
| ;; CHECK-BIN-NEXT: (cont.new $k1 | |
| ;; CHECK-BIN-NEXT: (ref.func $r1) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| ;; CHECK-BIN-NEXT: ) | |
| (func $non-linear-4 (export "non-linear-4") | |
| (call $nl4 (cont.new $k1 (ref.func $r1))) | |
| ) | |
| ) | |
| ;; CHECK-BIN-NODEBUG: (tag $tag$0 (type $0)) | |
| ;; CHECK-BIN-NODEBUG: (tag $tag$1 (type $0)) | |
| ;; CHECK-BIN-NODEBUG: (tag $tag$2 (type $0)) | |
| ;; CHECK-BIN-NODEBUG: (export "unhandled-1" (func $5)) | |
| ;; CHECK-BIN-NODEBUG: (export "unhandled-2" (func $6)) | |
| ;; CHECK-BIN-NODEBUG: (export "unhandled-3" (func $7)) | |
| ;; CHECK-BIN-NODEBUG: (export "handled" (func $8)) | |
| ;; CHECK-BIN-NODEBUG: (export "uncaught-1" (func $10)) | |
| ;; CHECK-BIN-NODEBUG: (export "uncaught-2" (func $11)) | |
| ;; CHECK-BIN-NODEBUG: (export "uncaught-3" (func $14)) | |
| ;; CHECK-BIN-NODEBUG: (export "non-linear-1" (func $21)) | |
| ;; CHECK-BIN-NODEBUG: (export "non-linear-2" (func $22)) | |
| ;; CHECK-BIN-NODEBUG: (export "non-linear-3" (func $23)) | |
| ;; CHECK-BIN-NODEBUG: (export "non-linear-4" (func $24)) | |
| ;; CHECK-BIN-NODEBUG: (func $0 (type $7) (param $0 (ref $6)) (result (ref $6)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $1 (type $8) (param $0 contref) (param $1 nullcontref) (param $2 (ref cont)) (param $3 (ref nocont)) (result contref) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.get $3) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $2 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $3 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (global.set $global$0 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.new $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (ref.func $2) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $4 (type $9) (param $0 (ref $4)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (drop | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.bind $4 $10 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (i32.const 123) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $5 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (suspend $tag$1) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $6 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.new $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (ref.func $5) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $7 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (drop | |
| ;; CHECK-BIN-NODEBUG-NEXT: (block $block (result (ref $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 (on $tag$2 $block) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.new $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (ref.func $5) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (unreachable) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $8 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (drop | |
| ;; CHECK-BIN-NODEBUG-NEXT: (block $block (result (ref $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 (on $tag$1 $block) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.new $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (ref.func $5) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (unreachable) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $9 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (throw $tag$0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $10 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (drop | |
| ;; CHECK-BIN-NODEBUG-NEXT: (block $block (result (ref $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 (on $tag$1 $block) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.new $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (ref.func $9) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (unreachable) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $11 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume_throw $1 $tag$0 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (block $block (result (ref $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 (on $tag$1 $block) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.new $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (ref.func $5) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (unreachable) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $12 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (call $13) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $13 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (suspend $tag$1) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $14 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume_throw $1 $tag$0 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (block $block (result (ref $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 (on $tag$1 $block) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.new $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (ref.func $12) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (unreachable) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $15 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $16 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (suspend $tag$1) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (suspend $tag$1) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $17 (type $2) (param $0 (ref $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $18 (type $2) (param $0 (ref $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (drop | |
| ;; CHECK-BIN-NODEBUG-NEXT: (block $block (result (ref $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 (on $tag$1 $block) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (unreachable) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (unreachable) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $19 (type $2) (param $0 (ref $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local $1 (ref null $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.set $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (block $block (result (ref $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 (on $tag$1 $block) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (unreachable) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (drop | |
| ;; CHECK-BIN-NODEBUG-NEXT: (block $block1 (result (ref $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 (on $tag$1 $block1) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (unreachable) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (unreachable) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $20 (type $2) (param $0 (ref $1)) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (drop | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.bind $1 $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (resume $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $21 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (call $17 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.new $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (ref.func $15) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $22 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (call $18 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.new $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (ref.func $16) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $23 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (call $19 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.new $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (ref.func $16) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG: (func $24 (type $0) | |
| ;; CHECK-BIN-NODEBUG-NEXT: (call $20 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (cont.new $1 | |
| ;; CHECK-BIN-NODEBUG-NEXT: (ref.func $16) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) | |
| ;; CHECK-BIN-NODEBUG-NEXT: ) |