#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: yes

---
snippet: "
  var a = 1; a += 2;
"
frame size: 1
parameter count: 1
bytecode array length: 12
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   42 S> */ B(LdaSmi), I8(1),
                B(Star), R(0),
  /*   45 S> */ B(AddSmi), I8(2), U8(0),
                B(Star), R(0),
                B(LdaUndefined),
  /*   53 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  var a = 1; a /= 2;
"
frame size: 1
parameter count: 1
bytecode array length: 12
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   42 S> */ B(LdaSmi), I8(1),
                B(Star), R(0),
  /*   45 S> */ B(DivSmi), I8(2), U8(0),
                B(Star), R(0),
                B(LdaUndefined),
  /*   53 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  var a = { val: 2 }; a.name *= 2;
"
frame size: 1
parameter count: 1
bytecode array length: 20
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41),
                B(Star), R(0),
  /*   54 S> */ B(LdaNamedProperty), R(0), U8(1), U8(1),
                B(MulSmi), I8(2), U8(3),
  /*   61 E> */ B(StaNamedProperty), R(0), U8(1), U8(4),
                B(LdaUndefined),
  /*   67 S> */ B(Return),
]
constant pool: [
  OBJECT_BOILERPLATE_DESCRIPTION_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["name"],
]
handlers: [
]

---
snippet: "
  var a = { 1: 2 }; a[1] ^= 2;
"
frame size: 3
parameter count: 1
bytecode array length: 23
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41),
                B(Star), R(0),
  /*   52 S> */ B(LdaSmi), I8(1),
                B(Star), R(2),
                B(LdaKeyedProperty), R(0), U8(1),
                B(BitwiseXorSmi), I8(2), U8(3),
  /*   57 E> */ B(StaKeyedProperty), R(0), R(2), U8(4),
                B(LdaUndefined),
  /*   63 S> */ B(Return),
]
constant pool: [
  OBJECT_BOILERPLATE_DESCRIPTION_TYPE,
]
handlers: [
]

---
snippet: "
  var a = 1; (function f() { return a; }); a |= 24;
"
frame size: 1
parameter count: 1
bytecode array length: 23
bytecodes: [
                B(CreateFunctionContext), U8(0), U8(1),
                B(PushContext), R(0),
  /*   30 E> */ B(StackCheck),
  /*   42 S> */ B(LdaSmi), I8(1),
  /*   42 E> */ B(StaCurrentContextSlot), U8(4),
  /*   45 S> */ B(CreateClosure), U8(1), U8(0), U8(2),
  /*   75 S> */ B(LdaCurrentContextSlot), U8(4),
                B(BitwiseOrSmi), I8(24), U8(0),
  /*   77 E> */ B(StaCurrentContextSlot), U8(4),
                B(LdaUndefined),
  /*   84 S> */ B(Return),
]
constant pool: [
  SCOPE_INFO_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
]
handlers: [
]

