#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: yes

---
snippet: "
  var a = 1; if (a || a < 0) { return 1; }
"
frame size: 1
parameter count: 1
bytecode array length: 17
bytecodes: [
  /*   42 S> */ B(LdaSmi), I8(1),
                B(Star), R(0),
  /*   45 S> */ B(JumpIfToBooleanTrue), U8(8),
                B(LdaZero),
  /*   56 E> */ B(TestLessThan), R(0), U8(0),
                B(JumpIfFalse), U8(5),
  /*   63 S> */ B(LdaSmi), I8(1),
  /*   72 S> */ B(Return),
                B(LdaUndefined),
  /*   75 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  var a = 1; if (a && a < 0) { return 1; }
"
frame size: 1
parameter count: 1
bytecode array length: 17
bytecodes: [
  /*   42 S> */ B(LdaSmi), I8(1),
                B(Star), R(0),
  /*   45 S> */ B(JumpIfToBooleanFalse), U8(11),
                B(LdaZero),
  /*   56 E> */ B(TestLessThan), R(0), U8(0),
                B(JumpIfFalse), U8(5),
  /*   63 S> */ B(LdaSmi), I8(1),
  /*   72 S> */ B(Return),
                B(LdaUndefined),
  /*   75 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  var a = 1; a = (a || a < 0) ? 2 : 3;
"
frame size: 1
parameter count: 1
bytecode array length: 22
bytecodes: [
  /*   42 S> */ B(LdaSmi), I8(1),
                B(Star), R(0),
  /*   45 S> */ B(JumpIfToBooleanTrue), U8(8),
                B(LdaZero),
  /*   57 E> */ B(TestLessThan), R(0), U8(0),
                B(JumpIfFalse), U8(6),
                B(LdaSmi), I8(2),
                B(Jump), U8(4),
                B(LdaSmi), I8(3),
                B(Star), R(0),
                B(LdaUndefined),
  /*   71 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

