#
# 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: 19
parameter count: 1
bytecode array length: 1027
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(39),
                B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
                B(PushContext), R(4),
                B(ResumeGenerator), R(new_target),
                B(Star), R(3),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrue), U8(132),
                B(LdaSmi), I8(1),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrueConstant), U8(12),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrueConstant), U8(14),
                B(LdaSmi), I8(78),
                B(Star), R(5),
                B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(3),
                B(CreateFunctionContext), U8(13),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
  /*   16 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(6),
                B(Mov), R(closure), R(5),
                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(LdaUndefined),
                B(Star), R(5),
                B(CallJSRuntime), U8(%async_function_promise_create), R(5), U8(1),
                B(StaCurrentContextSlot), U8(10),
                B(Mov), R(context), R(7),
                B(Mov), R(context), R(8),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(0),
                B(PushContext), R(1),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
                B(LdaZero),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(Mov), R(context), R(11),
                B(Mov), R(context), R(12),
  /*   43 S> */ B(CreateArrayLiteral), U8(1), U8(2), U8(9),
                B(Star), R(13),
                B(LdaNamedProperty), R(13), U8(2), U8(7),
                B(JumpIfUndefined), U8(17),
                B(JumpIfNull), U8(15),
                B(Star), R(14),
                B(CallProperty0), R(14), R(13), U8(9),
                B(JumpIfJSReceiver), U8(23),
                B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
                B(LdaNamedProperty), R(13), U8(3), U8(3),
                B(Star), R(14),
                B(CallProperty0), R(14), R(13), U8(5),
                B(Star), R(14),
                B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(14), U8(1),
  /*   43 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
                B(LdaSmi), I8(-2),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrue), U8(16),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrue), U8(74),
                B(LdaSmi), I8(78),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kAbort), R(13), U8(1),
  /*   40 S> */ B(LdaContextSlot), R(1), U8(7), U8(0),
                B(Star), R(14),
                B(LdaNamedProperty), R(14), U8(4), U8(13),
                B(Star), R(13),
  /*   40 E> */ B(CallProperty0), R(13), R(14), U8(11),
                B(StaContextSlot), R(1), U8(11), U8(0),
  /*   40 S> */ B(LdaUndefined),
                B(Star), R(13),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(14),
                B(LdaContextSlot), R(1), U8(11), U8(0),
                B(Star), R(15),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(16),
                B(CallJSRuntime), U8(%async_function_await_uncaught), R(13), U8(4),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(13),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(14),
                B(LdaZero),
                B(SuspendGenerator), R(14),
                B(Ldar), R(13),
  /*   57 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
                B(Star), R(16),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(16),
                B(JumpIfTrue), U8(30),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(16),
                B(JumpIfTrue), U8(21),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(18),
                B(Mov), R(15), R(17),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2),
                B(Star), R(10),
                B(LdaZero),
                B(Star), R(9),
                B(Jump), U8(155),
                B(Ldar), R(15),
                B(ReThrow),
                B(Ldar), R(15),
  /*   40 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(15), U8(1),
                B(ToBooleanLogicalNot),
                B(JumpIfFalse), U8(13),
                B(LdaContextSlot), R(1), U8(8), U8(0),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
                B(LdaContextSlot), R(1), U8(8), U8(0),
                B(Star), R(13),
                B(LdaNamedProperty), R(13), U8(5), U8(15),
                B(JumpIfToBooleanTrue), U8(56),
                B(LdaContextSlot), R(1), U8(8), U8(0),
                B(Star), R(13),
                B(LdaNamedProperty), R(13), U8(6), U8(17),
                B(StaContextSlot), R(1), U8(12), U8(0),
                B(LdaSmi), I8(2),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(LdaContextSlot), R(1), U8(12), U8(0),
                B(StaContextSlot), R(1), U8(6), U8(0),
  /*   23 E> */ B(StackCheck),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(7),
                B(PushContext), R(2),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
                B(LdaContextSlot), R(1), U8(6), U8(0),
                B(StaCurrentContextSlot), U8(4),
                B(PopContext), R(2),
                B(LdaZero),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(JumpLoop), U8(221), I8(0),
                B(Jump), U8(48),
                B(Star), R(13),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(13), U8(8), U8(9),
                B(Star), R(12),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(12),
                B(PushContext), R(2),
                B(LdaContextSlot), R(1), U8(9), U8(0),
                B(Star), R(13),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(13), U8(19),
                B(JumpIfFalse), U8(8),
                B(LdaSmi), I8(1),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
                B(PopContext), R(2),
                B(LdaSmi), I8(-1),
                B(Star), R(9),
                B(Jump), U8(8),
                B(Star), R(10),
                B(LdaSmi), I8(1),
                B(Star), R(9),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(11),
                B(LdaContextSlot), R(1), U8(9), U8(0),
                B(Star), R(12),
                B(LdaZero),
                B(TestEqualStrict), R(12), U8(20),
                B(JumpIfTrueConstant), U8(16),
                B(LdaContextSlot), R(1), U8(7), U8(0),
                B(Star), R(12),
                B(LdaNamedProperty), R(12), U8(10), U8(21),
                B(StaContextSlot), R(1), U8(13), U8(0),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(Star), R(12),
                B(TestUndetectable), R(12),
                B(JumpIfFalse), U8(4),
                B(JumpConstant), U8(15),
                B(LdaContextSlot), R(1), U8(9), U8(0),
                B(Star), R(12),
                B(LdaSmi), I8(1),
                B(TestEqualStrict), R(12), U8(24),
                B(JumpIfFalse), U8(178),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(TestTypeOf), U8(5),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), I16(130),
                B(Star), R(12),
                B(LdaConstant), U8(11),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
                B(Throw),
                B(Mov), R(context), R(12),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(Star), R(13),
                B(LdaContextSlot), R(1), U8(7), U8(0),
                B(Star), R(14),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
                B(StaContextSlot), R(1), U8(14), U8(0),
                B(LdaUndefined),
                B(Star), R(13),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(14),
                B(LdaContextSlot), R(1), U8(14), U8(0),
                B(Star), R(15),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(16),
                B(CallJSRuntime), U8(%async_function_await_caught), R(13), U8(4),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(13),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(14),
                B(LdaSmi), I8(1),
                B(SuspendGenerator), R(14),
                B(Ldar), R(13),
  /*   57 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
                B(Star), R(16),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(16),
                B(JumpIfTrue), U8(38),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(16),
                B(JumpIfTrue), U8(29),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(18),
                B(Mov), R(15), R(17),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Star), R(6),
                B(LdaZero),
                B(Star), R(5),
                B(JumpConstant), U8(18),
                B(Ldar), R(15),
                B(ReThrow),
                B(Ldar), R(15),
                B(Jump), U8(20),
                B(Star), R(13),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(13), U8(8), U8(13),
                B(Star), R(12),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(12),
                B(PushContext), R(2),
                B(PopContext), R(2),
                B(Jump), U8(157),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(Star), R(12),
                B(LdaContextSlot), R(1), U8(7), U8(0),
                B(Star), R(13),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
                B(StaContextSlot), R(1), U8(16), U8(0),
                B(LdaUndefined),
                B(Star), R(12),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(13),
                B(LdaContextSlot), R(1), U8(16), U8(0),
                B(Star), R(14),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(15),
                B(CallJSRuntime), U8(%async_function_await_uncaught), R(12), U8(4),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(12),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(13),
                B(LdaSmi), I8(2),
                B(SuspendGenerator), R(13),
                B(Ldar), R(12),
  /*   57 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
                B(Star), R(14),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
                B(Star), R(15),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(15),
                B(JumpIfTrue), U8(39),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(15),
                B(JumpIfTrue), U8(30),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(17),
                B(Mov), R(14), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Star), R(6),
                B(LdaSmi), I8(1),
                B(Star), R(5),
                B(Jump), U8(168),
                B(Ldar), R(14),
                B(ReThrow),
                B(Ldar), R(14),
                B(StaContextSlot), R(1), U8(15), U8(0),
                B(LdaContextSlot), R(1), U8(15), U8(0),
                B(Star), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(12), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(13),
                B(LdaContextSlot), R(1), U8(15), U8(0),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
                B(Ldar), R(11),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(9),
                B(JumpIfTrue), U8(10),
                B(LdaSmi), I8(1),
                B(TestEqualStrictNoFeedback), R(9),
                B(JumpIfTrue), U8(21),
                B(Jump), U8(26),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(LdaSmi), I8(2),
                B(Star), R(5),
                B(Mov), R(10), R(6),
                B(Jump), U8(101),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Ldar), R(10),
                B(ReThrow),
                B(PopContext), R(1),
                B(LdaUndefined),
                B(Star), R(9),
                B(LdaCurrentContextSlot), U8(10),
                B(Star), R(10),
                B(LdaUndefined),
                B(Star), R(11),
                B(CallJSRuntime), U8(%promise_resolve), R(9), U8(3),
                B(LdaCurrentContextSlot), U8(10),
                B(Star), R(6),
                B(LdaSmi), I8(3),
                B(Star), R(5),
                B(Jump), U8(68),
                B(Jump), U8(54),
                B(Star), R(9),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(9), U8(8), U8(17),
                B(Star), R(8),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(8),
                B(PushContext), R(1),
                B(LdaUndefined),
                B(Star), R(9),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(10),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(11),
                B(LdaFalse),
                B(Star), R(12),
                B(CallJSRuntime), U8(%promise_internal_reject), R(9), U8(4),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Star), R(6),
                B(LdaSmi), I8(4),
                B(Star), R(5),
                B(Jump), U8(14),
                B(LdaSmi), I8(-1),
                B(Star), R(5),
                B(Jump), U8(8),
                B(Star), R(6),
                B(LdaSmi), I8(5),
                B(Star), R(5),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(7),
                B(LdaUndefined),
                B(Star), R(8),
                B(LdaCurrentContextSlot), U8(10),
                B(Star), R(9),
                B(CallJSRuntime), U8(%async_function_promise_release), R(8), U8(2),
                B(Ldar), R(7),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(34),
                B(LdaSmi), I8(1),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(31),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(28),
                B(LdaSmi), I8(3),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(4),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(22),
                B(LdaSmi), I8(5),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(19),
                B(Jump), U8(20),
                B(Ldar), R(6),
  /*   57 S> */ B(Return),
                B(Ldar), R(6),
  /*   57 S> */ B(Return),
                B(Ldar), R(6),
  /*   57 S> */ B(Return),
                B(Ldar), R(6),
  /*   57 S> */ B(Return),
                B(Ldar), R(6),
  /*   57 S> */ B(Return),
                B(Ldar), R(6),
                B(ReThrow),
                B(LdaUndefined),
  /*   57 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  CONSTANT_ELEMENTS_PAIR_TYPE,
  SYMBOL_TYPE,
  SYMBOL_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
  Smi [558],
  FIXED_ARRAY_TYPE,
  Smi [699],
  Smi [346],
  Smi [372],
  FIXED_ARRAY_TYPE,
  Smi [316],
]
handlers: [
  [80, 940, 946],
  [83, 886, 888],
  [100, 422, 428],
  [103, 374, 376],
  [518, 643, 645],
]

---
snippet: "
  async function f() {
    for await (let x of [1, 2, 3]) { return x; }
  }
  f();
"
frame size: 19
parameter count: 1
bytecode array length: 1085
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(39),
                B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
                B(PushContext), R(4),
                B(ResumeGenerator), R(new_target),
                B(Star), R(3),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrue), U8(132),
                B(LdaSmi), I8(1),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrueConstant), U8(12),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrueConstant), U8(14),
                B(LdaSmi), I8(78),
                B(Star), R(5),
                B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(3),
                B(CreateFunctionContext), U8(13),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
  /*   16 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(6),
                B(Mov), R(closure), R(5),
                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(LdaUndefined),
                B(Star), R(5),
                B(CallJSRuntime), U8(%async_function_promise_create), R(5), U8(1),
                B(StaCurrentContextSlot), U8(10),
                B(Mov), R(context), R(7),
                B(Mov), R(context), R(8),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(0),
                B(PushContext), R(1),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
                B(LdaZero),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(Mov), R(context), R(11),
                B(Mov), R(context), R(12),
  /*   43 S> */ B(CreateArrayLiteral), U8(1), U8(2), U8(9),
                B(Star), R(13),
                B(LdaNamedProperty), R(13), U8(2), U8(7),
                B(JumpIfUndefined), U8(17),
                B(JumpIfNull), U8(15),
                B(Star), R(14),
                B(CallProperty0), R(14), R(13), U8(9),
                B(JumpIfJSReceiver), U8(23),
                B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
                B(LdaNamedProperty), R(13), U8(3), U8(3),
                B(Star), R(14),
                B(CallProperty0), R(14), R(13), U8(5),
                B(Star), R(14),
                B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(14), U8(1),
  /*   43 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
                B(LdaSmi), I8(-2),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrue), U8(16),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrue), U8(74),
                B(LdaSmi), I8(78),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kAbort), R(13), U8(1),
  /*   40 S> */ B(LdaContextSlot), R(1), U8(7), U8(0),
                B(Star), R(14),
                B(LdaNamedProperty), R(14), U8(4), U8(13),
                B(Star), R(13),
  /*   40 E> */ B(CallProperty0), R(13), R(14), U8(11),
                B(StaContextSlot), R(1), U8(11), U8(0),
  /*   40 S> */ B(LdaUndefined),
                B(Star), R(13),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(14),
                B(LdaContextSlot), R(1), U8(11), U8(0),
                B(Star), R(15),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(16),
                B(CallJSRuntime), U8(%async_function_await_uncaught), R(13), U8(4),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(13),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(14),
                B(LdaZero),
                B(SuspendGenerator), R(14),
                B(Ldar), R(13),
  /*   68 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
                B(Star), R(16),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(16),
                B(JumpIfTrue), U8(30),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(16),
                B(JumpIfTrue), U8(21),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(18),
                B(Mov), R(15), R(17),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2),
                B(Star), R(10),
                B(LdaZero),
                B(Star), R(9),
                B(Jump), U8(167),
                B(Ldar), R(15),
                B(ReThrow),
                B(Ldar), R(15),
  /*   40 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(15), U8(1),
                B(ToBooleanLogicalNot),
                B(JumpIfFalse), U8(13),
                B(LdaContextSlot), R(1), U8(8), U8(0),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
                B(LdaContextSlot), R(1), U8(8), U8(0),
                B(Star), R(13),
                B(LdaNamedProperty), R(13), U8(5), U8(15),
                B(JumpIfToBooleanTrue), U8(68),
                B(LdaContextSlot), R(1), U8(8), U8(0),
                B(Star), R(13),
                B(LdaNamedProperty), R(13), U8(6), U8(17),
                B(StaContextSlot), R(1), U8(12), U8(0),
                B(LdaSmi), I8(2),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(LdaContextSlot), R(1), U8(12), U8(0),
                B(StaContextSlot), R(1), U8(6), U8(0),
  /*   23 E> */ B(StackCheck),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(7),
                B(PushContext), R(2),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
                B(LdaContextSlot), R(1), U8(6), U8(0),
                B(StaCurrentContextSlot), U8(4),
  /*   56 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
                B(PopContext), R(2),
                B(PopContext), R(2),
                B(PopContext), R(2),
                B(PopContext), R(2),
                B(PopContext), R(2),
                B(PopContext), R(2),
                B(Star), R(10),
                B(LdaSmi), I8(1),
                B(Star), R(9),
                B(Jump), U8(62),
                B(Jump), U8(48),
                B(Star), R(13),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(13), U8(8), U8(9),
                B(Star), R(12),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(12),
                B(PushContext), R(2),
                B(LdaContextSlot), R(1), U8(9), U8(0),
                B(Star), R(13),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(13), U8(19),
                B(JumpIfFalse), U8(8),
                B(LdaSmi), I8(1),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
                B(PopContext), R(2),
                B(LdaSmi), I8(-1),
                B(Star), R(9),
                B(Jump), U8(8),
                B(Star), R(10),
                B(LdaSmi), I8(2),
                B(Star), R(9),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(11),
                B(LdaContextSlot), R(1), U8(9), U8(0),
                B(Star), R(12),
                B(LdaZero),
                B(TestEqualStrict), R(12), U8(20),
                B(JumpIfTrueConstant), U8(16),
                B(LdaContextSlot), R(1), U8(7), U8(0),
                B(Star), R(12),
                B(LdaNamedProperty), R(12), U8(10), U8(21),
                B(StaContextSlot), R(1), U8(13), U8(0),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(Star), R(12),
                B(TestUndetectable), R(12),
                B(JumpIfFalse), U8(4),
                B(JumpConstant), U8(15),
                B(LdaContextSlot), R(1), U8(9), U8(0),
                B(Star), R(12),
                B(LdaSmi), I8(1),
                B(TestEqualStrict), R(12), U8(24),
                B(JumpIfFalse), U8(178),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(TestTypeOf), U8(5),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), I16(130),
                B(Star), R(12),
                B(LdaConstant), U8(11),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
                B(Throw),
                B(Mov), R(context), R(12),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(Star), R(13),
                B(LdaContextSlot), R(1), U8(7), U8(0),
                B(Star), R(14),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
                B(StaContextSlot), R(1), U8(14), U8(0),
                B(LdaUndefined),
                B(Star), R(13),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(14),
                B(LdaContextSlot), R(1), U8(14), U8(0),
                B(Star), R(15),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(16),
                B(CallJSRuntime), U8(%async_function_await_caught), R(13), U8(4),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(13),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(14),
                B(LdaSmi), I8(1),
                B(SuspendGenerator), R(14),
                B(Ldar), R(13),
  /*   68 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
                B(Star), R(16),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(16),
                B(JumpIfTrue), U8(38),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(16),
                B(JumpIfTrue), U8(29),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(18),
                B(Mov), R(15), R(17),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Star), R(6),
                B(LdaZero),
                B(Star), R(5),
                B(JumpConstant), U8(18),
                B(Ldar), R(15),
                B(ReThrow),
                B(Ldar), R(15),
                B(Jump), U8(20),
                B(Star), R(13),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(13), U8(8), U8(13),
                B(Star), R(12),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(12),
                B(PushContext), R(2),
                B(PopContext), R(2),
                B(Jump), U8(157),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(Star), R(12),
                B(LdaContextSlot), R(1), U8(7), U8(0),
                B(Star), R(13),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
                B(StaContextSlot), R(1), U8(16), U8(0),
                B(LdaUndefined),
                B(Star), R(12),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(13),
                B(LdaContextSlot), R(1), U8(16), U8(0),
                B(Star), R(14),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(15),
                B(CallJSRuntime), U8(%async_function_await_uncaught), R(12), U8(4),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(12),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(13),
                B(LdaSmi), I8(2),
                B(SuspendGenerator), R(13),
                B(Ldar), R(12),
  /*   68 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
                B(Star), R(14),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
                B(Star), R(15),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(15),
                B(JumpIfTrue), U8(39),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(15),
                B(JumpIfTrue), U8(30),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(17),
                B(Mov), R(14), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Star), R(6),
                B(LdaSmi), I8(1),
                B(Star), R(5),
                B(Jump), U8(191),
                B(Ldar), R(14),
                B(ReThrow),
                B(Ldar), R(14),
                B(StaContextSlot), R(1), U8(15), U8(0),
                B(LdaContextSlot), R(1), U8(15), U8(0),
                B(Star), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(12), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(13),
                B(LdaContextSlot), R(1), U8(15), U8(0),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
                B(Ldar), R(11),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(9),
                B(JumpIfTrue), U8(16),
                B(LdaSmi), I8(1),
                B(TestEqualStrictNoFeedback), R(9),
                B(JumpIfTrue), U8(27),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(9),
                B(JumpIfTrue), U8(38),
                B(Jump), U8(43),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(LdaSmi), I8(2),
                B(Star), R(5),
                B(Mov), R(10), R(6),
                B(Jump), U8(118),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(LdaSmi), I8(3),
                B(Star), R(5),
                B(Mov), R(10), R(6),
                B(Jump), U8(101),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Ldar), R(10),
                B(ReThrow),
                B(PopContext), R(1),
                B(LdaUndefined),
                B(Star), R(9),
                B(LdaCurrentContextSlot), U8(10),
                B(Star), R(10),
                B(LdaUndefined),
                B(Star), R(11),
                B(CallJSRuntime), U8(%promise_resolve), R(9), U8(3),
                B(LdaCurrentContextSlot), U8(10),
                B(Star), R(6),
                B(LdaSmi), I8(4),
                B(Star), R(5),
                B(Jump), U8(68),
                B(Jump), U8(54),
                B(Star), R(9),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(9), U8(8), U8(17),
                B(Star), R(8),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(8),
                B(PushContext), R(1),
                B(LdaUndefined),
                B(Star), R(9),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(10),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(11),
                B(LdaFalse),
                B(Star), R(12),
                B(CallJSRuntime), U8(%promise_internal_reject), R(9), U8(4),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Star), R(6),
                B(LdaSmi), I8(5),
                B(Star), R(5),
                B(Jump), U8(14),
                B(LdaSmi), I8(-1),
                B(Star), R(5),
                B(Jump), U8(8),
                B(Star), R(6),
                B(LdaSmi), I8(6),
                B(Star), R(5),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(7),
                B(LdaUndefined),
                B(Star), R(8),
                B(LdaCurrentContextSlot), U8(10),
                B(Star), R(9),
                B(CallJSRuntime), U8(%async_function_promise_release), R(8), U8(2),
                B(Ldar), R(7),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(40),
                B(LdaSmi), I8(1),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(37),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(34),
                B(LdaSmi), I8(3),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(31),
                B(LdaSmi), I8(4),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(42),
                B(LdaSmi), I8(5),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(39),
                B(LdaSmi), I8(6),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(36),
                B(Jump), U8(37),
                B(Ldar), R(6),
  /*   68 S> */ B(Return),
                B(Ldar), R(6),
  /*   68 S> */ B(Return),
                B(Ldar), R(6),
  /*   68 S> */ B(Return),
                B(LdaCurrentContextSlot), U8(10),
                B(Star), R(9),
                B(LdaUndefined),
                B(Star), R(8),
                B(Mov), R(6), R(10),
                B(CallJSRuntime), U8(%promise_resolve), R(8), U8(3),
                B(Ldar), R(9),
  /*   68 S> */ B(Return),
                B(Ldar), R(6),
  /*   68 S> */ B(Return),
                B(Ldar), R(6),
  /*   68 S> */ B(Return),
                B(Ldar), R(6),
                B(ReThrow),
                B(LdaUndefined),
  /*   68 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  CONSTANT_ELEMENTS_PAIR_TYPE,
  SYMBOL_TYPE,
  SYMBOL_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
  Smi [570],
  FIXED_ARRAY_TYPE,
  Smi [711],
  Smi [346],
  Smi [372],
  FIXED_ARRAY_TYPE,
  Smi [339],
]
handlers: [
  [80, 975, 981],
  [83, 921, 923],
  [100, 434, 440],
  [103, 386, 388],
  [530, 655, 657],
]

---
snippet: "
  async function f() {
    for await (let x of [10, 20, 30]) {
      if (x == 10) continue;
      if (x == 20) break;
    }
  }
  f();
"
frame size: 19
parameter count: 1
bytecode array length: 1061
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(39),
                B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
                B(PushContext), R(4),
                B(ResumeGenerator), R(new_target),
                B(Star), R(3),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrue), U8(132),
                B(LdaSmi), I8(1),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrueConstant), U8(12),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrueConstant), U8(14),
                B(LdaSmi), I8(78),
                B(Star), R(5),
                B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(3),
                B(CreateFunctionContext), U8(13),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
  /*   16 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(6),
                B(Mov), R(closure), R(5),
                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(LdaUndefined),
                B(Star), R(5),
                B(CallJSRuntime), U8(%async_function_promise_create), R(5), U8(1),
                B(StaCurrentContextSlot), U8(10),
                B(Mov), R(context), R(7),
                B(Mov), R(context), R(8),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(0),
                B(PushContext), R(1),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
                B(LdaZero),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(Mov), R(context), R(11),
                B(Mov), R(context), R(12),
  /*   43 S> */ B(CreateArrayLiteral), U8(1), U8(2), U8(9),
                B(Star), R(13),
                B(LdaNamedProperty), R(13), U8(2), U8(7),
                B(JumpIfUndefined), U8(17),
                B(JumpIfNull), U8(15),
                B(Star), R(14),
                B(CallProperty0), R(14), R(13), U8(9),
                B(JumpIfJSReceiver), U8(23),
                B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
                B(LdaNamedProperty), R(13), U8(3), U8(3),
                B(Star), R(14),
                B(CallProperty0), R(14), R(13), U8(5),
                B(Star), R(14),
                B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(14), U8(1),
  /*   43 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
                B(LdaSmi), I8(-2),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrue), U8(16),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(3),
                B(JumpIfTrue), U8(74),
                B(LdaSmi), I8(78),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kAbort), R(13), U8(1),
  /*   40 S> */ B(LdaContextSlot), R(1), U8(7), U8(0),
                B(Star), R(14),
                B(LdaNamedProperty), R(14), U8(4), U8(13),
                B(Star), R(13),
  /*   40 E> */ B(CallProperty0), R(13), R(14), U8(11),
                B(StaContextSlot), R(1), U8(11), U8(0),
  /*   40 S> */ B(LdaUndefined),
                B(Star), R(13),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(14),
                B(LdaContextSlot), R(1), U8(11), U8(0),
                B(Star), R(15),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(16),
                B(CallJSRuntime), U8(%async_function_await_uncaught), R(13), U8(4),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(13),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(14),
                B(LdaZero),
                B(SuspendGenerator), R(14),
                B(Ldar), R(13),
  /*  114 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
                B(Star), R(16),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(16),
                B(JumpIfTrue), U8(30),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(16),
                B(JumpIfTrue), U8(21),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(18),
                B(Mov), R(15), R(17),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2),
                B(Star), R(10),
                B(LdaZero),
                B(Star), R(9),
                B(Jump), U8(189),
                B(Ldar), R(15),
                B(ReThrow),
                B(Ldar), R(15),
  /*   40 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(15), U8(1),
                B(ToBooleanLogicalNot),
                B(JumpIfFalse), U8(13),
                B(LdaContextSlot), R(1), U8(8), U8(0),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
                B(LdaContextSlot), R(1), U8(8), U8(0),
                B(Star), R(13),
                B(LdaNamedProperty), R(13), U8(5), U8(15),
                B(JumpIfToBooleanTrue), U8(90),
                B(LdaContextSlot), R(1), U8(8), U8(0),
                B(Star), R(13),
                B(LdaNamedProperty), R(13), U8(6), U8(17),
                B(StaContextSlot), R(1), U8(12), U8(0),
                B(LdaSmi), I8(2),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(LdaContextSlot), R(1), U8(12), U8(0),
                B(StaContextSlot), R(1), U8(6), U8(0),
  /*   23 E> */ B(StackCheck),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(7),
                B(PushContext), R(2),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
                B(LdaContextSlot), R(1), U8(6), U8(0),
                B(StaCurrentContextSlot), U8(4),
  /*   63 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(13),
                B(LdaSmi), I8(10),
  /*   69 E> */ B(TestEqual), R(13), U8(19),
                B(JumpIfFalse), U8(8),
  /*   76 S> */ B(PopContext), R(2),
                B(PopContext), R(2),
                B(Jump), U8(26),
  /*   90 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(13),
                B(LdaSmi), I8(20),
  /*   96 E> */ B(TestEqual), R(13), U8(20),
                B(JumpIfFalse), U8(8),
  /*  103 S> */ B(PopContext), R(2),
                B(PopContext), R(2),
                B(Jump), U8(12),
                B(PopContext), R(2),
                B(LdaZero),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(JumpLoop), U8(255), I8(0),
                B(Jump), U8(48),
                B(Star), R(13),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(13), U8(8), U8(9),
                B(Star), R(12),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(12),
                B(PushContext), R(2),
                B(LdaContextSlot), R(1), U8(9), U8(0),
                B(Star), R(13),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(13), U8(21),
                B(JumpIfFalse), U8(8),
                B(LdaSmi), I8(1),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
                B(PopContext), R(2),
                B(LdaSmi), I8(-1),
                B(Star), R(9),
                B(Jump), U8(8),
                B(Star), R(10),
                B(LdaSmi), I8(1),
                B(Star), R(9),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(11),
                B(LdaContextSlot), R(1), U8(9), U8(0),
                B(Star), R(12),
                B(LdaZero),
                B(TestEqualStrict), R(12), U8(22),
                B(JumpIfTrueConstant), U8(16),
                B(LdaContextSlot), R(1), U8(7), U8(0),
                B(Star), R(12),
                B(LdaNamedProperty), R(12), U8(10), U8(23),
                B(StaContextSlot), R(1), U8(13), U8(0),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(Star), R(12),
                B(TestUndetectable), R(12),
                B(JumpIfFalse), U8(4),
                B(JumpConstant), U8(15),
                B(LdaContextSlot), R(1), U8(9), U8(0),
                B(Star), R(12),
                B(LdaSmi), I8(1),
                B(TestEqualStrict), R(12), U8(26),
                B(JumpIfFalse), U8(178),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(TestTypeOf), U8(5),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), I16(130),
                B(Star), R(12),
                B(LdaConstant), U8(11),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
                B(Throw),
                B(Mov), R(context), R(12),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(Star), R(13),
                B(LdaContextSlot), R(1), U8(7), U8(0),
                B(Star), R(14),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
                B(StaContextSlot), R(1), U8(14), U8(0),
                B(LdaUndefined),
                B(Star), R(13),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(14),
                B(LdaContextSlot), R(1), U8(14), U8(0),
                B(Star), R(15),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(16),
                B(CallJSRuntime), U8(%async_function_await_caught), R(13), U8(4),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(13),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(14),
                B(LdaSmi), I8(1),
                B(SuspendGenerator), R(14),
                B(Ldar), R(13),
  /*  114 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
                B(Star), R(16),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(16),
                B(JumpIfTrue), U8(38),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(16),
                B(JumpIfTrue), U8(29),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(18),
                B(Mov), R(15), R(17),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Star), R(6),
                B(LdaZero),
                B(Star), R(5),
                B(JumpConstant), U8(18),
                B(Ldar), R(15),
                B(ReThrow),
                B(Ldar), R(15),
                B(Jump), U8(20),
                B(Star), R(13),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(13), U8(8), U8(13),
                B(Star), R(12),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(12),
                B(PushContext), R(2),
                B(PopContext), R(2),
                B(Jump), U8(157),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(Star), R(12),
                B(LdaContextSlot), R(1), U8(7), U8(0),
                B(Star), R(13),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
                B(StaContextSlot), R(1), U8(16), U8(0),
                B(LdaUndefined),
                B(Star), R(12),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(13),
                B(LdaContextSlot), R(1), U8(16), U8(0),
                B(Star), R(14),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(15),
                B(CallJSRuntime), U8(%async_function_await_uncaught), R(12), U8(4),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(12),
                B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
                B(Star), R(13),
                B(LdaSmi), I8(2),
                B(SuspendGenerator), R(13),
                B(Ldar), R(12),
  /*  114 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
                B(Star), R(14),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
                B(Star), R(15),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(15),
                B(JumpIfTrue), U8(39),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(15),
                B(JumpIfTrue), U8(30),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(17),
                B(Mov), R(14), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Star), R(6),
                B(LdaSmi), I8(1),
                B(Star), R(5),
                B(Jump), U8(168),
                B(Ldar), R(14),
                B(ReThrow),
                B(Ldar), R(14),
                B(StaContextSlot), R(1), U8(15), U8(0),
                B(LdaContextSlot), R(1), U8(15), U8(0),
                B(Star), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(12), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(13),
                B(LdaContextSlot), R(1), U8(15), U8(0),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
                B(Ldar), R(11),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(9),
                B(JumpIfTrue), U8(10),
                B(LdaSmi), I8(1),
                B(TestEqualStrictNoFeedback), R(9),
                B(JumpIfTrue), U8(21),
                B(Jump), U8(26),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(LdaSmi), I8(2),
                B(Star), R(5),
                B(Mov), R(10), R(6),
                B(Jump), U8(101),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Ldar), R(10),
                B(ReThrow),
                B(PopContext), R(1),
                B(LdaUndefined),
                B(Star), R(9),
                B(LdaCurrentContextSlot), U8(10),
                B(Star), R(10),
                B(LdaUndefined),
                B(Star), R(11),
                B(CallJSRuntime), U8(%promise_resolve), R(9), U8(3),
                B(LdaCurrentContextSlot), U8(10),
                B(Star), R(6),
                B(LdaSmi), I8(3),
                B(Star), R(5),
                B(Jump), U8(68),
                B(Jump), U8(54),
                B(Star), R(9),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(9), U8(8), U8(17),
                B(Star), R(8),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(8),
                B(PushContext), R(1),
                B(LdaUndefined),
                B(Star), R(9),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(Star), R(10),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(11),
                B(LdaFalse),
                B(Star), R(12),
                B(CallJSRuntime), U8(%promise_internal_reject), R(9), U8(4),
                B(LdaContextSlot), R(1), U8(10), U8(0),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Star), R(6),
                B(LdaSmi), I8(4),
                B(Star), R(5),
                B(Jump), U8(14),
                B(LdaSmi), I8(-1),
                B(Star), R(5),
                B(Jump), U8(8),
                B(Star), R(6),
                B(LdaSmi), I8(5),
                B(Star), R(5),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(7),
                B(LdaUndefined),
                B(Star), R(8),
                B(LdaCurrentContextSlot), U8(10),
                B(Star), R(9),
                B(CallJSRuntime), U8(%async_function_promise_release), R(8), U8(2),
                B(Ldar), R(7),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(34),
                B(LdaSmi), I8(1),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(31),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(28),
                B(LdaSmi), I8(3),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(4),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(22),
                B(LdaSmi), I8(5),
                B(TestEqualStrictNoFeedback), R(5),
                B(JumpIfTrue), U8(19),
                B(Jump), U8(20),
                B(Ldar), R(6),
  /*  114 S> */ B(Return),
                B(Ldar), R(6),
  /*  114 S> */ B(Return),
                B(Ldar), R(6),
  /*  114 S> */ B(Return),
                B(Ldar), R(6),
  /*  114 S> */ B(Return),
                B(Ldar), R(6),
  /*  114 S> */ B(Return),
                B(Ldar), R(6),
                B(ReThrow),
                B(LdaUndefined),
  /*  114 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  CONSTANT_ELEMENTS_PAIR_TYPE,
  SYMBOL_TYPE,
  SYMBOL_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
  Smi [592],
  FIXED_ARRAY_TYPE,
  Smi [733],
  Smi [346],
  Smi [372],
  FIXED_ARRAY_TYPE,
  Smi [316],
]
handlers: [
  [80, 974, 980],
  [83, 920, 922],
  [100, 456, 462],
  [103, 408, 410],
  [552, 677, 679],
]

---
snippet: "
  async function f() {
    var x = { 'a': 1, 'b': 2 };
    for (x['a'] of [1,2,3]) { return x['a']; }
  }
  f();
"
frame size: 14
parameter count: 1
bytecode array length: 582
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(22),
                B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
                B(PushContext), R(3),
                B(ResumeGenerator), R(new_target),
                B(Star), R(2),
                B(LdaSmi), I8(78),
                B(Star), R(4),
                B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(2),
                B(CreateFunctionContext), U8(10),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
  /*   16 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(5),
                B(Mov), R(closure), R(4),
                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(LdaUndefined),
                B(Star), R(4),
                B(CallJSRuntime), U8(%async_function_promise_create), R(4), U8(1),
                B(StaCurrentContextSlot), U8(13),
                B(Mov), R(context), R(6),
                B(Mov), R(context), R(7),
  /*   31 S> */ B(CreateObjectLiteral), U8(0), U8(2), U8(1), R(8),
                B(Ldar), R(8),
  /*   31 E> */ B(StaCurrentContextSlot), U8(6),
                B(LdaZero),
                B(StaCurrentContextSlot), U8(9),
                B(Mov), R(context), R(10),
                B(Mov), R(context), R(11),
  /*   68 S> */ B(CreateArrayLiteral), U8(1), U8(3), U8(9),
                B(Star), R(12),
                B(LdaNamedProperty), R(12), U8(2), U8(4),
                B(Star), R(13),
                B(CallProperty0), R(13), R(12), U8(6),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
  /*   68 E> */ B(StaCurrentContextSlot), U8(7),
  /*   65 S> */ B(LdaCurrentContextSlot), U8(7),
                B(Star), R(13),
                B(LdaNamedProperty), R(13), U8(3), U8(10),
                B(Star), R(12),
  /*   65 E> */ B(CallProperty0), R(12), R(13), U8(8),
  /*   65 E> */ B(StaCurrentContextSlot), U8(8),
                B(Star), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(12), U8(1),
                B(ToBooleanLogicalNot),
                B(JumpIfFalse), U8(11),
                B(LdaCurrentContextSlot), U8(8),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
                B(LdaCurrentContextSlot), U8(8),
                B(Star), R(12),
                B(LdaNamedProperty), R(12), U8(4), U8(12),
                B(JumpIfToBooleanTrue), U8(42),
                B(LdaImmutableCurrentContextSlot), U8(6),
                B(Star), R(12),
                B(LdaCurrentContextSlot), U8(8),
                B(Star), R(13),
  /*   58 E> */ B(LdaNamedProperty), R(13), U8(5), U8(14),
                B(StaCurrentContextSlot), U8(10),
                B(LdaSmi), I8(2),
                B(StaCurrentContextSlot), U8(9),
                B(LdaCurrentContextSlot), U8(10),
                B(StaNamedPropertySloppy), R(12), U8(6), U8(16),
  /*   53 E> */ B(StackCheck),
  /*   79 S> */ B(LdaImmutableCurrentContextSlot), U8(6),
                B(Star), R(12),
  /*   87 E> */ B(LdaNamedProperty), R(12), U8(6), U8(18),
                B(Star), R(9),
                B(LdaZero),
                B(Star), R(8),
                B(Jump), U8(62),
                B(Jump), U8(48),
                B(Star), R(12),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(12), U8(7), U8(8),
                B(Star), R(11),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(11),
                B(PushContext), R(1),
                B(LdaContextSlot), R(1), U8(9), U8(0),
                B(Star), R(12),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(12), U8(20),
                B(JumpIfFalse), U8(8),
                B(LdaSmi), I8(1),
                B(StaContextSlot), R(1), U8(9), U8(0),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kReThrow), R(12), U8(1),
                B(PopContext), R(1),
                B(LdaSmi), I8(-1),
                B(Star), R(8),
                B(Jump), U8(8),
                B(Star), R(9),
                B(LdaSmi), I8(1),
                B(Star), R(8),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(10),
                B(LdaCurrentContextSlot), U8(9),
                B(Star), R(11),
                B(LdaZero),
                B(TestEqualStrict), R(11), U8(21),
                B(JumpIfTrue), U8(129),
                B(LdaCurrentContextSlot), U8(7),
                B(Star), R(11),
                B(LdaNamedProperty), R(11), U8(9), U8(22),
                B(StaCurrentContextSlot), U8(11),
                B(LdaCurrentContextSlot), U8(11),
                B(Star), R(11),
                B(TestUndetectable), R(11),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(109),
                B(LdaCurrentContextSlot), U8(9),
                B(Star), R(11),
                B(LdaSmi), I8(1),
                B(TestEqualStrict), R(11), U8(25),
                B(JumpIfFalse), U8(63),
                B(LdaCurrentContextSlot), U8(11),
                B(TestTypeOf), U8(5),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), I16(130),
                B(Star), R(11),
                B(LdaConstant), U8(10),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2),
                B(Throw),
                B(Mov), R(context), R(11),
                B(LdaCurrentContextSlot), U8(11),
                B(Star), R(12),
                B(LdaCurrentContextSlot), U8(7),
                B(Star), R(13),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
                B(Jump), U8(20),
                B(Star), R(12),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(12), U8(7), U8(11),
                B(Star), R(11),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(11),
                B(PushContext), R(1),
                B(PopContext), R(1),
                B(Jump), U8(37),
                B(LdaCurrentContextSlot), U8(11),
                B(Star), R(11),
                B(LdaCurrentContextSlot), U8(7),
                B(Star), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(11), U8(2),
                B(StaCurrentContextSlot), U8(12),
                B(LdaCurrentContextSlot), U8(12),
                B(Star), R(11),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(11), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(11),
                B(LdaCurrentContextSlot), U8(12),
                B(Star), R(11),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
                B(Ldar), R(10),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(8),
                B(JumpIfTrue), U8(10),
                B(LdaSmi), I8(1),
                B(TestEqualStrictNoFeedback), R(8),
                B(JumpIfTrue), U8(12),
                B(Jump), U8(13),
                B(LdaZero),
                B(Star), R(4),
                B(Mov), R(9), R(5),
                B(Jump), U8(95),
                B(Ldar), R(9),
                B(ReThrow),
                B(LdaUndefined),
                B(Star), R(8),
                B(LdaCurrentContextSlot), U8(13),
                B(Star), R(9),
                B(LdaUndefined),
                B(Star), R(10),
                B(CallJSRuntime), U8(%promise_resolve), R(8), U8(3),
                B(LdaCurrentContextSlot), U8(13),
                B(Star), R(5),
                B(LdaSmi), I8(1),
                B(Star), R(4),
                B(Jump), U8(68),
                B(Jump), U8(54),
                B(Star), R(8),
                B(Ldar), R(closure),
                B(CreateCatchContext), R(8), U8(7), U8(12),
                B(Star), R(7),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(7),
                B(PushContext), R(1),
                B(LdaUndefined),
                B(Star), R(8),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(Star), R(9),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(10),
                B(LdaFalse),
                B(Star), R(11),
                B(CallJSRuntime), U8(%promise_internal_reject), R(8), U8(4),
                B(LdaContextSlot), R(1), U8(13), U8(0),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(Star), R(5),
                B(LdaSmi), I8(2),
                B(Star), R(4),
                B(Jump), U8(14),
                B(LdaSmi), I8(-1),
                B(Star), R(4),
                B(Jump), U8(8),
                B(Star), R(5),
                B(LdaSmi), I8(3),
                B(Star), R(4),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(6),
                B(LdaUndefined),
                B(Star), R(7),
                B(LdaCurrentContextSlot), U8(13),
                B(Star), R(8),
                B(CallJSRuntime), U8(%async_function_promise_release), R(7), U8(2),
                B(Ldar), R(6),
                B(SetPendingMessage),
                B(LdaZero),
                B(TestEqualStrictNoFeedback), R(4),
                B(JumpIfTrue), U8(22),
                B(LdaSmi), I8(1),
                B(TestEqualStrictNoFeedback), R(4),
                B(JumpIfTrue), U8(33),
                B(LdaSmi), I8(2),
                B(TestEqualStrictNoFeedback), R(4),
                B(JumpIfTrue), U8(30),
                B(LdaSmi), I8(3),
                B(TestEqualStrictNoFeedback), R(4),
                B(JumpIfTrue), U8(27),
                B(Jump), U8(28),
                B(LdaCurrentContextSlot), U8(13),
                B(Star), R(8),
                B(LdaUndefined),
                B(Star), R(7),
                B(Mov), R(5), R(9),
                B(CallJSRuntime), U8(%promise_resolve), R(7), U8(3),
                B(Ldar), R(8),
  /*   96 S> */ B(Return),
                B(Ldar), R(5),
  /*   96 S> */ B(Return),
                B(Ldar), R(5),
  /*   96 S> */ B(Return),
                B(Ldar), R(5),
                B(ReThrow),
                B(LdaUndefined),
  /*   96 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  CONSTANT_ELEMENTS_PAIR_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 ["a"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
  FIXED_ARRAY_TYPE,
  FIXED_ARRAY_TYPE,
]
handlers: [
  [63, 499, 505],
  [66, 445, 447],
  [81, 241, 247],
  [84, 193, 195],
  [325, 337, 339],
]

