#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: no
test function name: f
async iteration: yes

---
snippet: "
  async function* f() { }
  f();
"
frame size: 10
parameter count: 1
bytecode array length: 216
bytecodes: [
                B(Mov), R(new_target), R(1),
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(25),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(1), U8(1),
                B(PushContext), R(3),
                B(RestoreGeneratorState), R(1),
                B(Star), R(2),
                B(SwitchOnSmiNoFeedback), U8(0), U8(1), I8(0),
                B(LdaSmi), I8(81),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(2),
                B(Mov), R(closure), R(3),
                B(Mov), R(this), R(4),
                B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
                B(Star), R(0),
  /*   17 E> */ B(StackCheck),
                B(Star), R(1),
                B(Mov), R(context), R(5),
                B(Mov), R(context), R(6),
                B(Ldar), R(0),
  /*   17 E> */ B(SuspendGenerator), R(1), R(0), U8(7), U8(0),
  /*   22 S> */ B(Return),
                B(RestoreGeneratorRegisters), R(1), R(0), U8(7),
                B(LdaSmi), I8(-2),
                B(Star), R(2),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(1), U8(1),
                B(Star), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(1), U8(1),
                B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
                B(Ldar), R(7),
  /*   17 E> */ B(Throw),
                B(LdaZero),
                B(Star), R(3),
                B(Mov), R(7), R(4),
                B(Jump), U8(61),
                B(LdaUndefined),
                B(Star), R(4),
                B(LdaZero),
                B(Star), R(3),
                B(Jump), U8(53),
                B(Jump), U8(39),
                B(Star), R(7),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(7), U8(3), U8(4),
                B(Star), R(6),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(6),
                B(PushContext), R(7),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(9),
                B(Mov), R(0), R(8),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(8), U8(2),
                B(PopContext), R(7),
                B(Star), R(4),
                B(LdaSmi), I8(1),
                B(Star), R(3),
                B(Jump), U8(14),
                B(LdaSmi), I8(-1),
                B(Star), R(3),
                B(Jump), U8(8),
                B(Star), R(4),
                B(LdaSmi), I8(2),
                B(Star), R(3),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(0), U8(1),
                B(Ldar), R(5),
                B(SetPendingMessage),
                B(Ldar), R(3),
                B(SwitchOnSmiNoFeedback), U8(5), U8(3), I8(0),
                B(Jump), U8(34),
                B(LdaTrue),
                B(Star), R(8),
                B(Mov), R(0), R(6),
                B(Mov), R(4), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorResolve), R(6), U8(3),
                B(Star), R(9),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(1), U8(1),
                B(Ldar), R(9),
  /*   22 S> */ B(Return),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(1), U8(1),
                B(Ldar), R(4),
  /*   22 S> */ B(Return),
                B(Ldar), R(4),
                B(ReThrow),
                B(LdaUndefined),
                B(Star), R(3),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(1), U8(1),
                B(Ldar), R(3),
  /*   22 S> */ B(Return),
]
constant pool: [
  Smi [46],
  Smi [15],
  Smi [7],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
  FIXED_ARRAY_TYPE,
  Smi [6],
  Smi [28],
  Smi [35],
]
handlers: [
  [52, 143, 149],
  [55, 104, 106],
]

---
snippet: "
  async function* f() { yield 42 }
  f();
"
frame size: 10
parameter count: 1
bytecode array length: 269
bytecodes: [
                B(Mov), R(new_target), R(1),
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(25),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(1), U8(1),
                B(PushContext), R(3),
                B(RestoreGeneratorState), R(1),
                B(Star), R(2),
                B(SwitchOnSmiNoFeedback), U8(0), U8(2), I8(0),
                B(LdaSmi), I8(81),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(2),
                B(Mov), R(closure), R(3),
                B(Mov), R(this), R(4),
                B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
                B(Star), R(0),
  /*   17 E> */ B(StackCheck),
                B(Star), R(1),
                B(Mov), R(context), R(5),
                B(Mov), R(context), R(6),
                B(Ldar), R(0),
  /*   17 E> */ B(SuspendGenerator), R(1), R(0), U8(7), U8(0),
  /*   31 S> */ B(Return),
                B(RestoreGeneratorRegisters), R(1), R(0), U8(7),
                B(LdaSmi), I8(-2),
                B(Star), R(2),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(1), U8(1),
                B(Star), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(1), U8(1),
                B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
                B(Ldar), R(7),
  /*   17 E> */ B(Throw),
                B(LdaZero),
                B(Star), R(3),
                B(Mov), R(7), R(4),
                B(Jump), U8(114),
  /*   22 S> */ B(LdaSmi), I8(42),
                B(Star), R(8),
                B(LdaFalse),
                B(Star), R(9),
                B(Mov), R(1), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorResolve), R(7), U8(3),
                B(SuspendGenerator), R(1), R(0), U8(7), U8(1),
  /*   31 S> */ B(Return),
                B(RestoreGeneratorRegisters), R(1), R(0), U8(7),
                B(LdaSmi), I8(-2),
                B(Star), R(2),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(1), U8(1),
                B(Star), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(1), U8(1),
                B(SwitchOnSmiNoFeedback), U8(4), U8(2), I8(0),
                B(Ldar), R(7),
  /*   22 E> */ B(Throw),
                B(LdaZero),
                B(Star), R(3),
                B(Mov), R(7), R(4),
                B(Jump), U8(61),
                B(LdaUndefined),
                B(Star), R(4),
                B(LdaZero),
                B(Star), R(3),
                B(Jump), U8(53),
                B(Jump), U8(39),
                B(Star), R(7),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(7), U8(6), U8(7),
                B(Star), R(6),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(6),
                B(PushContext), R(7),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(9),
                B(Mov), R(0), R(8),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(8), U8(2),
                B(PopContext), R(7),
                B(Star), R(4),
                B(LdaSmi), I8(1),
                B(Star), R(3),
                B(Jump), U8(14),
                B(LdaSmi), I8(-1),
                B(Star), R(3),
                B(Jump), U8(8),
                B(Star), R(4),
                B(LdaSmi), I8(2),
                B(Star), R(3),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(0), U8(1),
                B(Ldar), R(5),
                B(SetPendingMessage),
                B(Ldar), R(3),
                B(SwitchOnSmiNoFeedback), U8(8), U8(3), I8(0),
                B(Jump), U8(34),
                B(LdaTrue),
                B(Star), R(8),
                B(Mov), R(0), R(6),
                B(Mov), R(4), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorResolve), R(6), U8(3),
                B(Star), R(9),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(1), U8(1),
                B(Ldar), R(9),
  /*   31 S> */ B(Return),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(1), U8(1),
                B(Ldar), R(4),
  /*   31 S> */ B(Return),
                B(Ldar), R(4),
                B(ReThrow),
                B(LdaUndefined),
                B(Star), R(3),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(1), U8(1),
                B(Ldar), R(3),
  /*   31 S> */ B(Return),
]
constant pool: [
  Smi [46],
  Smi [99],
  Smi [15],
  Smi [7],
  Smi [15],
  Smi [7],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
  FIXED_ARRAY_TYPE,
  Smi [6],
  Smi [28],
  Smi [35],
]
handlers: [
  [52, 196, 202],
  [55, 157, 159],
]

---
snippet: "
  async function* f() { for (let x of [42]) yield x }
  f();
"
frame size: 23
parameter count: 1
bytecode array length: 565
bytecodes: [
                B(Mov), R(new_target), R(10),
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(25),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(10), U8(1),
                B(PushContext), R(12),
                B(RestoreGeneratorState), R(10),
                B(Star), R(11),
                B(SwitchOnSmiNoFeedback), U8(0), U8(2), I8(0),
                B(LdaSmi), I8(81),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kAbort), R(12), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(11),
                B(Mov), R(closure), R(12),
                B(Mov), R(this), R(13),
                B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(12), U8(2),
                B(Star), R(2),
  /*   17 E> */ B(StackCheck),
                B(Star), R(10),
                B(Mov), R(context), R(14),
                B(Mov), R(context), R(15),
                B(Ldar), R(2),
  /*   17 E> */ B(SuspendGenerator), R(10), R(0), U8(16), U8(0),
  /*   50 S> */ B(Return),
                B(RestoreGeneratorRegisters), R(10), R(0), U8(16),
                B(LdaSmi), I8(-2),
                B(Star), R(11),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(10), U8(1),
                B(Star), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(10), U8(1),
                B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
                B(Ldar), R(16),
  /*   17 E> */ B(Throw),
                B(LdaZero),
                B(Star), R(12),
                B(Mov), R(16), R(13),
                B(JumpConstant), U8(20),
                B(LdaTheHole),
                B(Star), R(1),
                B(LdaZero),
                B(Star), R(6),
                B(Mov), R(context), R(18),
                B(Mov), R(context), R(19),
  /*   36 S> */ B(CreateArrayLiteral), U8(4), U8(0), U8(37),
                B(Star), R(20),
                B(LdaNamedProperty), R(20), U8(5), U8(1),
                B(Star), R(21),
                B(CallProperty0), R(21), R(20), U8(3),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
                B(Star), R(4),
                B(Ldar), R(11),
                B(SwitchOnSmiNoFeedback), U8(6), U8(1), I8(1),
                B(LdaSmi), I8(-2),
  /*   36 E> */ B(TestEqualStrictNoFeedback), R(11),
                B(JumpIfTrue), U8(11),
                B(LdaSmi), I8(81),
                B(Star), R(20),
                B(CallRuntime), U16(Runtime::kAbort), R(20), U8(1),
  /*   31 S> */ B(LdaNamedProperty), R(4), U8(7), U8(7),
                B(Star), R(20),
                B(CallProperty0), R(20), R(4), U8(5),
                B(Star), R(5),
  /*   31 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1),
                B(ToBooleanLogicalNot),
                B(JumpIfFalse), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
                B(LdaNamedProperty), R(5), U8(8), U8(9),
                B(JumpIfToBooleanTrue), U8(77),
                B(LdaNamedProperty), R(5), U8(9), U8(11),
                B(Star), R(7),
                B(LdaSmi), I8(2),
                B(Star), R(6),
                B(Mov), R(7), R(3),
  /*   22 E> */ B(StackCheck),
                B(Mov), R(3), R(0),
  /*   42 S> */ B(LdaFalse),
                B(Star), R(22),
                B(Mov), R(10), R(20),
                B(Mov), R(0), R(21),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorResolve), R(20), U8(3),
                B(SuspendGenerator), R(10), R(0), U8(20), U8(1),
  /*   50 S> */ B(Return),
                B(RestoreGeneratorRegisters), R(10), R(0), U8(20),
                B(LdaSmi), I8(-2),
                B(Star), R(11),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(10), U8(1),
                B(Star), R(20),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(10), U8(1),
                B(SwitchOnSmiNoFeedback), U8(10), U8(2), I8(0),
                B(Ldar), R(20),
  /*   42 E> */ B(Throw),
                B(LdaZero),
                B(Star), R(16),
                B(Mov), R(20), R(17),
                B(Jump), U8(60),
                B(LdaZero),
                B(Star), R(6),
                B(JumpLoop), U8(123), I8(0),
                B(Jump), U8(40),
                B(Star), R(20),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(20), U8(12), U8(13),
                B(Star), R(19),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(19),
                B(PushContext), R(20),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(6), U8(13),
                B(JumpIfFalse), U8(6),
                B(LdaSmi), I8(1),
                B(Star), R(6),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(21),
                B(CallRuntime), U16(Runtime::kReThrow), R(21), U8(1),
                B(PopContext), R(20),
                B(LdaSmi), I8(-1),
                B(Star), R(16),
                B(Jump), U8(8),
                B(Star), R(17),
                B(LdaSmi), I8(1),
                B(Star), R(16),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(18),
                B(LdaZero),
                B(TestEqualStrict), R(6), U8(14),
                B(JumpIfTrue), U8(104),
                B(LdaNamedProperty), R(4), U8(14), U8(15),
                B(Star), R(8),
                B(TestUndetectable),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(93),
                B(LdaSmi), I8(1),
                B(TestEqualStrict), R(6), U8(18),
                B(JumpIfFalse), U8(61),
                B(Ldar), R(8),
                B(TestTypeOf), U8(5),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), I16(132),
                B(Star), R(19),
                B(LdaConstant), U8(15),
                B(Star), R(20),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(19), U8(2),
                B(Throw),
                B(Mov), R(context), R(19),
                B(Mov), R(8), R(20),
                B(Mov), R(4), R(21),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(20), U8(2),
                B(Jump), U8(20),
                B(Star), R(20),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(20), U8(12), U8(16),
                B(Star), R(19),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(19),
                B(PushContext), R(20),
                B(PopContext), R(20),
                B(Jump), U8(27),
                B(Mov), R(8), R(19),
                B(Mov), R(4), R(20),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(19), U8(2),
                B(Star), R(9),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(9), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1),
                B(Ldar), R(18),
                B(SetPendingMessage),
                B(Ldar), R(16),
                B(SwitchOnSmiNoFeedback), U8(17), U8(2), I8(0),
                B(Jump), U8(13),
                B(LdaZero),
                B(Star), R(12),
                B(Mov), R(17), R(13),
                B(Jump), U8(64),
                B(Ldar), R(17),
                B(ReThrow),
                B(LdaUndefined),
                B(Star), R(13),
                B(LdaZero),
                B(Star), R(12),
                B(Jump), U8(53),
                B(Jump), U8(39),
                B(Star), R(16),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(16), U8(12), U8(19),
                B(Star), R(15),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(15),
                B(PushContext), R(16),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(18),
                B(Mov), R(2), R(17),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(17), U8(2),
                B(PopContext), R(16),
                B(Star), R(13),
                B(LdaSmi), I8(1),
                B(Star), R(12),
                B(Jump), U8(14),
                B(LdaSmi), I8(-1),
                B(Star), R(12),
                B(Jump), U8(8),
                B(Star), R(13),
                B(LdaSmi), I8(2),
                B(Star), R(12),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(14),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(2), U8(1),
                B(Ldar), R(14),
                B(SetPendingMessage),
                B(Ldar), R(12),
                B(SwitchOnSmiNoFeedback), U8(21), U8(3), I8(0),
                B(Jump), U8(34),
                B(LdaTrue),
                B(Star), R(17),
                B(Mov), R(2), R(15),
                B(Mov), R(13), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorResolve), R(15), U8(3),
                B(Star), R(18),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(10), U8(1),
                B(Ldar), R(18),
  /*   50 S> */ B(Return),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(10), U8(1),
                B(Ldar), R(13),
  /*   50 S> */ B(Return),
                B(Ldar), R(13),
                B(ReThrow),
                B(LdaUndefined),
                B(Star), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(10), U8(1),
                B(Ldar), R(12),
  /*   50 S> */ B(Return),
]
constant pool: [
  Smi [46],
  Smi [116],
  Smi [15],
  Smi [7],
  TUPLE2_TYPE,
  SYMBOL_TYPE,
  Smi [85],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  Smi [15],
  Smi [7],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
  FIXED_ARRAY_TYPE,
  Smi [6],
  Smi [14],
  FIXED_ARRAY_TYPE,
  Smi [410],
  Smi [6],
  Smi [28],
  Smi [35],
]
handlers: [
  [52, 492, 498],
  [55, 453, 455],
  [105, 299, 305],
  [108, 259, 261],
  [366, 376, 378],
]

---
snippet: "
  function* g() { yield 42 }
  async function* f() { yield* g() }
  f();
"
frame size: 19
parameter count: 1
bytecode array length: 864
bytecodes: [
                B(Mov), R(new_target), R(9),
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(25),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(9), U8(1),
                B(PushContext), R(11),
                B(RestoreGeneratorState), R(9),
                B(Star), R(10),
                B(SwitchOnSmiNoFeedback), U8(0), U8(7), I8(0),
                B(LdaSmi), I8(81),
                B(Star), R(11),
                B(CallRuntime), U16(Runtime::kAbort), R(11), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(10),
                B(Mov), R(closure), R(11),
                B(Mov), R(this), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(11), U8(2),
                B(Star), R(0),
  /*   44 E> */ B(StackCheck),
                B(Star), R(9),
                B(Mov), R(context), R(13),
                B(Mov), R(context), R(14),
                B(Ldar), R(0),
  /*   44 E> */ B(SuspendGenerator), R(9), R(0), U8(15), U8(0),
  /*   60 S> */ B(Return),
                B(RestoreGeneratorRegisters), R(9), R(0), U8(15),
                B(LdaSmi), I8(-2),
                B(Star), R(10),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
                B(Star), R(15),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
                B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(0),
                B(Ldar), R(15),
  /*   44 E> */ B(Throw),
                B(LdaZero),
                B(Star), R(11),
                B(Mov), R(15), R(12),
                B(JumpConstant), U8(30),
  /*   49 S> */ B(LdaUndefined),
                B(Star), R(1),
                B(LdaZero),
                B(Star), R(2),
                B(LdaUndefined),
                B(Star), R(3),
                B(LdaGlobal), U8(9), U8(2),
                B(Star), R(17),
  /*   56 E> */ B(CallUndefinedReceiver0), R(17), U8(0),
                B(Star), R(15),
                B(LdaNamedProperty), R(15), U8(10), U8(8),
                B(JumpIfUndefined), U8(17),
                B(JumpIfNull), U8(15),
                B(Star), R(16),
                B(CallProperty0), R(16), R(15), U8(10),
                B(JumpIfJSReceiver), U8(23),
                B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
                B(LdaNamedProperty), R(15), U8(11), U8(4),
                B(Star), R(16),
                B(CallProperty0), R(16), R(15), U8(6),
                B(Star), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(16), U8(1),
                B(Star), R(4),
                B(Ldar), R(10),
                B(SwitchOnSmiNoFeedback), U8(12), U8(6), I8(1),
                B(LdaSmi), I8(-2),
                B(TestEqualStrictNoFeedback), R(10),
                B(JumpIfTrue), U8(11),
                B(LdaSmi), I8(81),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::kAbort), R(15), U8(1),
                B(StackCheck),
                B(LdaZero),
                B(TestEqualStrict), R(2), U8(16),
                B(Mov), R(2), R(15),
                B(JumpIfTrue), U8(18),
                B(LdaSmi), I8(1),
                B(TestEqualStrict), R(15), U8(20),
                B(JumpIfTrue), U8(83),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(15), U8(29),
                B(JumpIfTrue), U8(167),
                B(JumpConstant), U8(24),
                B(LdaNamedProperty), R(4), U8(18), U8(14),
                B(Star), R(16),
                B(CallProperty1), R(16), R(4), R(1), U8(12),
                B(Star), R(17),
                B(Mov), R(9), R(16),
                B(CallJSRuntime), U8(%async_generator_await_uncaught), R(16), U8(2),
                B(SuspendGenerator), R(9), R(0), U8(16), U8(1),
  /*   60 S> */ B(Return),
                B(RestoreGeneratorRegisters), R(9), R(0), U8(16),
                B(LdaSmi), I8(-2),
                B(Star), R(10),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
                B(Star), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
                B(Star), R(17),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(17),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(16),
                B(ReThrow),
                B(Mov), R(16), R(3),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(16), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1),
                B(JumpConstant), U8(25),
                B(LdaNamedProperty), R(4), U8(19), U8(17),
                B(Star), R(3),
                B(TestUndetectable),
                B(JumpIfFalse), U8(10),
                B(LdaZero),
                B(Star), R(11),
                B(Mov), R(1), R(12),
                B(JumpConstant), U8(31),
                B(Mov), R(3), R(16),
                B(Mov), R(4), R(17),
                B(Mov), R(1), R(18),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(16), U8(3),
                B(Star), R(17),
                B(Mov), R(9), R(16),
                B(CallJSRuntime), U8(%async_generator_await_uncaught), R(16), U8(2),
                B(SuspendGenerator), R(9), R(0), U8(16), U8(2),
  /*   60 S> */ B(Return),
                B(RestoreGeneratorRegisters), R(9), R(0), U8(16),
                B(LdaSmi), I8(-2),
                B(Star), R(10),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
                B(Star), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
                B(Star), R(17),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(17),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(16),
                B(ReThrow),
                B(Mov), R(16), R(3),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(16), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1),
                B(JumpConstant), U8(26),
                B(LdaNamedProperty), R(4), U8(20), U8(21),
                B(Star), R(5),
                B(TestUndetectable),
                B(JumpIfFalse), U8(212),
                B(LdaNamedProperty), R(4), U8(19), U8(24),
                B(Star), R(6),
                B(TestUndetectable),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(185),
                B(LdaZero),
                B(Star), R(16),
                B(LdaSmi), I8(1),
                B(TestEqualStrict), R(16), U8(27),
                B(JumpIfFalse), U8(106),
                B(Ldar), R(6),
                B(TestTypeOf), U8(5),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), I16(132),
                B(Star), R(16),
                B(LdaConstant), U8(21),
                B(Star), R(17),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2),
                B(Throw),
                B(Mov), R(context), R(16),
                B(Mov), R(6), R(17),
                B(Mov), R(4), R(18),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(17), U8(2),
                B(Star), R(18),
                B(Mov), R(9), R(17),
                B(CallJSRuntime), U8(%async_generator_await_caught), R(17), U8(2),
                B(SuspendGenerator), R(9), R(0), U8(17), U8(3),
  /*   60 S> */ B(Return),
                B(RestoreGeneratorRegisters), R(9), R(0), U8(17),
                B(LdaSmi), I8(-2),
                B(Star), R(10),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
                B(Star), R(17),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
                B(Star), R(18),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(18),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(17),
                B(ReThrow),
                B(Ldar), R(17),
                B(Jump), U8(20),
                B(Star), R(17),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(17), U8(22), U8(23),
                B(Star), R(16),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(16),
                B(PushContext), R(17),
                B(PopContext), R(17),
                B(Jump), U8(71),
                B(Mov), R(6), R(16),
                B(Mov), R(4), R(17),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(16), U8(2),
                B(Star), R(17),
                B(Mov), R(9), R(16),
                B(CallJSRuntime), U8(%async_generator_await_uncaught), R(16), U8(2),
                B(SuspendGenerator), R(9), R(0), U8(16), U8(4),
  /*   60 S> */ B(Return),
                B(RestoreGeneratorRegisters), R(9), R(0), U8(16),
                B(LdaSmi), I8(-2),
                B(Star), R(10),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
                B(Star), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
                B(Star), R(17),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(17),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(16),
                B(ReThrow),
                B(Mov), R(16), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(16), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1),
                B(Wide), B(LdaSmi), I16(146),
                B(Star), R(16),
                B(LdaConstant), U8(21),
                B(Star), R(17),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2),
                B(Throw),
                B(Mov), R(5), R(16),
                B(Mov), R(4), R(17),
                B(Mov), R(1), R(18),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(16), U8(3),
                B(Star), R(17),
                B(Mov), R(9), R(16),
                B(CallJSRuntime), U8(%async_generator_await_uncaught), R(16), U8(2),
                B(SuspendGenerator), R(9), R(0), U8(16), U8(5),
  /*   60 S> */ B(Return),
                B(RestoreGeneratorRegisters), R(9), R(0), U8(16),
                B(LdaSmi), I8(-2),
                B(Star), R(10),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
                B(Star), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
                B(Star), R(17),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(17),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(16),
                B(ReThrow),
                B(Mov), R(16), R(3),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(16), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1),
                B(Jump), U8(2),
                B(LdaNamedProperty), R(3), U8(27), U8(30),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(57),
                B(LdaNamedProperty), R(3), U8(28), U8(32),
                B(Star), R(3),
                B(LdaFalse),
                B(Star), R(17),
                B(Mov), R(9), R(15),
                B(Mov), R(3), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorResolve), R(15), U8(3),
                B(SuspendGenerator), R(9), R(0), U8(15), U8(6),
  /*   60 S> */ B(Return),
                B(RestoreGeneratorRegisters), R(9), R(0), U8(15),
                B(LdaSmi), I8(-2),
                B(Star), R(10),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
                B(Star), R(1),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(Star), R(2),
                B(Wide), B(JumpLoop), U16(561), I16(0),
                B(LdaSmi), I8(1),
                B(TestEqualStrict), R(2), U8(34),
                B(JumpIfFalse), U8(13),
                B(LdaNamedProperty), R(3), U8(28), U8(35),
                B(Star), R(12),
                B(LdaZero),
                B(Star), R(11),
                B(Jump), U8(67),
                B(LdaNamedProperty), R(3), U8(28), U8(37),
                B(Star), R(8),
                B(LdaUndefined),
                B(Star), R(12),
                B(LdaZero),
                B(Star), R(11),
                B(Jump), U8(53),
                B(Jump), U8(39),
                B(Star), R(15),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(15), U8(22), U8(29),
                B(Star), R(14),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(14),
                B(PushContext), R(15),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(17),
                B(Mov), R(0), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(16), U8(2),
                B(PopContext), R(15),
                B(Star), R(12),
                B(LdaSmi), I8(1),
                B(Star), R(11),
                B(Jump), U8(14),
                B(LdaSmi), I8(-1),
                B(Star), R(11),
                B(Jump), U8(8),
                B(Star), R(12),
                B(LdaSmi), I8(2),
                B(Star), R(11),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(13),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(0), U8(1),
                B(Ldar), R(13),
                B(SetPendingMessage),
                B(Ldar), R(11),
                B(SwitchOnSmiNoFeedback), U8(32), U8(3), I8(0),
                B(Jump), U8(34),
                B(LdaTrue),
                B(Star), R(16),
                B(Mov), R(0), R(14),
                B(Mov), R(12), R(15),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorResolve), R(14), U8(3),
                B(Star), R(17),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(9), U8(1),
                B(Ldar), R(17),
  /*   60 S> */ B(Return),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(9), U8(1),
                B(Ldar), R(12),
  /*   60 S> */ B(Return),
                B(Ldar), R(12),
                B(ReThrow),
                B(LdaUndefined),
                B(Star), R(11),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(9), U8(1),
                B(Ldar), R(11),
  /*   60 S> */ B(Return),
]
constant pool: [
  Smi [46],
  Smi [137],
  Smi [137],
  Smi [137],
  Smi [137],
  Smi [137],
  Smi [137],
  Smi [15],
  Smi [7],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["g"],
  SYMBOL_TYPE,
  SYMBOL_TYPE,
  Smi [71],
  Smi [162],
  Smi [290],
  Smi [367],
  Smi [455],
  Smi [534],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["throw"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
  FIXED_ARRAY_TYPE,
  Smi [458],
  Smi [386],
  Smi [295],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  FIXED_ARRAY_TYPE,
  Smi [709],
  Smi [515],
  Smi [6],
  Smi [28],
  Smi [35],
]
handlers: [
  [52, 791, 797],
  [55, 752, 754],
  [421, 476, 478],
]

