#
# Autogenerated by generate-bytecode-expectations.
#

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

---
snippet: "
  var global = 1;
  function f() { return global &= 1; }
  f();
"
frame size: 4
parameter count: 1
bytecode array length: 27
bytecodes: [
                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                B(PushContext), R(1),
                B(CreateClosure), U8(0), U8(0),
                B(Star), R(0),
  /*   30 E> */ B(StackCheck),
  /*   47 S> */ B(LdaSmi), U8(1),
  /*   47 E> */ B(StaContextSlot), R(context), U8(4),
  /*   87 S> */ B(LdrUndefined), R(3),
  /*   87 E> */ B(Call), R(0), R(3), U8(1), U8(1),
                B(LdaUndefined),
  /*   92 S> */ B(Return),
]
constant pool: [
  InstanceType::SHARED_FUNCTION_INFO_TYPE,
]
handlers: [
]

---
snippet: "
  unallocated = 1;
  function f() { return unallocated += 1; }
  f();
"
frame size: 3
parameter count: 1
bytecode array length: 20
bytecodes: [
                B(CreateClosure), U8(0), U8(0),
                B(Star), R(0),
  /*   30 E> */ B(StackCheck),
  /*   34 S> */ B(LdaSmi), U8(1),
  /*   46 E> */ B(StaGlobalSloppy), U8(1), U8(1),
  /*   93 S> */ B(LdrUndefined), R(2),
  /*   93 E> */ B(Call), R(0), R(2), U8(1), U8(3),
                B(LdaUndefined),
  /*   98 S> */ B(Return),
]
constant pool: [
  InstanceType::SHARED_FUNCTION_INFO_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
]
handlers: [
]

