#
# Autogenerated by generate-bytecode-expectations.
#

---
pool type: string
execute: yes
wrap: yes

---
snippet: "
  var x = 0, y = 1;
  return (x = 2, y = 3, x = 4, y = 5);
"
frame size: 2
parameter count: 1
bytecode array length: 25
bytecodes: [
  B(StackCheck),
  B(LdaZero),
  B(Star), R(0),
  B(LdaSmi), U8(1),
  B(Star), R(1),
  B(LdaSmi), U8(2),
  B(Star), R(0),
  B(LdaSmi), U8(3),
  B(Star), R(1),
  B(LdaSmi), U8(4),
  B(Star), R(0),
  B(LdaSmi), U8(5),
  B(Star), R(1),
  B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  var x = 55;
  var y = (x = 100);
  return y;
"
frame size: 2
parameter count: 1
bytecode array length: 12
bytecodes: [
  B(StackCheck),
  B(LdaSmi), U8(55),
  B(Star), R(0),
  B(LdaSmi), U8(100),
  B(Star), R(0),
  B(Star), R(1),
  B(Return),
]
constant pool: [
]
handlers: [
]

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

---
snippet: "
  var x = 55;
  x = (x = 56) - x + (x = 57);
  x++;
  return x;
"
frame size: 3
parameter count: 1
bytecode array length: 32
bytecodes: [
  B(StackCheck),
  B(LdaSmi), U8(55),
  B(Star), R(0),
  B(LdaSmi), U8(56),
  B(Star), R(0),
  B(Star), R(1),
  B(Ldar), R(0),
  B(Sub), R(1),
  B(Star), R(2),
  B(LdaSmi), U8(57),
  B(Star), R(0),
  B(Add), R(2),
  B(Star), R(0),
  B(ToNumber),
  B(Star), R(1),
  B(Inc),
  B(Star), R(0),
  B(Return),
]
constant pool: [
]
handlers: [
]

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

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

---
snippet: "
  var x = 10, y = 20;
  return x + (x = 1) + (x + 1) * (y = 2) + (y = 3) + (x = 4) + (y = 5) + y;
"
frame size: 5
parameter count: 1
bytecode array length: 70
bytecodes: [
  B(StackCheck),
  B(LdaSmi), U8(10),
  B(Star), R(0),
  B(LdaSmi), U8(20),
  B(Star), R(1),
  B(Ldar), R(0),
  B(Star), R(2),
  B(LdaSmi), U8(1),
  B(Star), R(0),
  B(Add), R(2),
  B(Star), R(3),
  B(Ldar), R(0),
  B(Star), R(2),
  B(LdaSmi), U8(1),
  B(Add), R(2),
  B(Star), R(4),
  B(LdaSmi), U8(2),
  B(Star), R(1),
  B(Mul), R(4),
  B(Add), R(3),
  B(Star), R(2),
  B(LdaSmi), U8(3),
  B(Star), R(1),
  B(Add), R(2),
  B(Star), R(3),
  B(LdaSmi), U8(4),
  B(Star), R(0),
  B(Add), R(3),
  B(Star), R(2),
  B(LdaSmi), U8(5),
  B(Star), R(1),
  B(Add), R(2),
  B(Star), R(3),
  B(Ldar), R(1),
  B(Add), R(3),
  B(Return),
]
constant pool: [
]
handlers: [
]

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

