#
# 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),
  /*   30 E> */ B(StackCheck),
  /*   44 S> */ B(LdaSmi), U8(10),
                B(Star), R(0),
                B(LdaUndefined),
  /*   48 S> */ 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),
  /*   30 E> */ B(StackCheck),
  /*   44 S> */ B(LdaSmi), U8(10),
                B(Star), R(0),
  /*   48 S> */ B(JumpIfNotHole), U8(11),
                B(LdaConstant), U8(0),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(1), U8(1),
  /*   58 S> */ B(Return),
]
constant pool: [
  "x",
]
handlers: [
]

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

---
snippet: "
  const x = 10; x = 20;
"
frame size: 3
parameter count: 1
bytecode array length: 35
bytecodes: [
                B(LdaTheHole),
                B(Star), R(0),
  /*   30 E> */ B(StackCheck),
  /*   44 S> */ B(LdaSmi), U8(10),
                B(Star), R(0),
  /*   48 S> */ B(LdaSmi), U8(20),
                B(Star), R(1),
                B(Ldar), R(0),
                B(JumpIfNotHole), U8(11),
                B(LdaConstant), U8(0),
                B(Star), R(2),
  /*   50 E> */ B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
                B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
                B(Mov), R(1), R(0),
                B(LdaUndefined),
  /*   56 S> */ B(Return),
]
constant pool: [
  "x",
]
handlers: [
]

