#
# Autogenerated by generate-bytecode-expectations.
#

---
pool type: mixed
execute: yes
wrap: yes

---
snippet: "
  return [ 1, 2 ];
"
frame size: 0
parameter count: 1
bytecode array length: 6
bytecodes: [
  B(StackCheck),
  B(CreateArrayLiteral), U8(0), U8(0), U8(3),
  B(Return),
]
constant pool: [
  InstanceType::FIXED_ARRAY_TYPE,
]
handlers: [
]

---
snippet: "
  var a = 1; return [ a, a + 1 ];
"
frame size: 4
parameter count: 1
bytecode array length: 39
bytecodes: [
  B(StackCheck),
  B(LdaSmi), U8(1),
  B(Star), R(0),
  B(CreateArrayLiteral), U8(0), U8(0), U8(3),
  B(Star), R(2),
  B(LdaZero),
  B(Star), R(1),
  B(Ldar), R(0),
  B(KeyedStoreICSloppy), R(2), R(1), U8(1),
  B(LdaSmi), U8(1),
  B(Star), R(1),
  B(Ldar), R(0),
  B(Star), R(3),
  B(LdaSmi), U8(1),
  B(Add), R(3),
  B(KeyedStoreICSloppy), R(2), R(1), U8(1),
  B(Ldar), R(2),
  B(Return),
]
constant pool: [
  InstanceType::FIXED_ARRAY_TYPE,
]
handlers: [
]

---
snippet: "
  return [ [ 1, 2 ], [ 3 ] ];
"
frame size: 0
parameter count: 1
bytecode array length: 6
bytecodes: [
  B(StackCheck),
  B(CreateArrayLiteral), U8(0), U8(2), U8(2),
  B(Return),
]
constant pool: [
  InstanceType::FIXED_ARRAY_TYPE,
]
handlers: [
]

---
snippet: "
  var a = 1; return [ [ a, 2 ], [ a + 2 ] ];
"
frame size: 6
parameter count: 1
bytecode array length: 69
bytecodes: [
  B(StackCheck),
  B(LdaSmi), U8(1),
  B(Star), R(0),
  B(CreateArrayLiteral), U8(0), U8(2), U8(2),
  B(Star), R(2),
  B(LdaZero),
  B(Star), R(1),
  B(CreateArrayLiteral), U8(1), U8(0), U8(3),
  B(Star), R(4),
  B(LdaZero),
  B(Star), R(3),
  B(Ldar), R(0),
  B(KeyedStoreICSloppy), R(4), R(3), U8(1),
  B(Ldar), R(4),
  B(KeyedStoreICSloppy), R(2), R(1), U8(5),
  B(LdaSmi), U8(1),
  B(Star), R(1),
  B(CreateArrayLiteral), U8(2), U8(1), U8(3),
  B(Star), R(4),
  B(LdaZero),
  B(Star), R(3),
  B(Ldar), R(0),
  B(Star), R(5),
  B(LdaSmi), U8(2),
  B(Add), R(5),
  B(KeyedStoreICSloppy), R(4), R(3), U8(3),
  B(Ldar), R(4),
  B(KeyedStoreICSloppy), R(2), R(1), U8(5),
  B(Ldar), R(2),
  B(Return),
]
constant pool: [
  InstanceType::FIXED_ARRAY_TYPE,
  InstanceType::FIXED_ARRAY_TYPE,
  InstanceType::FIXED_ARRAY_TYPE,
]
handlers: [
]

