#
# Autogenerated by generate-bytecode-expectations.
#

---
pool type: number
execute: yes
wrap: yes

---
snippet: "
  var ld_a = 1;
  while(true) {
    ld_a = ld_a + ld_a;
    if (ld_a > 10) break;
  }
  return ld_a;
"
frame size: 2
parameter count: 1
bytecode array length: 31
bytecodes: [
  B(StackCheck),
  B(LdaSmi), U8(1),
  B(Star), R(0),
  B(StackCheck),
  B(Ldar), R(0),
  B(Star), R(1),
  B(Ldar), R(0),
  B(Add), R(1),
  B(Star), R(0),
  B(Star), R(1),
  B(LdaSmi), U8(10),
  B(TestGreaterThan), R(1),
  B(JumpIfFalse), U8(4),
  B(Jump), U8(4),
  B(Jump), U8(-21),
  B(Ldar), R(0),
  B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  var ld_a = 1;
  do {
    ld_a = ld_a + ld_a;
    if (ld_a > 10) continue;
  } while(false);
  return ld_a;
"
frame size: 2
parameter count: 1
bytecode array length: 29
bytecodes: [
  B(StackCheck),
  B(LdaSmi), U8(1),
  B(Star), R(0),
  B(StackCheck),
  B(Ldar), R(0),
  B(Star), R(1),
  B(Ldar), R(0),
  B(Add), R(1),
  B(Star), R(0),
  B(Star), R(1),
  B(LdaSmi), U8(10),
  B(TestGreaterThan), R(1),
  B(JumpIfFalse), U8(4),
  B(Jump), U8(2),
  B(Ldar), R(0),
  B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  var ld_a = 1;
    ld_a = ld_a + ld_a;
    return ld_a;
"
frame size: 2
parameter count: 1
bytecode array length: 14
bytecodes: [
  B(StackCheck),
  B(LdaSmi), U8(1),
  B(Star), R(0),
  B(Star), R(1),
  B(Ldar), R(0),
  B(Add), R(1),
  B(Star), R(0),
  B(Return),
]
constant pool: [
]
handlers: [
]

