Movatterモバイル変換


[0]ホーム

URL:


  1. WebAssembly
  2. Reference
  3. WebAssembly control flow instructions
  4. block

block: Wasm text instruction

Theblock statement creates a label that can later be branched out of with abr.

Theloop statement is the opposite of theblock statement, in the sense that while branching to aloop jumps to the beginning of the loop, branching to ablock jumps to the end of the block; that is, out of the block.

Try it

(module  ;; import the browser console object, you'll need to pass this in from JavaScript  (import "console" "log" (func $log (param i32)))  ;; create a function that takes in a number as a param,  ;; and logs that number if it's not equal to 100.  (func (export "log_if_not_100") (param $num i32)    (block $my_block      ;; $num is equal to 100      local.get $num      i32.const 100      i32.eq      (if        (then          ;; branch to the end of the block          br $my_block        )      )      ;; not reachable when $num is 100      local.get $num      call $log    )  ))
const url = "{%wasm-url%}";await WebAssembly.instantiateStreaming(fetch(url), { console }).then(  (result) => {    const log_if_not_100 = result.instance.exports.log_if_not_100;    log_if_not_100(99);    // Expected output: 99    log_if_not_100(100);    // Should not log anything    log_if_not_100(101);    // Expected output: 101  },);

Syntax

wat
;; label the block so that it can be branched to.(block $my_block  ;; branch to the block.  ;; most of the time you'll want to put this in an if statement and only branch on condition,  ;; otherwise the following control flow are unreachable.  br $my_block  ;; this will never be reached, since the br jumped out of the block already.  unreachable)
InstructionBinary opcode
block0x02

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp