#
# Autogenerated by generate-bytecode-expectations.
#

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

---
snippet: "
  async function f() {
    for await (let x of [1, 2, 3]) {}
  }
  f();
"
frame size: 16
parameter count: 1
bytecode array length: 265
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
                B(Mov), R(closure), R(4),
                B(Mov), R(this), R(5),
  /*   16 E> */ B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionEnter), R(4), U8(2),
                B(Star0),
                B(Mov), R(context), R(4),
  /*   43 S> */ B(CreateArrayLiteral), U8(2), U8(0), U8(37),
                B(Star7),
                B(GetNamedProperty), R(7), U8(3), U8(1),
                B(JumpIfUndefinedOrNull), U8(14),
                B(Star8),
                B(CallProperty0), R(8), R(7), U8(3),
                B(JumpIfJSReceiver), U8(21),
                B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
                B(GetNamedProperty), R(7), U8(4), U8(5),
                B(Star8),
                B(CallProperty0), R(8), R(7), U8(7),
                B(Star8),
                B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(8), U8(1),
                B(Star6),
                B(GetNamedProperty), R(6), U8(5), U8(9),
                B(Star5),
                B(LdaFalse),
                B(Star7),
                B(Mov), R(context), R(10),
                B(LdaTrue),
                B(Star7),
  /*   38 S> */ B(CallProperty0), R(5), R(6), U8(11),
                B(Star13),
                B(Mov), R(0), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(12), U8(2),
                B(SuspendGenerator), R(0), R(0), U8(12), U8(0),
                B(ResumeGenerator), R(0), R(0), U8(12),
                B(Star12),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(Star13),
                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(11),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
                B(GetNamedProperty), R(11), U8(6), U8(13),
                B(JumpIfToBooleanTrue), U8(21),
                B(GetNamedProperty), R(11), U8(7), U8(15),
                B(Star11),
                B(LdaFalse),
                B(Star7),
                B(Mov), R(11), R(1),
  /*   38 S> */ B(Mov), R(1), R(3),
                B(Ldar), R(11),
  /*   23 E> */ B(JumpLoop), U8(70), I8(0), U8(17),
                B(LdaSmi), I8(-1),
                B(Star9),
                B(Star8),
                B(Jump), U8(5),
                B(Star9),
                B(LdaZero),
                B(Star8),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star10),
                B(Ldar), R(7),
                B(JumpIfToBooleanTrue), U8(68),
                B(Mov), R(context), R(11),
                B(GetNamedProperty), R(6), U8(8), U8(18),
                B(JumpIfUndefinedOrNull), U8(59),
                B(Star12),
                B(CallProperty0), R(12), R(6), U8(20),
                B(Star14),
                B(Mov), R(0), R(13),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(13), U8(2),
                B(SuspendGenerator), R(0), R(0), U8(13), U8(1),
                B(ResumeGenerator), R(0), R(0), U8(13),
                B(Star13),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(Star14),
                B(LdaZero),
                B(TestReferenceEqual), R(14),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(13),
                B(ReThrow),
                B(Ldar), R(13),
                B(JumpIfJSReceiver), U8(19),
                B(Star15),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1),
                B(Jump), U8(11),
                B(Star11),
                B(LdaZero),
                B(TestReferenceEqual), R(8),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(11),
                B(ReThrow),
                B(Ldar), R(10),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestReferenceEqual), R(8),
                B(JumpIfFalse), U8(5),
                B(Ldar), R(9),
                B(ReThrow),
                B(LdaUndefined),
                B(Star6),
                B(Mov), R(0), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(5), U8(2),
  /*   57 S> */ B(Return),
                B(Star5),
                B(CreateCatchContext), R(5), U8(9),
                B(Star4),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(4),
                B(PushContext), R(5),
                B(LdaImmutableCurrentContextSlot), U8(2),
                B(Star7),
                B(Mov), R(0), R(6),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionReject), R(6), U8(2),
                B(Return),
]
constant pool: [
  Smi [85],
  Smi [183],
  ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
  SYMBOL_TYPE,
  SYMBOL_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  SCOPE_INFO_TYPE,
]
handlers: [
  [18, 243, 243],
  [66, 140, 146],
  [159, 211, 213],
]

---
snippet: "
  async function f() {
    for await (let x of [1, 2, 3]) { return x; }
  }
  f();
"
frame size: 16
parameter count: 1
bytecode array length: 281
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
                B(Mov), R(closure), R(4),
                B(Mov), R(this), R(5),
  /*   16 E> */ B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionEnter), R(4), U8(2),
                B(Star0),
                B(Mov), R(context), R(4),
  /*   43 S> */ B(CreateArrayLiteral), U8(2), U8(0), U8(37),
                B(Star7),
                B(GetNamedProperty), R(7), U8(3), U8(1),
                B(JumpIfUndefinedOrNull), U8(14),
                B(Star8),
                B(CallProperty0), R(8), R(7), U8(3),
                B(JumpIfJSReceiver), U8(21),
                B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
                B(GetNamedProperty), R(7), U8(4), U8(5),
                B(Star8),
                B(CallProperty0), R(8), R(7), U8(7),
                B(Star8),
                B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(8), U8(1),
                B(Star6),
                B(GetNamedProperty), R(6), U8(5), U8(9),
                B(Star5),
                B(LdaFalse),
                B(Star7),
                B(Mov), R(context), R(10),
                B(LdaTrue),
                B(Star7),
  /*   38 S> */ B(CallProperty0), R(5), R(6), U8(11),
                B(Star13),
                B(Mov), R(0), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(12), U8(2),
                B(SuspendGenerator), R(0), R(0), U8(12), U8(0),
                B(ResumeGenerator), R(0), R(0), U8(12),
                B(Star12),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(Star13),
                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(11),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
                B(GetNamedProperty), R(11), U8(6), U8(13),
                B(JumpIfToBooleanTrue), U8(23),
                B(GetNamedProperty), R(11), U8(7), U8(15),
                B(Star11),
                B(LdaFalse),
                B(Star7),
                B(Mov), R(11), R(1),
  /*   38 S> */ B(Mov), R(1), R(3),
  /*   56 S> */ B(LdaSmi), I8(1),
                B(Mov), R(11), R(9),
                B(Star8),
                B(Jump), U8(11),
                B(LdaSmi), I8(-1),
                B(Star9),
                B(Star8),
                B(Jump), U8(5),
                B(Star9),
                B(LdaZero),
                B(Star8),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star10),
                B(Ldar), R(7),
                B(JumpIfToBooleanTrue), U8(68),
                B(Mov), R(context), R(11),
                B(GetNamedProperty), R(6), U8(8), U8(18),
                B(JumpIfUndefinedOrNull), U8(59),
                B(Star12),
                B(CallProperty0), R(12), R(6), U8(20),
                B(Star14),
                B(Mov), R(0), R(13),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(13), U8(2),
                B(SuspendGenerator), R(0), R(0), U8(13), U8(1),
                B(ResumeGenerator), R(0), R(0), U8(13),
                B(Star13),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(Star14),
                B(LdaZero),
                B(TestReferenceEqual), R(14),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(13),
                B(ReThrow),
                B(Ldar), R(13),
                B(JumpIfJSReceiver), U8(19),
                B(Star15),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1),
                B(Jump), U8(11),
                B(Star11),
                B(LdaZero),
                B(TestReferenceEqual), R(8),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(11),
                B(ReThrow),
                B(Ldar), R(10),
                B(SetPendingMessage),
                B(Ldar), R(8),
                B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0),
                B(Jump), U8(16),
                B(Ldar), R(9),
                B(ReThrow),
                B(Mov), R(0), R(11),
                B(Mov), R(9), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(11), U8(2),
                B(Return),
                B(LdaUndefined),
                B(Star6),
                B(Mov), R(0), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(5), U8(2),
  /*   68 S> */ B(Return),
                B(Star5),
                B(CreateCatchContext), R(5), U8(11),
                B(Star4),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(4),
                B(PushContext), R(5),
                B(LdaImmutableCurrentContextSlot), U8(2),
                B(Star7),
                B(Mov), R(0), R(6),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionReject), R(6), U8(2),
                B(Return),
]
constant pool: [
  Smi [85],
  Smi [185],
  ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
  SYMBOL_TYPE,
  SYMBOL_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  Smi [6],
  Smi [9],
  SCOPE_INFO_TYPE,
]
handlers: [
  [18, 259, 259],
  [66, 142, 148],
  [161, 213, 215],
]

---
snippet: "
  async function f() {
    for await (let x of [10, 20, 30]) {
      if (x == 10) continue;
      if (x == 20) break;
    }
  }
  f();
"
frame size: 16
parameter count: 1
bytecode array length: 281
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
                B(Mov), R(closure), R(4),
                B(Mov), R(this), R(5),
  /*   16 E> */ B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionEnter), R(4), U8(2),
                B(Star0),
                B(Mov), R(context), R(4),
  /*   43 S> */ B(CreateArrayLiteral), U8(2), U8(0), U8(37),
                B(Star7),
                B(GetNamedProperty), R(7), U8(3), U8(1),
                B(JumpIfUndefinedOrNull), U8(14),
                B(Star8),
                B(CallProperty0), R(8), R(7), U8(3),
                B(JumpIfJSReceiver), U8(21),
                B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
                B(GetNamedProperty), R(7), U8(4), U8(5),
                B(Star8),
                B(CallProperty0), R(8), R(7), U8(7),
                B(Star8),
                B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(8), U8(1),
                B(Star6),
                B(GetNamedProperty), R(6), U8(5), U8(9),
                B(Star5),
                B(LdaFalse),
                B(Star7),
                B(Mov), R(context), R(10),
                B(LdaTrue),
                B(Star7),
  /*   38 S> */ B(CallProperty0), R(5), R(6), U8(11),
                B(Star13),
                B(Mov), R(0), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(12), U8(2),
                B(SuspendGenerator), R(0), R(0), U8(12), U8(0),
                B(ResumeGenerator), R(0), R(0), U8(12),
                B(Star12),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(Star13),
                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(11),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
                B(GetNamedProperty), R(11), U8(6), U8(13),
                B(JumpIfToBooleanTrue), U8(37),
                B(GetNamedProperty), R(11), U8(7), U8(15),
                B(Star11),
                B(LdaFalse),
                B(Star7),
                B(Mov), R(11), R(1),
  /*   38 S> */ B(Mov), R(1), R(3),
  /*   63 S> */ B(LdaSmi), I8(10),
  /*   69 E> */ B(TestEqual), R(11), U8(17),
                B(JumpIfFalse), U8(4),
  /*   76 S> */ B(Jump), U8(11),
  /*   90 S> */ B(LdaSmi), I8(20),
  /*   96 E> */ B(TestEqual), R(3), U8(18),
                B(JumpIfFalse), U8(4),
  /*  103 S> */ B(Jump), U8(6),
  /*   23 E> */ B(JumpLoop), U8(86), I8(0), U8(19),
                B(LdaSmi), I8(-1),
                B(Star9),
                B(Star8),
                B(Jump), U8(5),
                B(Star9),
                B(LdaZero),
                B(Star8),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star10),
                B(Ldar), R(7),
                B(JumpIfToBooleanTrue), U8(68),
                B(Mov), R(context), R(11),
                B(GetNamedProperty), R(6), U8(8), U8(20),
                B(JumpIfUndefinedOrNull), U8(59),
                B(Star12),
                B(CallProperty0), R(12), R(6), U8(22),
                B(Star14),
                B(Mov), R(0), R(13),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(13), U8(2),
                B(SuspendGenerator), R(0), R(0), U8(13), U8(1),
                B(ResumeGenerator), R(0), R(0), U8(13),
                B(Star13),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(Star14),
                B(LdaZero),
                B(TestReferenceEqual), R(14),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(13),
                B(ReThrow),
                B(Ldar), R(13),
                B(JumpIfJSReceiver), U8(19),
                B(Star15),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1),
                B(Jump), U8(11),
                B(Star11),
                B(LdaZero),
                B(TestReferenceEqual), R(8),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(11),
                B(ReThrow),
                B(Ldar), R(10),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestReferenceEqual), R(8),
                B(JumpIfFalse), U8(5),
                B(Ldar), R(9),
                B(ReThrow),
                B(LdaUndefined),
                B(Star6),
                B(Mov), R(0), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(5), U8(2),
  /*  114 S> */ B(Return),
                B(Star5),
                B(CreateCatchContext), R(5), U8(9),
                B(Star4),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(4),
                B(PushContext), R(5),
                B(LdaImmutableCurrentContextSlot), U8(2),
                B(Star7),
                B(Mov), R(0), R(6),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionReject), R(6), U8(2),
                B(Return),
]
constant pool: [
  Smi [85],
  Smi [199],
  ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
  SYMBOL_TYPE,
  SYMBOL_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  SCOPE_INFO_TYPE,
]
handlers: [
  [18, 259, 259],
  [66, 156, 162],
  [175, 227, 229],
]

---
snippet: "
  async function f() {
    var x = { 'a': 1, 'b': 2 };
    for (x['a'] of [1,2,3]) { return x['a']; }
  }
  f();
"
frame size: 12
parameter count: 1
bytecode array length: 188
bytecodes: [
                B(Mov), R(closure), R(2),
                B(Mov), R(this), R(3),
  /*   16 E> */ B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionEnter), R(2), U8(2),
                B(Star0),
                B(Mov), R(context), R(2),
  /*   31 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41),
                B(Star1),
  /*   68 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
                B(Star5),
                B(GetIterator), R(5), U8(2), U8(4),
                B(Star4),
                B(GetNamedProperty), R(4), U8(2), U8(6),
                B(Star3),
                B(LdaFalse),
                B(Star5),
                B(Mov), R(context), R(8),
                B(LdaTrue),
                B(Star5),
  /*   59 S> */ B(CallProperty0), R(3), R(4), U8(8),
                B(Star9),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1),
                B(GetNamedProperty), R(9), U8(3), U8(10),
                B(JumpIfToBooleanTrue), U8(25),
                B(GetNamedProperty), R(9), U8(4), U8(12),
                B(Star9),
                B(LdaFalse),
                B(Star5),
                B(Ldar), R(9),
  /*   58 E> */ B(SetNamedProperty), R(1), U8(5), U8(14),
  /*   87 S> */ B(GetNamedProperty), R(1), U8(5), U8(16),
                B(Star7),
                B(LdaSmi), I8(1),
                B(Star6),
                B(Jump), U8(11),
                B(LdaSmi), I8(-1),
                B(Star7),
                B(Star6),
                B(Jump), U8(5),
                B(Star7),
                B(LdaZero),
                B(Star6),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star8),
                B(Ldar), R(5),
                B(JumpIfToBooleanTrue), U8(35),
                B(Mov), R(context), R(9),
                B(GetNamedProperty), R(4), U8(6), U8(19),
                B(JumpIfUndefinedOrNull), U8(26),
                B(Star10),
                B(CallProperty0), R(10), R(4), U8(21),
                B(JumpIfJSReceiver), U8(19),
                B(Star11),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
                B(Jump), U8(11),
                B(Star9),
                B(LdaZero),
                B(TestReferenceEqual), R(6),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(9),
                B(ReThrow),
                B(Ldar), R(8),
                B(SetPendingMessage),
                B(Ldar), R(6),
                B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(0),
                B(Jump), U8(16),
                B(Ldar), R(7),
                B(ReThrow),
                B(Mov), R(0), R(9),
                B(Mov), R(7), R(10),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(9), U8(2),
                B(Return),
                B(LdaUndefined),
                B(Star4),
                B(Mov), R(0), R(3),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(3), U8(2),
  /*   96 S> */ B(Return),
                B(Star3),
                B(CreateCatchContext), R(3), U8(9),
                B(Star2),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(2),
                B(PushContext), R(3),
                B(LdaImmutableCurrentContextSlot), U8(2),
                B(Star5),
                B(Mov), R(0), R(4),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionReject), R(4), U8(2),
                B(Return),
]
constant pool: [
  OBJECT_BOILERPLATE_DESCRIPTION_TYPE,
  ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  Smi [6],
  Smi [9],
  SCOPE_INFO_TYPE,
]
handlers: [
  [14, 166, 166],
  [39, 82, 88],
  [101, 120, 122],
]