#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: no
test function name: f

---
snippet: "
  function f(arr) {
    for (let x of arr) { let y = x; }
  }
  f([1, 2, 3]);
"
frame size: 14
parameter count: 2
bytecode array length: 125
bytecodes: [
  /*   34 S> */ B(GetIterator), R(arg0), U8(0), U8(2),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
                B(Star5),
                B(LdaNamedProperty), R(5), U8(0), U8(4),
                B(Star4),
                B(LdaFalse),
                B(Star6),
                B(Mov), R(context), R(9),
                B(LdaTrue),
                B(Star6),
  /*   29 S> */ B(CallProperty0), R(4), R(5), U8(6),
                B(Star10),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
                B(LdaNamedProperty), R(10), U8(1), U8(8),
                B(JumpIfToBooleanTrue), U8(23),
                B(LdaNamedProperty), R(10), U8(2), U8(10),
                B(Star10),
                B(LdaFalse),
                B(Star6),
                B(Mov), R(10), R(0),
  /*   29 S> */ B(Mov), R(0), R(2),
  /*   49 S> */ B(Mov), R(2), R(3),
                B(Ldar), R(10),
  /*   20 E> */ B(JumpLoop), U8(38), I8(0),
                B(LdaSmi), I8(-1),
                B(Star8),
                B(Star7),
                B(Jump), U8(5),
                B(Star8),
                B(LdaZero),
                B(Star7),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star9),
                B(Ldar), R(6),
                B(JumpIfToBooleanTrue), U8(35),
                B(Mov), R(context), R(11),
                B(LdaNamedProperty), R(5), U8(3), U8(12),
                B(JumpIfUndefinedOrNull), U8(26),
                B(Star12),
                B(CallProperty0), R(12), R(5), U8(14),
                B(JumpIfJSReceiver), U8(19),
                B(Star13),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
                B(Jump), U8(11),
                B(Star11),
                B(LdaZero),
                B(TestReferenceEqual), R(7),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(11),
                B(ReThrow),
                B(Ldar), R(9),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestReferenceEqual), R(7),
                B(JumpIfFalse), U8(5),
                B(Ldar), R(8),
                B(ReThrow),
                B(LdaUndefined),
  /*   54 S> */ B(Return),
]
constant pool: [
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
]
handlers: [
  [22, 63, 69],
  [82, 101, 103],
]

---
snippet: "
  function f(arr) {
    for (let x of arr) { eval('1'); }
  }
  f([1, 2, 3]);
"
frame size: 20
parameter count: 2
bytecode array length: 205
bytecodes: [
  /*   10 E> */ B(CreateFunctionContext), U8(0), U8(5),
                B(PushContext), R(2),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(3),
                B(Ldar), R(arg0),
                B(StaCurrentContextSlot), U8(4),
                B(CreateMappedArguments),
                B(StaCurrentContextSlot), U8(6),
                B(Ldar), R(1),
                B(StaCurrentContextSlot), U8(5),
                B(CreateBlockContext), U8(1),
                B(PushContext), R(3),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(2),
  /*   34 S> */ B(LdaContextSlot), R(3), U8(4), U8(0),
                B(Star6),
                B(GetIterator), R(6), U8(0), U8(2),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
                B(Star5),
                B(LdaNamedProperty), R(5), U8(2), U8(4),
                B(Star4),
                B(LdaFalse),
                B(Star6),
                B(Mov), R(context), R(9),
                B(LdaTrue),
                B(Star6),
  /*   29 S> */ B(CallProperty0), R(4), R(5), U8(6),
                B(Star10),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
                B(LdaNamedProperty), R(10), U8(3), U8(8),
                B(JumpIfToBooleanTrue), U8(69),
                B(LdaNamedProperty), R(10), U8(4), U8(10),
                B(Star10),
                B(LdaFalse),
                B(Star6),
                B(Mov), R(10), R(0),
                B(CreateBlockContext), U8(5),
                B(PushContext), R(11),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(2),
  /*   29 S> */ B(Ldar), R(0),
  /*   29 E> */ B(StaCurrentContextSlot), U8(2),
  /*   41 S> */ B(LdaLookupGlobalSlot), U8(6), U8(12), U8(3),
                B(Star12),
                B(LdaConstant), U8(7),
                B(Star13),
                B(LdaZero),
                B(Star), R(17),
                B(LdaSmi), I8(37),
                B(Star), R(18),
                B(LdaSmi), I8(41),
                B(Star), R(19),
                B(Mov), R(12), R(14),
                B(Mov), R(13), R(15),
                B(Mov), R(closure), R(16),
                B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(14), U8(6),
                B(Star12),
  /*   41 E> */ B(CallUndefinedReceiver1), R(12), R(13), U8(14),
                B(PopContext), R(11),
                B(Mov), R(0), R(10),
  /*   20 E> */ B(JumpLoop), U8(84), I8(0),
                B(LdaSmi), I8(-1),
                B(Star8),
                B(Star7),
                B(Jump), U8(5),
                B(Star8),
                B(LdaZero),
                B(Star7),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star9),
                B(Ldar), R(6),
                B(JumpIfToBooleanTrue), U8(35),
                B(Mov), R(context), R(12),
                B(LdaNamedProperty), R(5), U8(8), U8(16),
                B(JumpIfUndefinedOrNull), U8(26),
                B(Star13),
                B(CallProperty0), R(13), R(5), U8(18),
                B(JumpIfJSReceiver), U8(19),
                B(Star14),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1),
                B(Jump), U8(11),
                B(Star12),
                B(LdaZero),
                B(TestReferenceEqual), R(7),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(12),
                B(ReThrow),
                B(Ldar), R(9),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestReferenceEqual), R(7),
                B(JumpIfFalse), U8(5),
                B(Ldar), R(8),
                B(ReThrow),
                B(PopContext), R(3),
                B(LdaUndefined),
  /*   54 S> */ B(Return),
]
constant pool: [
  SCOPE_INFO_TYPE,
  SCOPE_INFO_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  SCOPE_INFO_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["eval"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["1"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
]
handlers: [
  [54, 141, 147],
  [160, 179, 181],
]

---
snippet: "
  function f(arr) {
    for (let x of arr) { (function() { return x; })(); }
  }
  f([1, 2, 3]);
"
frame size: 13
parameter count: 2
bytecode array length: 141
bytecodes: [
  /*   34 S> */ B(GetIterator), R(arg0), U8(0), U8(2),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
                B(Star3),
                B(LdaNamedProperty), R(3), U8(0), U8(4),
                B(Star2),
                B(LdaFalse),
                B(Star4),
                B(Mov), R(context), R(7),
                B(LdaTrue),
                B(Star4),
  /*   29 S> */ B(CallProperty0), R(2), R(3), U8(6),
                B(Star8),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(8), U8(1),
                B(LdaNamedProperty), R(8), U8(1), U8(8),
                B(JumpIfToBooleanTrue), U8(39),
                B(LdaNamedProperty), R(8), U8(2), U8(10),
                B(Star8),
                B(LdaFalse),
                B(Star4),
                B(Mov), R(8), R(0),
                B(CreateBlockContext), U8(3),
                B(PushContext), R(9),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(2),
  /*   29 S> */ B(Ldar), R(0),
  /*   29 E> */ B(StaCurrentContextSlot), U8(2),
  /*   41 S> */ B(CreateClosure), U8(4), U8(0), U8(2),
                B(Star10),
  /*   67 E> */ B(CallUndefinedReceiver0), R(10), U8(12),
                B(PopContext), R(9),
                B(Mov), R(0), R(8),
  /*   20 E> */ B(JumpLoop), U8(54), I8(0),
                B(LdaSmi), I8(-1),
                B(Star6),
                B(Star5),
                B(Jump), U8(5),
                B(Star6),
                B(LdaZero),
                B(Star5),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star7),
                B(Ldar), R(4),
                B(JumpIfToBooleanTrue), U8(35),
                B(Mov), R(context), R(10),
                B(LdaNamedProperty), R(3), U8(5), U8(14),
                B(JumpIfUndefinedOrNull), U8(26),
                B(Star11),
                B(CallProperty0), R(11), R(3), U8(16),
                B(JumpIfJSReceiver), U8(19),
                B(Star12),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
                B(Jump), U8(11),
                B(Star10),
                B(LdaZero),
                B(TestReferenceEqual), R(5),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(10),
                B(ReThrow),
                B(Ldar), R(7),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestReferenceEqual), R(5),
                B(JumpIfFalse), U8(5),
                B(Ldar), R(6),
                B(ReThrow),
                B(LdaUndefined),
  /*   73 S> */ B(Return),
]
constant pool: [
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  SCOPE_INFO_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
]
handlers: [
  [22, 79, 85],
  [98, 117, 119],
]

---
snippet: "
  function f(arr) {
    for (let { x, y } of arr) { let z = x + y; }
  }
  f([{ x: 0, y: 3 }, { x: 1, y: 9 }, { x: -12, y: 17 }]);
"
frame size: 16
parameter count: 2
bytecode array length: 133
bytecodes: [
  /*   41 S> */ B(GetIterator), R(arg0), U8(0), U8(2),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
                B(Star7),
                B(LdaNamedProperty), R(7), U8(0), U8(4),
                B(Star6),
                B(LdaFalse),
                B(Star8),
                B(Mov), R(context), R(11),
                B(LdaTrue),
                B(Star8),
  /*   36 S> */ B(CallProperty0), R(6), R(7), U8(6),
                B(Star12),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
                B(LdaNamedProperty), R(12), U8(1), U8(8),
                B(JumpIfToBooleanTrue), U8(31),
                B(LdaNamedProperty), R(12), U8(2), U8(10),
                B(Star12),
                B(LdaFalse),
                B(Star8),
                B(Mov), R(12), R(0),
  /*   31 S> */ B(LdaNamedProperty), R(0), U8(3), U8(12),
                B(Star3),
  /*   34 S> */ B(LdaNamedProperty), R(0), U8(4), U8(14),
                B(Star4),
  /*   56 S> */ B(Ldar), R(4),
  /*   58 E> */ B(Add), R(3), U8(16),
                B(Star5),
  /*   20 E> */ B(JumpLoop), U8(46), I8(0),
                B(LdaSmi), I8(-1),
                B(Star10),
                B(Star9),
                B(Jump), U8(5),
                B(Star10),
                B(LdaZero),
                B(Star9),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star11),
                B(Ldar), R(8),
                B(JumpIfToBooleanTrue), U8(35),
                B(Mov), R(context), R(13),
                B(LdaNamedProperty), R(7), U8(5), U8(17),
                B(JumpIfUndefinedOrNull), U8(26),
                B(Star14),
                B(CallProperty0), R(14), R(7), U8(19),
                B(JumpIfJSReceiver), U8(19),
                B(Star15),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1),
                B(Jump), U8(11),
                B(Star13),
                B(LdaZero),
                B(TestReferenceEqual), R(9),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(13),
                B(ReThrow),
                B(Ldar), R(11),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestReferenceEqual), R(9),
                B(JumpIfFalse), U8(5),
                B(Ldar), R(10),
                B(ReThrow),
                B(LdaUndefined),
  /*   65 S> */ B(Return),
]
constant pool: [
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["x"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["y"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
]
handlers: [
  [22, 71, 77],
  [90, 109, 111],
]

---
snippet: "
  function* f(arr) {
    for (let x of arr) { let y = x; }
  }
  f([1, 2, 3]);
"
frame size: 15
parameter count: 2
bytecode array length: 164
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(1),
                B(Mov), R(closure), R(5),
                B(Mov), R(this), R(6),
  /*   11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
                B(Star0),
  /*   11 E> */ B(SuspendGenerator), R(0), R(0), U8(5), U8(0),
                B(ResumeGenerator), R(0), R(0), U8(5),
                B(Star5),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
                B(Ldar), R(5),
  /*   11 E> */ B(Throw),
                B(Ldar), R(5),
                B(Return),
  /*   35 S> */ B(GetIterator), R(arg0), U8(0), U8(2),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
                B(Star6),
                B(LdaNamedProperty), R(6), U8(3), U8(4),
                B(Star5),
                B(LdaFalse),
                B(Star7),
                B(Mov), R(context), R(10),
                B(LdaTrue),
                B(Star7),
  /*   30 S> */ B(CallProperty0), R(5), R(6), U8(6),
                B(Star11),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
                B(LdaNamedProperty), R(11), U8(4), U8(8),
                B(JumpIfToBooleanTrue), U8(23),
                B(LdaNamedProperty), R(11), U8(5), U8(10),
                B(Star11),
                B(LdaFalse),
                B(Star7),
                B(Mov), R(11), R(1),
  /*   30 S> */ B(Mov), R(1), R(3),
  /*   50 S> */ B(Mov), R(3), R(4),
                B(Ldar), R(11),
  /*   21 E> */ B(JumpLoop), U8(38), I8(0),
                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(35),
                B(Mov), R(context), R(12),
                B(LdaNamedProperty), R(6), U8(6), U8(12),
                B(JumpIfUndefinedOrNull), U8(26),
                B(Star13),
                B(CallProperty0), R(13), R(6), U8(14),
                B(JumpIfJSReceiver), U8(19),
                B(Star14),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1),
                B(Jump), U8(11),
                B(Star12),
                B(LdaZero),
                B(TestReferenceEqual), R(8),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(12),
                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),
  /*   55 S> */ B(Return),
]
constant pool: [
  Smi [20],
  Smi [10],
  Smi [7],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
]
handlers: [
  [61, 102, 108],
  [121, 140, 142],
]

---
snippet: "
  function* f(arr) {
    for (let x of arr) yield x;
  }
  f([1, 2, 3]);
"
frame size: 14
parameter count: 2
bytecode array length: 205
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
                B(Mov), R(closure), R(4),
                B(Mov), R(this), R(5),
  /*   11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
                B(Star0),
  /*   11 E> */ B(SuspendGenerator), R(0), R(0), U8(4), U8(0),
                B(ResumeGenerator), R(0), R(0), U8(4),
                B(Star4),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
                B(Ldar), R(4),
  /*   11 E> */ B(Throw),
                B(Ldar), R(4),
                B(Return),
  /*   35 S> */ B(GetIterator), R(arg0), U8(0), U8(2),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
                B(Star5),
                B(LdaNamedProperty), R(5), U8(4), U8(4),
                B(Star4),
                B(LdaFalse),
                B(Star6),
                B(Mov), R(context), R(9),
                B(LdaTrue),
                B(Star6),
  /*   30 S> */ B(CallProperty0), R(4), R(5), U8(6),
                B(Star10),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
                B(LdaNamedProperty), R(10), U8(5), U8(8),
                B(JumpIfToBooleanTrue), U8(58),
                B(LdaNamedProperty), R(10), U8(6), U8(10),
                B(Star10),
                B(LdaFalse),
                B(Star6),
                B(Mov), R(10), R(1),
  /*   30 S> */ B(Mov), R(1), R(3),
  /*   40 S> */ B(LdaFalse),
                B(Star12),
                B(Mov), R(3), R(11),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(11), U8(2),
  /*   40 E> */ B(SuspendGenerator), R(0), R(0), U8(11), U8(1),
                B(ResumeGenerator), R(0), R(0), U8(11),
                B(Star11),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(0),
                B(Ldar), R(11),
  /*   40 E> */ B(Throw),
                B(LdaSmi), I8(1),
                B(Star7),
                B(Mov), R(11), R(8),
                B(Jump), U8(16),
                B(Ldar), R(11),
  /*   21 E> */ B(JumpLoop), U8(73), I8(0),
                B(LdaSmi), I8(-1),
                B(Star8),
                B(Star7),
                B(Jump), U8(5),
                B(Star8),
                B(LdaZero),
                B(Star7),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star9),
                B(Ldar), R(6),
                B(JumpIfToBooleanTrue), U8(35),
                B(Mov), R(context), R(11),
                B(LdaNamedProperty), R(5), U8(9), U8(12),
                B(JumpIfUndefinedOrNull), U8(26),
                B(Star12),
                B(CallProperty0), R(12), R(5), U8(14),
                B(JumpIfJSReceiver), U8(19),
                B(Star13),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
                B(Jump), U8(11),
                B(Star11),
                B(LdaZero),
                B(TestReferenceEqual), R(7),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(11),
                B(ReThrow),
                B(Ldar), R(9),
                B(SetPendingMessage),
                B(Ldar), R(7),
                B(SwitchOnSmiNoFeedback), U8(10), U8(2), I8(0),
                B(Jump), U8(8),
                B(Ldar), R(8),
                B(ReThrow),
                B(Ldar), R(8),
                B(Return),
                B(LdaUndefined),
  /*   49 S> */ B(Return),
]
constant pool: [
  Smi [20],
  Smi [108],
  Smi [10],
  Smi [7],
  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 ["return"],
  Smi [6],
  Smi [9],
]
handlers: [
  [61, 137, 143],
  [156, 175, 177],
]

---
snippet: "
  async function f(arr) {
    for (let x of arr) { let y = x; }
  }
  f([1, 2, 3]);
"
frame size: 16
parameter count: 2
bytecode array length: 169
bytecodes: [
                B(Mov), R(closure), R(5),
                B(Mov), R(this), R(6),
  /*   16 E> */ B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionEnter), R(5), U8(2),
                B(Star0),
                B(Mov), R(context), R(5),
  /*   40 S> */ B(GetIterator), R(arg0), U8(0), U8(2),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
                B(Star7),
                B(LdaNamedProperty), R(7), U8(0), U8(4),
                B(Star6),
                B(LdaFalse),
                B(Star8),
                B(Mov), R(context), R(11),
                B(LdaTrue),
                B(Star8),
  /*   35 S> */ B(CallProperty0), R(6), R(7), U8(6),
                B(Star12),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
                B(LdaNamedProperty), R(12), U8(1), U8(8),
                B(JumpIfToBooleanTrue), U8(23),
                B(LdaNamedProperty), R(12), U8(2), U8(10),
                B(Star12),
                B(LdaFalse),
                B(Star8),
                B(Mov), R(12), R(1),
  /*   35 S> */ B(Mov), R(1), R(3),
  /*   55 S> */ B(Mov), R(3), R(4),
                B(Ldar), R(12),
  /*   26 E> */ B(JumpLoop), U8(38), I8(0),
                B(LdaSmi), I8(-1),
                B(Star10),
                B(Star9),
                B(Jump), U8(5),
                B(Star10),
                B(LdaZero),
                B(Star9),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star11),
                B(Ldar), R(8),
                B(JumpIfToBooleanTrue), U8(35),
                B(Mov), R(context), R(13),
                B(LdaNamedProperty), R(7), U8(3), U8(12),
                B(JumpIfUndefinedOrNull), U8(26),
                B(Star14),
                B(CallProperty0), R(14), R(7), U8(14),
                B(JumpIfJSReceiver), U8(19),
                B(Star15),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1),
                B(Jump), U8(11),
                B(Star13),
                B(LdaZero),
                B(TestReferenceEqual), R(9),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(13),
                B(ReThrow),
                B(Ldar), R(11),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestReferenceEqual), R(9),
                B(JumpIfFalse), U8(5),
                B(Ldar), R(10),
                B(ReThrow),
                B(LdaUndefined),
                B(Star7),
                B(Mov), R(0), R(6),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(6), U8(2),
  /*   60 S> */ B(Return),
                B(Star6),
                B(CreateCatchContext), R(6), U8(4),
                B(Star5),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(5),
                B(PushContext), R(6),
                B(LdaImmutableCurrentContextSlot), U8(2),
                B(Star8),
                B(Mov), R(0), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionReject), R(7), U8(2),
                B(Return),
]
constant pool: [
  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: [
  [14, 147, 147],
  [36, 77, 83],
  [96, 115, 117],
]

---
snippet: "
  async function f(arr) {
    for (let x of arr) await x;
  }
  f([1, 2, 3]);
"
frame size: 15
parameter count: 2
bytecode array length: 203
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(1),
                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),
  /*   40 S> */ B(GetIterator), R(arg0), U8(0), U8(2),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
                B(Star6),
                B(LdaNamedProperty), R(6), U8(1), U8(4),
                B(Star5),
                B(LdaFalse),
                B(Star7),
                B(Mov), R(context), R(10),
                B(LdaTrue),
                B(Star7),
  /*   35 S> */ B(CallProperty0), R(5), R(6), U8(6),
                B(Star11),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
                B(LdaNamedProperty), R(11), U8(2), U8(8),
                B(JumpIfToBooleanTrue), U8(53),
                B(LdaNamedProperty), R(11), U8(3), U8(10),
                B(Star11),
                B(LdaFalse),
                B(Star7),
                B(Mov), R(11), R(1),
  /*   35 S> */ B(Mov), R(1), R(3),
  /*   45 S> */ B(Mov), R(0), R(12),
                B(Mov), R(3), R(13),
                B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(12), U8(2),
  /*   45 E> */ 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),
  /*   26 E> */ B(JumpLoop), U8(68), I8(0),
                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(35),
                B(Mov), R(context), R(12),
                B(LdaNamedProperty), R(6), U8(4), U8(12),
                B(JumpIfUndefinedOrNull), U8(26),
                B(Star13),
                B(CallProperty0), R(13), R(6), U8(14),
                B(JumpIfJSReceiver), U8(19),
                B(Star14),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1),
                B(Jump), U8(11),
                B(Star12),
                B(LdaZero),
                B(TestReferenceEqual), R(8),
                B(JumpIfTrue), U8(5),
                B(Ldar), R(12),
                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),
  /*   54 S> */ B(Return),
                B(Star5),
                B(CreateCatchContext), R(5), U8(5),
                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 [88],
  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, 181, 181],
  [40, 111, 117],
  [130, 149, 151],
]