#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: no
top level: yes

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

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

---
snippet: "
  var a = 1;
  a=2;
"
frame size: 3
parameter count: 1
bytecode array length: 25
bytecodes: [
                B(LdaConstant), U8(0),
                B(Star), R(1),
                B(Mov), R(closure), R(2),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(2),
  /*    8 S> */ B(LdaSmi), I8(1),
  /*    8 E> */ B(StaGlobal), U8(1), U8(0),
  /*   11 S> */ B(LdaSmi), I8(2),
  /*   12 E> */ B(StaGlobal), U8(1), U8(0),
                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: 3
parameter count: 1
bytecode array length: 23
bytecodes: [
                B(LdaConstant), U8(0),
                B(Star), R(1),
                B(Mov), R(closure), R(2),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(2),
  /*   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: [
]

