#
# Autogenerated by generate-bytecode-expectations.
#

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

---
snippet: "
  async function* f() { }
  f();
"
frame size: 8
parameter count: 1
bytecode array length: 144
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(1),
                B(Mov), R(closure), R(1),
                B(Mov), R(this), R(2),
  /*   17 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(1), U8(2),
                B(Star), R(0),
                B(Mov), R(context), R(3),
                B(Mov), R(context), R(4),
                B(Ldar), R(0),
  /*   17 E> */ B(SuspendGenerator), R(0), R(0), U8(5), U8(0),
                B(ResumeGenerator), R(0), R(0), U8(5),
                B(Star), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
                B(Ldar), R(5),
  /*   17 E> */ B(Throw),
                B(LdaSmi), I8(1),
                B(Star), R(1),
                B(Mov), R(5), R(2),
                B(Jump), U8(50),
                B(LdaUndefined),
                B(Star), R(2),
                B(LdaSmi), I8(1),
                B(Star), R(1),
                B(Jump), U8(41),
                B(Star), R(5),
                B(CreateCatchContext), R(5), U8(3),
                B(Star), R(4),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(4),
                B(PushContext), R(5),
                B(LdaImmutableCurrentContextSlot), U8(2),
                B(Star), R(7),
                B(Mov), R(0), R(6),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(6), U8(2),
                B(PopContext), R(5),
                B(Star), R(2),
                B(LdaSmi), I8(2),
                B(Star), R(1),
                B(Jump), U8(7),
                B(Star), R(2),
                B(LdaZero),
                B(Star), R(1),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(3),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(0), U8(1),
                B(Ldar), R(3),
                B(SetPendingMessage),
                B(Ldar), R(1),
                B(SwitchOnSmiNoFeedback), U8(4), U8(3), I8(0),
                B(Jump), U8(22),
                B(Ldar), R(2),
                B(ReThrow),
                B(LdaTrue),
                B(Star), R(6),
                B(Mov), R(0), R(4),
                B(Mov), R(2), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorResolve), R(4), U8(3),
  /*   22 S> */ B(Return),
                B(Ldar), R(2),
  /*   22 S> */ B(Return),
                B(LdaUndefined),
  /*   22 S> */ B(Return),
]
constant pool: [
  Smi [29],
  Smi [16],
  Smi [7],
  SCOPE_INFO_TYPE,
  Smi [6],
  Smi [9],
  Smi [23],
]
handlers: [
  [19, 98, 98],
  [22, 64, 64],
]

---
snippet: "
  async function* f() { yield 42 }
  f();
"
frame size: 8
parameter count: 1
bytecode array length: 189
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
                B(Mov), R(closure), R(1),
                B(Mov), R(this), R(2),
  /*   17 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(1), U8(2),
                B(Star), R(0),
                B(Mov), R(context), R(3),
                B(Mov), R(context), R(4),
                B(Ldar), R(0),
  /*   17 E> */ B(SuspendGenerator), R(0), R(0), U8(5), U8(0),
                B(ResumeGenerator), R(0), R(0), U8(5),
                B(Star), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
                B(Ldar), R(5),
  /*   17 E> */ B(Throw),
                B(LdaSmi), I8(1),
                B(Star), R(1),
                B(Mov), R(5), R(2),
                B(Jump), U8(95),
  /*   22 S> */ B(LdaSmi), I8(42),
                B(Star), R(6),
                B(LdaFalse),
                B(Star), R(7),
                B(Mov), R(0), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorYield), R(5), U8(3),
  /*   22 E> */ B(SuspendGenerator), R(0), R(0), U8(5), U8(1),
                B(ResumeGenerator), R(0), R(0), U8(5),
                B(Star), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(4), U8(2), I8(0),
                B(Ldar), R(5),
  /*   22 E> */ B(Throw),
                B(LdaSmi), I8(1),
                B(Star), R(1),
                B(Mov), R(5), R(2),
                B(Jump), U8(50),
                B(LdaUndefined),
                B(Star), R(2),
                B(LdaSmi), I8(1),
                B(Star), R(1),
                B(Jump), U8(41),
                B(Star), R(5),
                B(CreateCatchContext), R(5), U8(6),
                B(Star), R(4),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(4),
                B(PushContext), R(5),
                B(LdaImmutableCurrentContextSlot), U8(2),
                B(Star), R(7),
                B(Mov), R(0), R(6),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(6), U8(2),
                B(PopContext), R(5),
                B(Star), R(2),
                B(LdaSmi), I8(2),
                B(Star), R(1),
                B(Jump), U8(7),
                B(Star), R(2),
                B(LdaZero),
                B(Star), R(1),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(3),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(0), U8(1),
                B(Ldar), R(3),
                B(SetPendingMessage),
                B(Ldar), R(1),
                B(SwitchOnSmiNoFeedback), U8(7), U8(3), I8(0),
                B(Jump), U8(22),
                B(Ldar), R(2),
                B(ReThrow),
                B(LdaTrue),
                B(Star), R(6),
                B(Mov), R(0), R(4),
                B(Mov), R(2), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorResolve), R(4), U8(3),
  /*   31 S> */ B(Return),
                B(Ldar), R(2),
  /*   31 S> */ B(Return),
                B(LdaUndefined),
  /*   31 S> */ B(Return),
]
constant pool: [
  Smi [29],
  Smi [74],
  Smi [16],
  Smi [7],
  Smi [16],
  Smi [7],
  SCOPE_INFO_TYPE,
  Smi [6],
  Smi [9],
  Smi [23],
]
handlers: [
  [19, 143, 143],
  [22, 109, 109],
]

---
snippet: "
  async function* f() { for (let x of [42]) yield x }
  f();
"
frame size: 18
parameter count: 1
bytecode array length: 341
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
                B(Mov), R(closure), R(4),
                B(Mov), R(this), R(5),
  /*   17 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
                B(Star), R(0),
                B(Mov), R(context), R(6),
                B(Mov), R(context), R(7),
                B(Ldar), R(0),
  /*   17 E> */ B(SuspendGenerator), R(0), R(0), U8(8), U8(0),
                B(ResumeGenerator), R(0), R(0), U8(8),
                B(Star), R(8),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
                B(Ldar), R(8),
  /*   17 E> */ B(Throw),
                B(LdaSmi), I8(1),
                B(Star), R(4),
                B(Mov), R(8), R(5),
                B(Jump), U8(247),
  /*   36 S> */ B(CreateArrayLiteral), U8(4), U8(0), U8(37),
                B(Star), R(10),
                B(GetIterator), R(10), U8(1), U8(3),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
                B(Star), R(9),
                B(LdaNamedProperty), R(9), U8(5), U8(5),
                B(Star), R(8),
                B(LdaFalse),
                B(Star), R(10),
                B(Mov), R(context), R(13),
                B(LdaTrue),
                B(Star), R(10),
  /*   31 S> */ B(CallProperty0), R(8), R(9), U8(7),
                B(Star), R(14),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1),
                B(LdaNamedProperty), R(14), U8(6), U8(9),
                B(JumpIfToBooleanTrue), U8(66),
                B(LdaNamedProperty), R(14), U8(7), U8(11),
                B(Star), R(14),
                B(LdaFalse),
                B(Star), R(10),
                B(Mov), R(14), R(1),
  /*   31 S> */ B(Mov), R(1), R(3),
  /*   42 S> */ B(LdaFalse),
                B(Star), R(17),
                B(Mov), R(0), R(15),
                B(Mov), R(3), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorYield), R(15), U8(3),
  /*   42 E> */ B(SuspendGenerator), R(0), R(0), U8(15), U8(1),
                B(ResumeGenerator), R(0), R(0), U8(15),
                B(Star), R(15),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
                B(Ldar), R(15),
  /*   42 E> */ B(Throw),
                B(LdaSmi), I8(1),
                B(Star), R(11),
                B(Mov), R(15), R(12),
                B(Jump), U8(20),
                B(Ldar), R(15),
  /*   22 E> */ B(JumpLoop), U8(83), I8(0),
                B(LdaSmi), I8(-1),
                B(Star), R(12),
                B(Star), R(11),
                B(Jump), U8(7),
                B(Star), R(12),
                B(LdaZero),
                B(Star), R(11),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(13),
                B(Ldar), R(10),
                B(JumpIfToBooleanTrue), U8(38),
                B(Mov), R(context), R(15),
                B(LdaNamedProperty), R(9), U8(10), U8(13),
                B(JumpIfUndefinedOrNull), U8(29),
                B(Star), R(16),
                B(CallProperty0), R(16), R(9), U8(15),
                B(JumpIfJSReceiver), U8(21),
                B(Star), R(17),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(17), U8(1),
                B(Jump), U8(12),
                B(Star), R(15),
                B(LdaZero),
                B(TestReferenceEqual), R(11),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(15),
                B(ReThrow),
                B(Ldar), R(13),
                B(SetPendingMessage),
                B(Ldar), R(11),
                B(SwitchOnSmiNoFeedback), U8(11), U8(2), I8(0),
                B(Jump), U8(14),
                B(Ldar), R(12),
                B(ReThrow),
                B(LdaSmi), I8(1),
                B(Star), R(4),
                B(Mov), R(12), R(5),
                B(Jump), U8(50),
                B(LdaUndefined),
                B(Star), R(5),
                B(LdaSmi), I8(1),
                B(Star), R(4),
                B(Jump), U8(41),
                B(Star), R(8),
                B(CreateCatchContext), R(8), U8(13),
                B(Star), R(7),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(7),
                B(PushContext), R(8),
                B(LdaImmutableCurrentContextSlot), U8(2),
                B(Star), R(10),
                B(Mov), R(0), R(9),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(9), U8(2),
                B(PopContext), R(8),
                B(Star), R(5),
                B(LdaSmi), I8(2),
                B(Star), R(4),
                B(Jump), U8(7),
                B(Star), R(5),
                B(LdaZero),
                B(Star), R(4),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(6),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(0), U8(1),
                B(Ldar), R(6),
                B(SetPendingMessage),
                B(Ldar), R(4),
                B(SwitchOnSmiNoFeedback), U8(14), U8(3), I8(0),
                B(Jump), U8(22),
                B(Ldar), R(5),
                B(ReThrow),
                B(LdaTrue),
                B(Star), R(9),
                B(Mov), R(0), R(7),
                B(Mov), R(5), R(8),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorResolve), R(7), U8(3),
  /*   50 S> */ B(Return),
                B(Ldar), R(5),
  /*   50 S> */ B(Return),
                B(LdaUndefined),
  /*   50 S> */ B(Return),
]
constant pool: [
  Smi [29],
  Smi [141],
  Smi [16],
  Smi [7],
  ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  Smi [16],
  Smi [7],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  Smi [6],
  Smi [9],
  SCOPE_INFO_TYPE,
  Smi [6],
  Smi [9],
  Smi [23],
]
handlers: [
  [19, 295, 295],
  [22, 261, 261],
  [86, 172, 180],
  [196, 217, 219],
]

---
snippet: "
  function* g() { yield 42 }
  async function* f() { yield* g() }
  f();
"
frame size: 17
parameter count: 1
bytecode array length: 463
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(5),
                B(Mov), R(closure), R(1),
                B(Mov), R(this), R(2),
  /*   44 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(1), U8(2),
                B(Star), R(0),
                B(Mov), R(context), R(3),
                B(Mov), R(context), R(4),
                B(Ldar), R(0),
  /*   44 E> */ B(SuspendGenerator), R(0), R(0), U8(5), U8(0),
                B(ResumeGenerator), R(0), R(0), U8(5),
                B(Star), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(5), U8(2), I8(0),
                B(Ldar), R(5),
  /*   44 E> */ B(Throw),
                B(LdaSmi), I8(1),
                B(Star), R(1),
                B(Mov), R(5), R(2),
                B(JumpConstant), U8(18),
  /*   49 S> */ B(LdaGlobal), U8(7), U8(0),
                B(Star), R(9),
  /*   56 E> */ B(CallUndefinedReceiver0), R(9), U8(2),
                B(Star), R(10),
                B(LdaNamedProperty), R(10), U8(8), U8(4),
                B(JumpIfUndefinedOrNull), U8(15),
                B(Star), R(11),
                B(CallProperty0), R(11), R(10), U8(6),
                B(JumpIfJSReceiver), U8(23),
                B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
                B(LdaNamedProperty), R(10), U8(9), U8(8),
                B(Star), R(11),
                B(CallProperty0), R(11), R(10), U8(10),
                B(Star), R(11),
                B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(11), U8(1),
                B(Star), R(7),
                B(LdaNamedProperty), R(7), U8(10), U8(12),
                B(Star), R(9),
                B(LdaUndefined),
                B(Star), R(8),
                B(LdaZero),
                B(Star), R(6),
                B(Ldar), R(6),
                B(SwitchOnSmiNoFeedback), U8(11), U8(2), I8(1),
                B(CallProperty1), R(9), R(7), R(8), U8(14),
                B(Jump), U8(140),
                B(LdaNamedProperty), R(7), U8(13), U8(16),
                B(JumpIfUndefinedOrNull), U8(11),
                B(Star), R(10),
                B(CallProperty1), R(10), R(7), R(8), U8(18),
                B(Jump), U8(125),
                B(Mov), R(0), R(10),
                B(Mov), R(8), R(11),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorAwaitUncaught), R(10), U8(2),
  /*   49 E> */ B(SuspendGenerator), R(0), R(0), U8(10), U8(1),
                B(ResumeGenerator), R(0), R(0), U8(10),
                B(Star), R(10),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(Star), R(11),
                B(LdaZero),
                B(TestReferenceEqual), R(11),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(10),
                B(ReThrow),
                B(LdaSmi), I8(1),
                B(Star), R(1),
                B(Mov), R(10), R(2),
                B(Jump), U8(238),
                B(LdaNamedProperty), R(7), U8(14), U8(20),
                B(JumpIfUndefinedOrNull), U8(11),
                B(Star), R(12),
                B(CallProperty1), R(12), R(7), R(8), U8(22),
                B(Jump), U8(66),
                B(LdaNamedProperty), R(7), U8(13), U8(24),
                B(JumpIfUndefinedOrNull), U8(55),
                B(Star), R(12),
                B(CallProperty0), R(12), R(7), U8(26),
                B(Jump), U8(2),
                B(Star), R(13),
                B(Mov), R(0), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorAwaitUncaught), R(12), U8(2),
  /*   49 E> */ B(SuspendGenerator), R(0), R(0), U8(12), U8(2),
                B(ResumeGenerator), R(0), R(0), U8(12),
                B(Star), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(Star), R(13),
                B(LdaZero),
                B(TestReferenceEqual), R(13),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(12),
                B(ReThrow),
                B(Ldar), R(12),
                B(JumpIfJSReceiver), U8(9),
                B(Star), R(14),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1),
                B(CallRuntime), U16(Runtime::kThrowThrowMethodMissing), R(0), U8(0),
                B(Star), R(13),
                B(Mov), R(0), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorAwaitUncaught), R(12), U8(2),
  /*   49 E> */ B(SuspendGenerator), R(0), R(0), U8(12), U8(3),
                B(ResumeGenerator), R(0), R(0), U8(12),
                B(Star), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(Star), R(13),
                B(LdaZero),
                B(TestReferenceEqual), R(13),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(12),
                B(ReThrow),
                B(Ldar), R(12),
                B(Mov), R(12), R(5),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
                B(LdaNamedProperty), R(5), U8(15), U8(28),
                B(JumpIfToBooleanTrue), U8(38),
                B(LdaNamedProperty), R(5), U8(16), U8(30),
                B(Star), R(15),
                B(LdaFalse),
                B(Star), R(16),
                B(Mov), R(0), R(14),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorYield), R(14), U8(3),
  /*   49 E> */ B(SuspendGenerator), R(0), R(0), U8(14), U8(4),
                B(ResumeGenerator), R(0), R(0), U8(14),
                B(Star), R(8),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(Star), R(6),
                B(JumpLoop), U8(236), I8(0),
                B(LdaNamedProperty), R(5), U8(16), U8(32),
                B(Star), R(7),
                B(LdaSmi), I8(1),
                B(TestReferenceEqual), R(6),
                B(JumpIfFalse), U8(11),
                B(LdaSmi), I8(1),
                B(Star), R(1),
                B(Mov), R(7), R(2),
                B(Jump), U8(50),
                B(LdaUndefined),
                B(Star), R(2),
                B(LdaSmi), I8(1),
                B(Star), R(1),
                B(Jump), U8(41),
                B(Star), R(5),
                B(CreateCatchContext), R(5), U8(17),
                B(Star), R(4),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(4),
                B(PushContext), R(5),
                B(LdaImmutableCurrentContextSlot), U8(2),
                B(Star), R(7),
                B(Mov), R(0), R(6),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(6), U8(2),
                B(PopContext), R(5),
                B(Star), R(2),
                B(LdaSmi), I8(2),
                B(Star), R(1),
                B(Jump), U8(7),
                B(Star), R(2),
                B(LdaZero),
                B(Star), R(1),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(3),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(0), U8(1),
                B(Ldar), R(3),
                B(SetPendingMessage),
                B(Ldar), R(1),
                B(SwitchOnSmiNoFeedback), U8(19), U8(3), I8(0),
                B(Jump), U8(22),
                B(Ldar), R(2),
                B(ReThrow),
                B(LdaTrue),
                B(Star), R(6),
                B(Mov), R(0), R(4),
                B(Mov), R(2), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorResolve), R(4), U8(3),
  /*   60 S> */ B(Return),
                B(Ldar), R(2),
  /*   60 S> */ B(Return),
                B(LdaUndefined),
  /*   60 S> */ B(Return),
]
constant pool: [
  Smi [29],
  Smi [157],
  Smi [229],
  Smi [279],
  Smi [338],
  Smi [16],
  Smi [7],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["g"],
  SYMBOL_TYPE,
  SYMBOL_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  Smi [11],
  Smi [70],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["throw"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  SCOPE_INFO_TYPE,
  Smi [369],
  Smi [6],
  Smi [9],
  Smi [23],
]
handlers: [
  [19, 417, 417],
  [22, 383, 383],
]

