#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: no
top level: yes

---
snippet: "
  var a = 1;
"
frame size: 4
parameter count: 1
bytecode array length: 23
bytecodes: [
                B(LdaConstant), U8(0),
                B(Star), R(1),
                B(LdaZero),
                B(Star), R(2),
                B(Mov), R(closure), R(3),
                B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(3),
  /*    0 E> */ B(StackCheck),
  /*    8 S> */ B(LdaSmi), I8(1),
  /*    8 E> */ B(StaGlobal), U8(1), U8(2),
                B(LdaUndefined),
  /*   11 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
]
handlers: [
]

---
snippet: "
  function f() {}
"
frame size: 3
parameter count: 1
bytecode array length: 18
bytecodes: [
                B(LdaConstant), U8(0),
                B(Star), R(0),
                B(LdaZero),
                B(Star), R(1),
                B(Mov), R(closure), R(2),
                B(CallRuntime), U16(Runtime::kDeclareGlobals), R(0), U8(3),
  /*    0 E> */ B(StackCheck),
                B(LdaUndefined),
  /*   16 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
]
handlers: [
]

---
snippet: "
  var a = 1;
  a=2;
"
frame size: 4
parameter count: 1
bytecode array length: 29
bytecodes: [
                B(LdaConstant), U8(0),
                B(Star), R(1),
                B(LdaZero),
                B(Star), R(2),
                B(Mov), R(closure), R(3),
                B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(3),
  /*    0 E> */ B(StackCheck),
  /*    8 S> */ B(LdaSmi), I8(1),
  /*    8 E> */ B(StaGlobal), U8(1), U8(2),
  /*   11 S> */ B(LdaSmi), I8(2),
  /*   12 E> */ B(StaGlobal), U8(1), U8(2),
                B(Star), R(0),
  /*   16 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
]
handlers: [
]

---
snippet: "
  function f() {}
  f();
"
frame size: 4
parameter count: 1
bytecode array length: 27
bytecodes: [
                B(LdaConstant), U8(0),
                B(Star), R(1),
                B(LdaZero),
                B(Star), R(2),
                B(Mov), R(closure), R(3),
                B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(3),
  /*    0 E> */ B(StackCheck),
  /*   16 S> */ B(LdaGlobal), U8(1), U8(0),
                B(Star), R(1),
  /*   16 E> */ B(CallUndefinedReceiver0), R(1), U8(2),
                B(Star), R(0),
  /*   21 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["f"],
]
handlers: [
]

