#
# Autogenerated by generate-bytecode-expectations.
#

---
pool type: mixed
execute: yes
wrap: yes

---
snippet: "
  for (var p of [0, 1, 2]) {}
"
frame size: 16
parameter count: 1
bytecode array length: 347
bytecodes: [
  /*   30 E> */ B(StackCheck),
                B(LdaUndefined),
                B(Star), R(4),
                B(LdaZero),
                B(Star), R(3),
                B(Mov), R(context), R(11),
                B(Mov), R(context), R(12),
  /*   48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
                B(Star), R(14),
  /*   48 E> */ B(LdaConstant), U8(1),
                B(KeyedLoadIC), R(14), U8(3),
                B(Star), R(13),
  /*   48 E> */ B(Call), R(13), R(14), U8(1), U8(1),
  /*   48 E> */ B(Star), R(1),
  /*   45 S> */ B(Ldar), R(1),
                B(Star), R(15),
                B(LoadIC), R(15), U8(2), U8(7),
                B(Star), R(14),
  /*   45 E> */ B(Call), R(14), R(15), U8(1), U8(5),
  /*   45 E> */ B(Star), R(2),
                B(Star), R(13),
                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(13), U8(1),
                B(ToBooleanLogicalNot),
                B(JumpIfFalse), U8(11),
                B(Ldar), R(2),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
                B(Ldar), R(2),
                B(Star), R(13),
                B(LoadIC), R(13), U8(3), U8(9),
                B(JumpIfToBooleanTrue), U8(28),
                B(LdaSmi), U8(2),
                B(Star), R(3),
                B(Ldar), R(2),
                B(Star), R(13),
                B(LoadIC), R(13), U8(4), U8(11),
                B(Star), R(0),
                B(Ldar), R(4),
  /*   34 E> */ B(StackCheck),
                B(Ldar), R(0),
                B(Star), R(7),
                B(LdaZero),
                B(Star), R(3),
                B(Jump), U8(-70),
                B(Jump), U8(47),
                B(Star), R(14),
                B(LdaConstant), U8(5),
                B(Star), R(13),
                B(Ldar), R(closure),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
                B(Star), R(12),
                B(PushContext), R(8),
                B(Ldar), R(3),
                B(Star), R(13),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(13),
                B(JumpIfFalse), U8(6),
                B(LdaSmi), U8(1),
                B(Star), R(3),
                B(LdaContextSlot), R(context), U8(4),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
                B(PopContext), R(8),
                B(LdaSmi), U8(-1),
                B(Star), R(9),
                B(Jump), U8(7),
                B(Star), R(10),
                B(LdaZero),
                B(Star), R(9),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Star), R(11),
                B(Ldar), R(3),
                B(Star), R(12),
                B(LdaZero),
                B(TestEqualStrict), R(12),
                B(JumpIfTrue), U8(9),
                B(Ldar), R(1),
                B(Star), R(12),
                B(LdaUndefined),
                B(TestEqualStrict), R(12),
                B(ToBooleanLogicalNot),
                B(JumpIfFalseConstant), U8(9),
                B(Ldar), R(1),
                B(Star), R(12),
                B(LoadIC), R(12), U8(6), U8(13),
                B(Star), R(5),
                B(Star), R(12),
                B(LdaNull),
                B(TestEqual), R(12),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(124),
                B(Ldar), R(3),
                B(Star), R(12),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(12),
                B(JumpIfFalse), U8(79),
                B(Ldar), R(5),
                B(TypeOf),
                B(Star), R(12),
                B(LdaConstant), U8(7),
                B(TestEqualStrict), R(12),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), U16(129),
                B(Star), R(12),
                B(LdaConstant), U8(8),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
                B(Throw),
                B(Mov), R(context), R(12),
                B(Ldar), R(5),
                B(Star), R(13),
                B(Ldar), R(1),
                B(Star), R(14),
                B(CallRuntime), U16(Runtime::k_Call), R(13), U8(2),
                B(Jump), U8(30),
                B(Star), R(14),
                B(LdaConstant), U8(5),
                B(Star), R(13),
                B(Ldar), R(closure),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Ldar), R(12),
                B(PushContext), R(8),
                B(PopContext), R(8),
                B(Jump), U8(37),
                B(Ldar), R(5),
                B(Star), R(12),
                B(Ldar), R(1),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::k_Call), R(12), U8(2),
                B(Star), R(6),
                B(Star), R(12),
                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(12), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(11),
                B(Ldar), R(6),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1),
                B(LdaZero),
                B(TestEqualStrict), R(9),
                B(JumpIfTrue), U8(4),
                B(Jump), U8(5),
                B(Ldar), R(10),
                B(ReThrow),
                B(LdaUndefined),
  /*   62 S> */ B(Return),
]
constant pool: [
  InstanceType::FIXED_ARRAY_TYPE,
  InstanceType::SYMBOL_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  kInstanceTypeDontCare,
]
handlers: [
  [10, 152, 158],
  [13, 105, 107],
  [250, 263, 265],
]

---
snippet: "
  var x = 'potatoes';
  for (var p of x) { return p; }
"
frame size: 17
parameter count: 1
bytecode array length: 363
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   42 S> */ B(LdaConstant), U8(0),
  /*   42 E> */ B(Star), R(7),
                B(LdaUndefined),
                B(Star), R(4),
                B(LdaZero),
                B(Star), R(3),
                B(Mov), R(context), R(12),
                B(Mov), R(context), R(13),
  /*   68 S> */ B(Ldar), R(7),
                B(Star), R(15),
  /*   68 E> */ B(LdaConstant), U8(1),
                B(KeyedLoadIC), R(15), U8(3),
                B(Star), R(14),
  /*   68 E> */ B(Call), R(14), R(15), U8(1), U8(1),
  /*   68 E> */ B(Star), R(1),
  /*   65 S> */ B(Ldar), R(1),
                B(Star), R(16),
                B(LoadIC), R(16), U8(2), U8(7),
                B(Star), R(15),
  /*   65 E> */ B(Call), R(15), R(16), U8(1), U8(5),
  /*   65 E> */ B(Star), R(2),
                B(Star), R(14),
                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(14), U8(1),
                B(ToBooleanLogicalNot),
                B(JumpIfFalse), U8(11),
                B(Ldar), R(2),
                B(Star), R(14),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1),
                B(Ldar), R(2),
                B(Star), R(14),
                B(LoadIC), R(14), U8(3), U8(9),
                B(JumpIfToBooleanTrue), U8(32),
                B(LdaSmi), U8(2),
                B(Star), R(3),
                B(Ldar), R(2),
                B(Star), R(14),
                B(LoadIC), R(14), U8(4), U8(11),
                B(Star), R(0),
                B(Ldar), R(4),
  /*   54 E> */ B(StackCheck),
                B(Ldar), R(0),
                B(Star), R(8),
  /*   73 S> */ B(Star), R(11),
                B(LdaZero),
                B(Star), R(10),
                B(Jump), U8(63),
                B(Jump), U8(-74),
                B(Jump), U8(47),
                B(Star), R(15),
                B(LdaConstant), U8(5),
                B(Star), R(14),
                B(Ldar), R(closure),
                B(Star), R(16),
                B(CallRuntime), U16(Runtime::kPushCatchContext), R(14), U8(3),
                B(Star), R(13),
                B(PushContext), R(9),
                B(Ldar), R(3),
                B(Star), R(14),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(14),
                B(JumpIfFalse), U8(6),
                B(LdaSmi), U8(1),
                B(Star), R(3),
                B(LdaContextSlot), R(context), U8(4),
                B(Star), R(14),
                B(CallRuntime), U16(Runtime::kReThrow), R(14), U8(1),
                B(PopContext), R(9),
                B(LdaSmi), U8(-1),
                B(Star), R(10),
                B(Jump), U8(8),
                B(Star), R(11),
                B(LdaSmi), U8(1),
                B(Star), R(10),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Star), R(12),
                B(Ldar), R(3),
                B(Star), R(13),
                B(LdaZero),
                B(TestEqualStrict), R(13),
                B(JumpIfTrue), U8(9),
                B(Ldar), R(1),
                B(Star), R(13),
                B(LdaUndefined),
                B(TestEqualStrict), R(13),
                B(ToBooleanLogicalNot),
                B(JumpIfFalseConstant), U8(9),
                B(Ldar), R(1),
                B(Star), R(13),
                B(LoadIC), R(13), U8(6), U8(13),
                B(Star), R(5),
                B(Star), R(13),
                B(LdaNull),
                B(TestEqual), R(13),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(124),
                B(Ldar), R(3),
                B(Star), R(13),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(13),
                B(JumpIfFalse), U8(79),
                B(Ldar), R(5),
                B(TypeOf),
                B(Star), R(13),
                B(LdaConstant), U8(7),
                B(TestEqualStrict), R(13),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), U16(129),
                B(Star), R(13),
                B(LdaConstant), U8(8),
                B(Star), R(14),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2),
                B(Throw),
                B(Mov), R(context), R(13),
                B(Ldar), R(5),
                B(Star), R(14),
                B(Ldar), R(1),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::k_Call), R(14), U8(2),
                B(Jump), U8(30),
                B(Star), R(15),
                B(LdaConstant), U8(5),
                B(Star), R(14),
                B(Ldar), R(closure),
                B(Star), R(16),
                B(CallRuntime), U16(Runtime::kPushCatchContext), R(14), U8(3),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Ldar), R(13),
                B(PushContext), R(9),
                B(PopContext), R(9),
                B(Jump), U8(37),
                B(Ldar), R(5),
                B(Star), R(13),
                B(Ldar), R(1),
                B(Star), R(14),
                B(CallRuntime), U16(Runtime::k_Call), R(13), U8(2),
                B(Star), R(6),
                B(Star), R(13),
                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(13), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(11),
                B(Ldar), R(6),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(12), U8(1),
                B(LdaZero),
                B(TestEqualStrict), R(10),
                B(JumpIfTrue), U8(10),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(10),
                B(JumpIfTrue), U8(7),
                B(Jump), U8(8),
                B(Ldar), R(11),
  /*   85 S> */ B(Return),
                B(Ldar), R(11),
                B(ReThrow),
                B(LdaUndefined),
  /*   85 S> */ B(Return),
]
constant pool: [
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::SYMBOL_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  kInstanceTypeDontCare,
]
handlers: [
  [14, 158, 164],
  [17, 111, 113],
  [257, 270, 272],
]

---
snippet: "
  for (var x of [10, 20, 30]) {
    if (x == 10) continue;
    if (x == 20) break;
  }
"
frame size: 16
parameter count: 1
bytecode array length: 369
bytecodes: [
  /*   30 E> */ B(StackCheck),
                B(LdaUndefined),
                B(Star), R(4),
                B(LdaZero),
                B(Star), R(3),
                B(Mov), R(context), R(11),
                B(Mov), R(context), R(12),
  /*   48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
                B(Star), R(14),
  /*   48 E> */ B(LdaConstant), U8(1),
                B(KeyedLoadIC), R(14), U8(3),
                B(Star), R(13),
  /*   48 E> */ B(Call), R(13), R(14), U8(1), U8(1),
  /*   48 E> */ B(Star), R(1),
  /*   45 S> */ B(Ldar), R(1),
                B(Star), R(15),
                B(LoadIC), R(15), U8(2), U8(7),
                B(Star), R(14),
  /*   45 E> */ B(Call), R(14), R(15), U8(1), U8(5),
  /*   45 E> */ B(Star), R(2),
                B(Star), R(13),
                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(13), U8(1),
                B(ToBooleanLogicalNot),
                B(JumpIfFalse), U8(11),
                B(Ldar), R(2),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
                B(Ldar), R(2),
                B(Star), R(13),
                B(LoadIC), R(13), U8(3), U8(9),
                B(JumpIfToBooleanTrue), U8(50),
                B(LdaSmi), U8(2),
                B(Star), R(3),
                B(Ldar), R(2),
                B(Star), R(13),
                B(LoadIC), R(13), U8(4), U8(11),
                B(Star), R(0),
                B(Ldar), R(4),
  /*   34 E> */ B(StackCheck),
                B(Ldar), R(0),
                B(Star), R(7),
  /*   66 S> */ B(Star), R(13),
                B(LdaSmi), U8(10),
  /*   72 E> */ B(TestEqual), R(13),
                B(JumpIfFalse), U8(4),
  /*   79 S> */ B(Jump), U8(17),
  /*   91 S> */ B(Ldar), R(7),
                B(Star), R(13),
                B(LdaSmi), U8(20),
  /*   97 E> */ B(TestEqual), R(13),
                B(JumpIfFalse), U8(4),
  /*  104 S> */ B(Jump), U8(7),
                B(LdaZero),
                B(Star), R(3),
                B(Jump), U8(-92),
                B(Jump), U8(47),
                B(Star), R(14),
                B(LdaConstant), U8(5),
                B(Star), R(13),
                B(Ldar), R(closure),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
                B(Star), R(12),
                B(PushContext), R(8),
                B(Ldar), R(3),
                B(Star), R(13),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(13),
                B(JumpIfFalse), U8(6),
                B(LdaSmi), U8(1),
                B(Star), R(3),
                B(LdaContextSlot), R(context), U8(4),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
                B(PopContext), R(8),
                B(LdaSmi), U8(-1),
                B(Star), R(9),
                B(Jump), U8(7),
                B(Star), R(10),
                B(LdaZero),
                B(Star), R(9),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Star), R(11),
                B(Ldar), R(3),
                B(Star), R(12),
                B(LdaZero),
                B(TestEqualStrict), R(12),
                B(JumpIfTrue), U8(9),
                B(Ldar), R(1),
                B(Star), R(12),
                B(LdaUndefined),
                B(TestEqualStrict), R(12),
                B(ToBooleanLogicalNot),
                B(JumpIfFalseConstant), U8(9),
                B(Ldar), R(1),
                B(Star), R(12),
                B(LoadIC), R(12), U8(6), U8(13),
                B(Star), R(5),
                B(Star), R(12),
                B(LdaNull),
                B(TestEqual), R(12),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(124),
                B(Ldar), R(3),
                B(Star), R(12),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(12),
                B(JumpIfFalse), U8(79),
                B(Ldar), R(5),
                B(TypeOf),
                B(Star), R(12),
                B(LdaConstant), U8(7),
                B(TestEqualStrict), R(12),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), U16(129),
                B(Star), R(12),
                B(LdaConstant), U8(8),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
                B(Throw),
                B(Mov), R(context), R(12),
                B(Ldar), R(5),
                B(Star), R(13),
                B(Ldar), R(1),
                B(Star), R(14),
                B(CallRuntime), U16(Runtime::k_Call), R(13), U8(2),
                B(Jump), U8(30),
                B(Star), R(14),
                B(LdaConstant), U8(5),
                B(Star), R(13),
                B(Ldar), R(closure),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Ldar), R(12),
                B(PushContext), R(8),
                B(PopContext), R(8),
                B(Jump), U8(37),
                B(Ldar), R(5),
                B(Star), R(12),
                B(Ldar), R(1),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::k_Call), R(12), U8(2),
                B(Star), R(6),
                B(Star), R(12),
                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(12), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(11),
                B(Ldar), R(6),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1),
                B(LdaZero),
                B(TestEqualStrict), R(9),
                B(JumpIfTrue), U8(4),
                B(Jump), U8(5),
                B(Ldar), R(10),
                B(ReThrow),
                B(LdaUndefined),
  /*  113 S> */ B(Return),
]
constant pool: [
  InstanceType::FIXED_ARRAY_TYPE,
  InstanceType::SYMBOL_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  kInstanceTypeDontCare,
]
handlers: [
  [10, 174, 180],
  [13, 127, 129],
  [272, 285, 287],
]

---
snippet: "
  var x = { 'a': 1, 'b': 2 };
  for (x['a'] of [1,2,3]) { return x['a']; }
"
frame size: 15
parameter count: 1
bytecode array length: 379
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
                B(Star), R(8),
  /*   42 E> */ B(Star), R(6),
                B(LdaUndefined),
                B(Star), R(3),
                B(LdaZero),
                B(Star), R(2),
                B(Mov), R(context), R(10),
                B(Mov), R(context), R(11),
  /*   77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(3),
                B(Star), R(13),
  /*   77 E> */ B(LdaConstant), U8(2),
                B(KeyedLoadIC), R(13), U8(3),
                B(Star), R(12),
  /*   77 E> */ B(Call), R(12), R(13), U8(1), U8(1),
  /*   77 E> */ B(Star), R(0),
  /*   74 S> */ B(Ldar), R(0),
                B(Star), R(14),
                B(LoadIC), R(14), U8(3), U8(7),
                B(Star), R(13),
  /*   74 E> */ B(Call), R(13), R(14), U8(1), U8(5),
  /*   74 E> */ B(Star), R(1),
                B(Star), R(12),
                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(12), U8(1),
                B(ToBooleanLogicalNot),
                B(JumpIfFalse), U8(11),
                B(Ldar), R(1),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
                B(Ldar), R(1),
                B(Star), R(12),
                B(LoadIC), R(12), U8(4), U8(9),
                B(JumpIfToBooleanTrue), U8(42),
                B(LdaSmi), U8(2),
                B(Star), R(2),
  /*   67 E> */ B(Ldar), R(6),
                B(Star), R(12),
                B(Ldar), R(1),
                B(Star), R(13),
                B(LoadIC), R(13), U8(5), U8(11),
                B(StoreICSloppy), R(12), U8(6), U8(13),
                B(Ldar), R(3),
  /*   62 E> */ B(StackCheck),
  /*   88 S> */ B(Ldar), R(6),
                B(Star), R(12),
  /*   96 E> */ B(LoadIC), R(12), U8(6), U8(15),
                B(Star), R(9),
                B(LdaZero),
                B(Star), R(8),
                B(Jump), U8(63),
                B(Jump), U8(-84),
                B(Jump), U8(47),
                B(Star), R(13),
                B(LdaConstant), U8(7),
                B(Star), R(12),
                B(Ldar), R(closure),
                B(Star), R(14),
                B(CallRuntime), U16(Runtime::kPushCatchContext), R(12), U8(3),
                B(Star), R(11),
                B(PushContext), R(7),
                B(Ldar), R(2),
                B(Star), R(12),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(12),
                B(JumpIfFalse), U8(6),
                B(LdaSmi), U8(1),
                B(Star), R(2),
                B(LdaContextSlot), R(context), U8(4),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kReThrow), R(12), U8(1),
                B(PopContext), R(7),
                B(LdaSmi), U8(-1),
                B(Star), R(8),
                B(Jump), U8(8),
                B(Star), R(9),
                B(LdaSmi), U8(1),
                B(Star), R(8),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Star), R(10),
                B(Ldar), R(2),
                B(Star), R(11),
                B(LdaZero),
                B(TestEqualStrict), R(11),
                B(JumpIfTrue), U8(9),
                B(Ldar), R(0),
                B(Star), R(11),
                B(LdaUndefined),
                B(TestEqualStrict), R(11),
                B(ToBooleanLogicalNot),
                B(JumpIfFalseConstant), U8(11),
                B(Ldar), R(0),
                B(Star), R(11),
                B(LoadIC), R(11), U8(8), U8(17),
                B(Star), R(4),
                B(Star), R(11),
                B(LdaNull),
                B(TestEqual), R(11),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(124),
                B(Ldar), R(2),
                B(Star), R(11),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(11),
                B(JumpIfFalse), U8(79),
                B(Ldar), R(4),
                B(TypeOf),
                B(Star), R(11),
                B(LdaConstant), U8(9),
                B(TestEqualStrict), R(11),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), U16(129),
                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(Ldar), R(4),
                B(Star), R(12),
                B(Ldar), R(0),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::k_Call), R(12), U8(2),
                B(Jump), U8(30),
                B(Star), R(13),
                B(LdaConstant), U8(7),
                B(Star), R(12),
                B(Ldar), R(closure),
                B(Star), R(14),
                B(CallRuntime), U16(Runtime::kPushCatchContext), R(12), U8(3),
                B(Star), R(11),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Ldar), R(11),
                B(PushContext), R(7),
                B(PopContext), R(7),
                B(Jump), U8(37),
                B(Ldar), R(4),
                B(Star), R(11),
                B(Ldar), R(0),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::k_Call), R(11), U8(2),
                B(Star), R(5),
                B(Star), R(11),
                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(11), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(11),
                B(Ldar), R(5),
                B(Star), R(11),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(10), U8(1),
                B(LdaZero),
                B(TestEqualStrict), R(8),
                B(JumpIfTrue), U8(10),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(8),
                B(JumpIfTrue), U8(7),
                B(Jump), U8(8),
                B(Ldar), R(9),
  /*  105 S> */ B(Return),
                B(Ldar), R(9),
                B(ReThrow),
                B(LdaUndefined),
  /*  105 S> */ B(Return),
]
constant pool: [
  InstanceType::FIXED_ARRAY_TYPE,
  InstanceType::FIXED_ARRAY_TYPE,
  InstanceType::SYMBOL_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  kInstanceTypeDontCare,
]
handlers: [
  [18, 174, 180],
  [21, 127, 129],
  [273, 286, 288],
]

