keith_miller@apple.com | 470fd13 | 2016-12-22 01:06:20 +0000 | [diff] [blame] | 1 | import * as assert from '../assert.js'; |
| 2 | import Builder from '../Builder.js'; |
| 3 | |
| 4 | const builder = (new Builder()) |
| 5 | .Type().End() |
| 6 | .Function().End() |
| 7 | .Export() |
| 8 | .Function("br1") |
| 9 | .Function("br0") |
| 10 | .End() |
| 11 | .Code() |
| 12 | .Function("br1", { params: [], ret: "i32" }) |
keith_miller@apple.com | c71449d | 2016-12-22 22:19:42 +0000 | [diff] [blame] | 13 | .Block("i32", b => { |
keith_miller@apple.com | 470fd13 | 2016-12-22 01:06:20 +0000 | [diff] [blame] | 14 | return b.I32Const(0) |
| 15 | .I32Const(1) |
| 16 | .BrIf(1) |
| 17 | }) |
keith_miller@apple.com | 470fd13 | 2016-12-22 01:06:20 +0000 | [diff] [blame] | 18 | .End() |
| 19 | |
| 20 | .Function("br0", { params: [], ret: "i32" }) |
| 21 | .I32Const(0) |
| 22 | .I32Const(1) |
| 23 | .BrIf(0) |
| 24 | .End() |
| 25 | |
| 26 | .End(); |
| 27 | |
| 28 | const bin = builder.WebAssembly().get(); |
| 29 | const module = new WebAssembly.Module(bin); |
| 30 | const instance = new WebAssembly.Instance(module); |
| 31 | assert.eq(instance.exports.br1(), 0) |
| 32 | assert.eq(instance.exports.br0(), 0) |