#
# Autogenerated by generate-bytecode-expectations.
#

---
execute: yes
wrap: no
test function name: f

---
snippet: "
  function* f() { }
  f();
"
frame size: 11
parameter count: 1
bytecode array length: 212
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(21),
                B(ResumeGenerator), R(new_target),
                B(Star), R(1),
                B(LdaZero),
                B(TestEqualStrict), R(1), U8(0),
                B(JumpIfTrue), U8(61),
                B(LdaSmi), U8(77),
                B(Star), R(2),
                B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1),
                B(LdaSmi), U8(-2),
                B(Star), R(1),
                B(CreateFunctionContext), U8(2),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaContextSlot), R(context), U8(4), U8(0),
  /*   11 E> */ B(StackCheck),
                B(Mov), R(context), R(4),
  /*   11 E> */ B(LdrContextSlot), R(context), U8(4), U8(0), R(6),
                B(Ldar), R(6),
                B(Mov), R(closure), R(5),
                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
                B(StaContextSlot), R(context), U8(5), U8(0),
                B(Star), R(5),
                B(LdrContextSlot), R(context), U8(5), U8(0), R(6),
                B(LdaZero),
                B(SuspendGenerator), R(6),
                B(Ldar), R(5),
  /*   16 S> */ B(Return),
                B(LdaSmi), U8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
                B(Star), R(7),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
                B(Star), R(8),
                B(LdaZero),
                B(TestEqualStrict), R(8), U8(0),
                B(JumpIfTrue), U8(32),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(8), U8(0),
                B(JumpIfTrue), U8(22),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(10),
                B(Mov), R(7), R(9),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2),
                B(Star), R(3),
                B(LdaZero),
                B(Star), R(2),
                B(Jump), U8(35),
                B(Ldar), R(7),
  /*   11 E> */ B(Throw),
                B(LdrUndefined), R(5),
                B(LdaTrue),
                B(Star), R(6),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
                B(Star), R(3),
                B(LdaSmi), U8(1),
                B(Star), R(2),
                B(Jump), U8(14),
                B(LdaSmi), U8(-1),
                B(Star), R(2),
                B(Jump), U8(8),
                B(Star), R(3),
                B(LdaSmi), U8(2),
                B(Star), R(2),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Star), R(4),
                B(LdrContextSlot), R(context), U8(5), U8(0), R(5),
                B(CallRuntime), U16(Runtime::k_GeneratorClose), R(5), U8(1),
                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
                B(LdaZero),
                B(TestEqualStrict), R(2), U8(0),
                B(JumpIfTrue), U8(18),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(2), U8(0),
                B(JumpIfTrue), U8(14),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(2), U8(0),
                B(JumpIfTrue), U8(10),
                B(Jump), U8(11),
                B(Ldar), R(3),
  /*   16 S> */ B(Return),
                B(Ldar), R(3),
  /*   16 S> */ B(Return),
                B(Ldar), R(3),
                B(ReThrow),
                B(LdaUndefined),
  /*   16 S> */ B(Return),
]
constant pool: [
]
handlers: [
  [41, 145, 151],
]

---
snippet: "
  function* f() { yield 42 }
  f();
"
frame size: 11
parameter count: 1
bytecode array length: 310
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                B(ResumeGenerator), R(new_target),
                B(Star), R(1),
                B(LdaZero),
                B(TestEqualStrict), R(1), U8(0),
                B(JumpIfTrue), U8(68),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(1), U8(0),
                B(JumpIfTrueConstant), U8(0),
                B(LdaSmi), U8(77),
                B(Star), R(2),
                B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1),
                B(LdaSmi), U8(-2),
                B(Star), R(1),
                B(CreateFunctionContext), U8(2),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaContextSlot), R(context), U8(4), U8(0),
  /*   11 E> */ B(StackCheck),
                B(Mov), R(context), R(4),
  /*   11 E> */ B(LdrContextSlot), R(context), U8(4), U8(0), R(6),
                B(Ldar), R(6),
                B(Mov), R(closure), R(5),
                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
                B(StaContextSlot), R(context), U8(5), U8(0),
                B(Star), R(5),
                B(LdrContextSlot), R(context), U8(5), U8(0), R(6),
                B(LdaZero),
                B(SuspendGenerator), R(6),
                B(Ldar), R(5),
  /*   25 S> */ B(Return),
                B(LdaSmi), U8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
                B(Star), R(7),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
                B(Star), R(8),
                B(LdaZero),
                B(TestEqualStrict), R(8), U8(0),
                B(JumpIfTrue), U8(32),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(8), U8(0),
                B(JumpIfTrue), U8(22),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(10),
                B(Mov), R(7), R(9),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2),
                B(Star), R(3),
                B(LdaZero),
                B(Star), R(2),
                B(Jump), U8(116),
                B(Ldar), R(7),
  /*   11 E> */ B(Throw),
  /*   16 S> */ B(LdaSmi), U8(42),
                B(Star), R(5),
                B(LdaFalse),
                B(Star), R(6),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
                B(Star), R(7),
                B(LdrContextSlot), R(context), U8(5), U8(0), R(5),
                B(LdaSmi), U8(1),
                B(SuspendGenerator), R(5),
                B(Ldar), R(7),
  /*   25 S> */ B(Return),
                B(LdaSmi), U8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(5), U8(1),
                B(Star), R(6),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(5), U8(1),
                B(Star), R(8),
                B(LdaZero),
                B(TestEqualStrict), R(8), U8(0),
                B(JumpIfTrue), U8(33),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(8), U8(0),
                B(JumpIfTrue), U8(23),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(10),
                B(Mov), R(6), R(9),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2),
                B(Star), R(3),
                B(LdaSmi), U8(1),
                B(Star), R(2),
                B(Jump), U8(35),
                B(Ldar), R(6),
  /*   16 E> */ B(Throw),
                B(LdrUndefined), R(5),
                B(LdaTrue),
                B(Star), R(6),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
                B(Star), R(3),
                B(LdaSmi), U8(2),
                B(Star), R(2),
                B(Jump), U8(14),
                B(LdaSmi), U8(-1),
                B(Star), R(2),
                B(Jump), U8(8),
                B(Star), R(3),
                B(LdaSmi), U8(3),
                B(Star), R(2),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Star), R(4),
                B(LdrContextSlot), R(context), U8(5), U8(0), R(5),
                B(CallRuntime), U16(Runtime::k_GeneratorClose), R(5), U8(1),
                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
                B(LdaZero),
                B(TestEqualStrict), R(2), U8(0),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(2), U8(0),
                B(JumpIfTrue), U8(21),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(2), U8(0),
                B(JumpIfTrue), U8(17),
                B(LdaSmi), U8(3),
                B(TestEqualStrict), R(2), U8(0),
                B(JumpIfTrue), U8(13),
                B(Jump), U8(14),
                B(Ldar), R(3),
  /*   25 S> */ B(Return),
                B(Ldar), R(3),
  /*   25 S> */ B(Return),
                B(Ldar), R(3),
  /*   25 S> */ B(Return),
                B(Ldar), R(3),
                B(ReThrow),
                B(LdaUndefined),
  /*   25 S> */ B(Return),
]
constant pool: [
  Smi [141],
]
handlers: [
  [48, 233, 239],
]

---
snippet: "
  function* f() { for (let x of [42]) yield x }
  f();
"
frame size: 18
parameter count: 1
bytecode array length: 807
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                B(ResumeGenerator), R(new_target),
                B(Star), R(4),
                B(LdaZero),
                B(TestEqualStrict), R(4), U8(0),
                B(JumpIfTrue), U8(68),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(4), U8(0),
                B(JumpIfTrueConstant), U8(3),
                B(LdaSmi), U8(77),
                B(Star), R(5),
                B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
                B(LdaSmi), U8(-2),
                B(Star), R(4),
                B(CreateFunctionContext), U8(9),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaContextSlot), R(context), U8(4), U8(0),
  /*   11 E> */ B(StackCheck),
                B(Mov), R(context), R(7),
  /*   11 E> */ B(LdrContextSlot), R(context), U8(4), U8(0), R(9),
                B(Ldar), R(9),
                B(Mov), R(closure), R(8),
                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(8), U8(2),
                B(StaContextSlot), R(context), U8(5), U8(0),
                B(Star), R(8),
                B(LdrContextSlot), R(context), U8(5), U8(0), R(9),
                B(LdaZero),
                B(SuspendGenerator), R(9),
                B(Ldar), R(8),
  /*   44 S> */ B(Return),
                B(LdaSmi), U8(-2),
                B(Star), R(4),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
                B(Star), R(10),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
                B(Star), R(11),
                B(LdaZero),
                B(TestEqualStrict), R(11), U8(0),
                B(JumpIfTrue), U8(32),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(11), U8(0),
                B(JumpIfTrue), U8(22),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(13),
                B(Mov), R(10), R(12),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(12), U8(2),
                B(Star), R(6),
                B(LdaZero),
                B(Star), R(5),
                B(JumpConstant), U8(20),
                B(Ldar), R(10),
  /*   11 E> */ B(Throw),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(0),
                B(PushContext), R(1),
                B(LdaTheHole),
                B(StaContextSlot), R(context), U8(4), U8(0),
                B(LdaZero),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(Mov), R(context), R(10),
                B(Mov), R(context), R(11),
  /*   30 S> */ B(CreateArrayLiteral), U8(1), U8(0), U8(9),
                B(Star), R(13),
                B(LdaConstant), U8(2),
  /*   30 E> */ B(LdrKeyedProperty), R(13), U8(4), R(12),
  /*   30 E> */ B(Call), R(12), R(13), U8(1), U8(2),
  /*   30 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
                B(LdaSmi), U8(-2),
                B(TestEqual), R(4), U8(0),
                B(JumpIfTrue), U8(18),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(4), U8(0),
                B(JumpIfTrueConstant), U8(9),
                B(LdaSmi), U8(77),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kAbort), R(12), U8(1),
  /*   27 S> */ B(LdrContextSlot), R(1), U8(7), U8(0), R(14),
                B(LdrNamedProperty), R(14), U8(4), U8(8), R(13),
  /*   27 E> */ B(Call), R(13), R(14), U8(1), U8(6),
  /*   27 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
                B(Star), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(12), U8(1),
                B(ToBooleanLogicalNot),
                B(JumpIfFalse), U8(12),
                B(LdrContextSlot), R(1), U8(8), U8(0), R(12),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
                B(LdrContextSlot), R(1), U8(8), U8(0), R(12),
                B(LdaNamedProperty), R(12), U8(5), U8(10),
                B(JumpIfToBooleanTrueConstant), U8(10),
                B(LdrContextSlot), R(1), U8(8), U8(0), R(12),
                B(LdaNamedProperty), R(12), U8(6), U8(12),
                B(StaContextSlot), R(1), U8(10), U8(0),
                B(LdaSmi), U8(2),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(StaContextSlot), R(1), U8(6), U8(0),
  /*   16 E> */ B(StackCheck),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(7),
                B(PushContext), R(2),
                B(LdaTheHole),
                B(StaContextSlot), R(context), U8(4), U8(0),
                B(LdaContextSlot), R(1), U8(6), U8(0),
                B(StaContextSlot), R(context), U8(4), U8(0),
  /*   36 S> */ B(LdaContextSlot), R(context), U8(4), U8(0),
                B(JumpIfNotHole), U8(11),
                B(LdaConstant), U8(8),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(13), U8(1),
                B(Star), R(12),
                B(LdaFalse),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(12), U8(2),
                B(Star), R(14),
                B(LdrContextSlot), R(1), U8(5), U8(0), R(12),
                B(LdaSmi), U8(1),
                B(SuspendGenerator), R(12),
                B(Ldar), R(14),
  /*   44 S> */ B(Return),
                B(LdaSmi), U8(-2),
                B(Star), R(4),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(12), U8(1),
                B(Star), R(15),
                B(LdaZero),
                B(TestEqualStrict), R(15), U8(0),
                B(JumpIfTrue), U8(44),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(15), U8(0),
                B(JumpIfTrue), U8(34),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(17),
                B(Mov), R(13), R(16),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(16), U8(2),
                B(PopContext), R(2),
                B(PopContext), R(2),
                B(PopContext), R(2),
                B(PopContext), R(2),
                B(PopContext), R(2),
                B(PopContext), R(2),
                B(Star), R(9),
                B(LdaZero),
                B(Star), R(8),
                B(Jump), U8(76),
                B(Ldar), R(13),
  /*   36 E> */ B(Throw),
                B(Ldar), R(13),
                B(PopContext), R(2),
                B(LdaZero),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(Wide), B(JumpLoop), U16(-234), U16(0),
                B(Jump), U8(44),
                B(Star), R(12),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(12), U8(11), U8(12),
                B(Star), R(11),
                B(PushContext), R(2),
                B(LdrContextSlot), R(0), U8(9), U8(0), R(12),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(12), U8(14),
                B(JumpIfFalse), U8(8),
                B(LdaSmi), U8(1),
                B(StaContextSlot), R(0), U8(9), U8(0),
                B(LdrContextSlot), R(context), U8(4), U8(0), R(12),
                B(CallRuntime), U16(Runtime::kReThrow), R(12), U8(1),
                B(PopContext), R(2),
                B(LdaSmi), U8(-1),
                B(Star), R(8),
                B(Jump), U8(8),
                B(Star), R(9),
                B(LdaSmi), U8(1),
                B(Star), R(8),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Star), R(10),
                B(LdrContextSlot), R(1), U8(9), U8(0), R(11),
                B(LdaZero),
                B(TestEqualStrict), R(11), U8(15),
                B(JumpIfTrueConstant), U8(18),
                B(LdrContextSlot), R(1), U8(7), U8(0), R(11),
                B(LdaUndefined),
                B(TestEqualStrict), R(11), U8(16),
                B(JumpIfTrueConstant), U8(19),
                B(LdrContextSlot), R(1), U8(7), U8(0), R(11),
                B(LdaNamedProperty), R(11), U8(13), U8(17),
                B(StaContextSlot), R(1), U8(11), U8(0),
                B(LdrContextSlot), R(1), U8(11), U8(0), R(11),
                B(LdaNull),
                B(TestEqual), R(11), U8(19),
                B(JumpIfFalse), U8(4),
                B(JumpConstant), U8(17),
                B(LdrContextSlot), R(1), U8(9), U8(0), R(11),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(11), U8(20),
                B(JumpIfFalse), U8(76),
                B(LdaContextSlot), R(1), U8(11), U8(0),
                B(TypeOf),
                B(Star), R(11),
                B(LdaConstant), U8(14),
                B(TestEqualStrict), R(11), U8(21),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), U16(129),
                B(Star), R(11),
                B(LdaConstant), U8(15),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2),
                B(Throw),
                B(Mov), R(context), R(11),
                B(LdrContextSlot), R(1), U8(11), U8(0), R(12),
                B(LdrContextSlot), R(1), U8(7), U8(0), R(13),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
                B(Jump), U8(23),
                B(Star), R(12),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(12), U8(11), U8(16),
                B(Star), R(11),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Ldar), R(11),
                B(PushContext), R(2),
                B(PopContext), R(2),
                B(Jump), U8(43),
                B(LdrContextSlot), R(1), U8(11), U8(0), R(11),
                B(LdrContextSlot), R(1), U8(7), U8(0), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(11), U8(2),
                B(StaContextSlot), R(1), U8(12), U8(0),
                B(LdrContextSlot), R(1), U8(12), U8(0), R(11),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(11), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(12),
                B(LdrContextSlot), R(1), U8(12), U8(0), R(11),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(10), U8(1),
                B(LdaZero),
                B(TestEqualStrict), R(8), U8(0),
                B(JumpIfTrue), U8(11),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(8), U8(0),
                B(JumpIfTrue), U8(17),
                B(Jump), U8(28),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(LdaSmi), U8(1),
                B(Star), R(5),
                B(Mov), R(9), R(6),
                B(Jump), U8(47),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(LdaSmi), U8(2),
                B(Star), R(5),
                B(Mov), R(9), R(6),
                B(Jump), U8(34),
                B(PopContext), R(1),
                B(LdrUndefined), R(8),
                B(LdaTrue),
                B(Star), R(9),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(8), U8(2),
                B(Star), R(6),
                B(LdaSmi), U8(3),
                B(Star), R(5),
                B(Jump), U8(14),
                B(LdaSmi), U8(-1),
                B(Star), R(5),
                B(Jump), U8(8),
                B(Star), R(6),
                B(LdaSmi), U8(4),
                B(Star), R(5),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Star), R(7),
                B(LdrContextSlot), R(context), U8(5), U8(0), R(8),
                B(CallRuntime), U16(Runtime::k_GeneratorClose), R(8), U8(1),
                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(7), U8(1),
                B(LdaZero),
                B(TestEqualStrict), R(5), U8(0),
                B(JumpIfTrue), U8(32),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(5), U8(0),
                B(JumpIfTrue), U8(28),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(5), U8(0),
                B(JumpIfTrue), U8(24),
                B(LdaSmi), U8(3),
                B(TestEqualStrict), R(5), U8(0),
                B(JumpIfTrue), U8(20),
                B(LdaSmi), U8(4),
                B(TestEqualStrict), R(5), U8(0),
                B(JumpIfTrue), U8(16),
                B(Jump), U8(17),
                B(Ldar), R(6),
  /*   44 S> */ B(Return),
                B(Ldar), R(6),
  /*   44 S> */ B(Return),
                B(Ldar), R(6),
                B(ReThrow),
                B(Ldar), R(6),
  /*   44 S> */ B(Return),
                B(Ldar), R(6),
                B(ReThrow),
                B(LdaUndefined),
  /*   44 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  FIXED_ARRAY_TYPE,
  SYMBOL_TYPE,
  Smi [158],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["x"],
  Smi [146],
  Smi [169],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["function"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
  FIXED_ARRAY_TYPE,
  Smi [129],
  Smi [166],
  Smi [155],
  Smi [603],
]
handlers: [
  [48, 720, 726],
  [153, 460, 466],
  [156, 416, 418],
  [574, 588, 590],
]

