#
# Autogenerated by generate-bytecode-expectations.
#

---
pool type: string
execute: yes
wrap: yes

---
snippet: "
  const x = 10;
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecodes: [
  B(LdaTheHole),
  B(Star), R(0),
  B(StackCheck),
  B(LdaSmi), U8(10),
  B(Star), R(0),
  B(LdaUndefined),
  B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  const x = 10; return x;
"
frame size: 2
parameter count: 1
bytecode array length: 20
bytecodes: [
  B(LdaTheHole),
  B(Star), R(0),
  B(StackCheck),
  B(LdaSmi), U8(10),
  B(Star), R(0),
  B(JumpIfNotHole), U8(11),
  B(LdaConstant), U8(0),
  B(Star), R(1),
  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(1), U8(1),
  B(Return),
]
constant pool: [
  "x",
]
handlers: [
]

---
snippet: "
  const x = ( x = 20);
"
frame size: 3
parameter count: 1
bytecode array length: 32
bytecodes: [
  B(LdaTheHole),
  B(Star), R(0),
  B(StackCheck),
  B(LdaSmi), U8(20),
  B(Star), R(1),
  B(Ldar), R(0),
  B(JumpIfNotHole), U8(11),
  B(LdaConstant), U8(0),
  B(Star), R(2),
  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
  B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
  B(Ldar), R(1),
  B(Star), R(0),
  B(LdaUndefined),
  B(Return),
]
constant pool: [
  "x",
]
handlers: [
]

---
snippet: "
  const x = 10; x = 20;
"
frame size: 3
parameter count: 1
bytecode array length: 36
bytecodes: [
  B(LdaTheHole),
  B(Star), R(0),
  B(StackCheck),
  B(LdaSmi), U8(10),
  B(Star), R(0),
  B(LdaSmi), U8(20),
  B(Star), R(1),
  B(Ldar), R(0),
  B(JumpIfNotHole), U8(11),
  B(LdaConstant), U8(0),
  B(Star), R(2),
  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
  B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
  B(Ldar), R(1),
  B(Star), R(0),
  B(LdaUndefined),
  B(Return),
]
constant pool: [
  "x",
]
handlers: [
]

