binaryen-sys 0.13.0

Bindings to the binaryen library
Documentation
;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.

;; Write to a binary, lowering away refined GC types.
;; RUN: wasm-as %s -all --disable-gc -g -o %s.wasm

;; Read it back and verify that the types were lowered away.
;; RUN: wasm-dis %s.wasm -all -o - | filecheck %s

(module

  ;; CHECK:      (type $f (func))
  (type $f (func))

  ;; CHECK:      (func $foo (type $f)
  ;; CHECK-NEXT:  (drop
  ;; CHECK-NEXT:   (block $label$1 (result funcref)
  ;; CHECK-NEXT:    (br $label$1
  ;; CHECK-NEXT:     (ref.func $foo)
  ;; CHECK-NEXT:    )
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT:  (drop
  ;; CHECK-NEXT:   (block $label$2 (result funcref)
  ;; CHECK-NEXT:    (br $label$2
  ;; CHECK-NEXT:     (ref.null nofunc)
  ;; CHECK-NEXT:    )
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT:  (drop
  ;; CHECK-NEXT:   (block $label$3 (result externref)
  ;; CHECK-NEXT:    (br $label$3
  ;; CHECK-NEXT:     (ref.null noextern)
  ;; CHECK-NEXT:    )
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT:  (drop
  ;; CHECK-NEXT:   (block $label$4 (result stringref)
  ;; CHECK-NEXT:    (br $label$4
  ;; CHECK-NEXT:     (string.const "hello world")
  ;; CHECK-NEXT:    )
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT: )
  (func $foo (type $f)
    (drop
      (block $l1 (result (ref $f))
        (br $l1
          (ref.func $foo)
        )
      )
    )
    (drop
      (block $l2 (result nullfuncref)
        ;; Branch to ensure the blocks remain in the output.
        (br $l2
          (ref.null nofunc)
        )
      )
    )
    (drop
      (block $l3 (result nullexternref)
        (br $l3
          (ref.null noextern)
        )
      )
    )
    (drop
      (block $l4 (result (ref string))
        (br $l4
          (string.const "hello world")
        )
      )
    )
  )
)