#
# Autogenerated by generate-bytecode-expectations.
#

---
pool type: mixed
execute: yes
wrap: no
test function name: f
ignition generators: yes

---
snippet: "
  function* f() { }
  f();
"
frame size: 11
parameter count: 1
bytecode array length: 204
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(20),
                B(ResumeGenerator), R(new_target),
                B(Star), R(1),
                B(LdaZero),
                B(TestEqualStrict), R(1),
                B(JumpIfTrue), U8(60),
                B(LdaSmi), U8(76),
                B(Star), R(2),
                B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1),
                B(LdaSmi), U8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaContextSlot), R(context), U8(4),
  /*   11 E> */ B(StackCheck),
                B(Mov), R(context), R(4),
  /*   11 E> */ B(LdrContextSlot), R(context), U8(4), R(6),
                B(Ldar), R(6),
                B(Mov), R(closure), R(5),
                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
                B(StaContextSlot), R(context), U8(5),
                B(Star), R(5),
                B(LdrContextSlot), R(context), U8(5), R(6),
                B(LdaZero),
                B(SuspendGenerator), R(6),
                B(Ldar), R(5),
  /*   16 S> */ B(Return),
                B(LdaSmi), U8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
                B(Star), R(7),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
                B(Star), R(8),
                B(LdaZero),
                B(TestEqualStrict), R(8),
                B(JumpIfTrue), U8(31),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(8),
                B(JumpIfTrue), U8(22),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(10),
                B(Mov), R(7), R(9),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2),
                B(Star), R(3),
                B(LdaZero),
                B(Star), R(2),
                B(Jump), U8(35),
                B(Ldar), R(7),
  /*   11 E> */ B(Throw),
                B(LdrUndefined), R(5),
                B(LdaTrue),
                B(Star), R(6),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
                B(Star), R(3),
                B(LdaSmi), U8(1),
                B(Star), R(2),
                B(Jump), U8(14),
                B(LdaSmi), U8(-1),
                B(Star), R(2),
                B(Jump), U8(8),
                B(Star), R(3),
                B(LdaSmi), U8(2),
                B(Star), R(2),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Star), R(4),
                B(LdrContextSlot), R(context), U8(5), R(5),
                B(CallRuntime), U16(Runtime::k_GeneratorClose), R(5), U8(1),
                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
                B(LdaZero),
                B(TestEqualStrict), R(2),
                B(JumpIfTrue), U8(16),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(2),
                B(JumpIfTrue), U8(13),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(2),
                B(JumpIfTrue), U8(10),
                B(Jump), U8(11),
                B(Ldar), R(3),
  /*   16 S> */ B(Return),
                B(Ldar), R(3),
  /*   16 S> */ B(Return),
                B(Ldar), R(3),
                B(ReThrow),
                B(LdaUndefined),
  /*   16 S> */ B(Return),
]
constant pool: [
]
handlers: [
  [42, 141, 147],
]

---
snippet: "
  function* f() { yield 42 }
  f();
"
frame size: 11
parameter count: 1
bytecode array length: 297
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(26),
                B(ResumeGenerator), R(new_target),
                B(Star), R(1),
                B(LdaZero),
                B(TestEqualStrict), R(1),
                B(JumpIfTrue), U8(66),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(1),
                B(JumpIfTrueConstant), U8(0),
                B(LdaSmi), U8(76),
                B(Star), R(2),
                B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1),
                B(LdaSmi), U8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaContextSlot), R(context), U8(4),
  /*   11 E> */ B(StackCheck),
                B(Mov), R(context), R(4),
  /*   11 E> */ B(LdrContextSlot), R(context), U8(4), R(6),
                B(Ldar), R(6),
                B(Mov), R(closure), R(5),
                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
                B(StaContextSlot), R(context), U8(5),
                B(Star), R(5),
                B(LdrContextSlot), R(context), U8(5), R(6),
                B(LdaZero),
                B(SuspendGenerator), R(6),
                B(Ldar), R(5),
  /*   25 S> */ B(Return),
                B(LdaSmi), U8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
                B(Star), R(7),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
                B(Star), R(8),
                B(LdaZero),
                B(TestEqualStrict), R(8),
                B(JumpIfTrue), U8(31),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(8),
                B(JumpIfTrue), U8(22),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(10),
                B(Mov), R(7), R(9),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2),
                B(Star), R(3),
                B(LdaZero),
                B(Star), R(2),
                B(Jump), U8(113),
                B(Ldar), R(7),
  /*   11 E> */ B(Throw),
  /*   16 S> */ B(LdaSmi), U8(42),
                B(Star), R(5),
                B(LdaFalse),
                B(Star), R(6),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
                B(Star), R(7),
                B(LdrContextSlot), R(context), U8(5), R(5),
                B(LdaSmi), U8(1),
                B(SuspendGenerator), R(5),
                B(Ldar), R(7),
  /*   25 S> */ B(Return),
                B(LdaSmi), U8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(5), U8(1),
                B(Star), R(6),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(5), U8(1),
                B(Star), R(8),
                B(LdaZero),
                B(TestEqualStrict), R(8),
                B(JumpIfTrue), U8(32),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(8),
                B(JumpIfTrue), U8(23),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(10),
                B(Mov), R(6), R(9),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2),
                B(Star), R(3),
                B(LdaSmi), U8(1),
                B(Star), R(2),
                B(Jump), U8(35),
                B(Ldar), R(6),
  /*   16 E> */ B(Throw),
                B(LdrUndefined), R(5),
                B(LdaTrue),
                B(Star), R(6),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
                B(Star), R(3),
                B(LdaSmi), U8(2),
                B(Star), R(2),
                B(Jump), U8(14),
                B(LdaSmi), U8(-1),
                B(Star), R(2),
                B(Jump), U8(8),
                B(Star), R(3),
                B(LdaSmi), U8(3),
                B(Star), R(2),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Star), R(4),
                B(LdrContextSlot), R(context), U8(5), R(5),
                B(CallRuntime), U16(Runtime::k_GeneratorClose), R(5), U8(1),
                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
                B(LdaZero),
                B(TestEqualStrict), R(2),
                B(JumpIfTrue), U8(22),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(2),
                B(JumpIfTrue), U8(19),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(2),
                B(JumpIfTrue), U8(16),
                B(LdaSmi), U8(3),
                B(TestEqualStrict), R(2),
                B(JumpIfTrue), U8(13),
                B(Jump), U8(14),
                B(Ldar), R(3),
  /*   25 S> */ B(Return),
                B(Ldar), R(3),
  /*   25 S> */ B(Return),
                B(Ldar), R(3),
  /*   25 S> */ B(Return),
                B(Ldar), R(3),
                B(ReThrow),
                B(LdaUndefined),
  /*   25 S> */ B(Return),
]
constant pool: [
  kInstanceTypeDontCare,
]
handlers: [
  [48, 225, 231],
]

---
snippet: "
  function* f() { for (let x of [42]) yield x }
  f();
"
frame size: 17
parameter count: 1
bytecode array length: 779
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(26),
                B(ResumeGenerator), R(new_target),
                B(Star), R(3),
                B(LdaZero),
                B(TestEqualStrict), R(3),
                B(JumpIfTrue), U8(66),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(3),
                B(JumpIfTrueConstant), U8(3),
                B(LdaSmi), U8(76),
                B(Star), R(4),
                B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1),
                B(LdaSmi), U8(-2),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaContextSlot), R(context), U8(4),
  /*   11 E> */ B(StackCheck),
                B(Mov), R(context), R(6),
  /*   11 E> */ B(LdrContextSlot), R(context), U8(4), R(8),
                B(Ldar), R(8),
                B(Mov), R(closure), R(7),
                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(7), U8(2),
                B(StaContextSlot), R(context), U8(5),
                B(Star), R(7),
                B(LdrContextSlot), R(context), U8(5), R(8),
                B(LdaZero),
                B(SuspendGenerator), R(8),
                B(Ldar), R(7),
  /*   44 S> */ B(Return),
                B(LdaSmi), U8(-2),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1),
                B(Star), R(9),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(8), U8(1),
                B(Star), R(10),
                B(LdaZero),
                B(TestEqualStrict), R(10),
                B(JumpIfTrue), U8(31),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(10),
                B(JumpIfTrue), U8(22),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(12),
                B(Mov), R(9), R(11),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(11), U8(2),
                B(Star), R(5),
                B(LdaZero),
                B(Star), R(4),
                B(JumpConstant), U8(16),
                B(Ldar), R(9),
  /*   11 E> */ B(Throw),
                B(LdaConstant), U8(0),
                B(Star), R(7),
                B(Mov), R(closure), R(8),
                B(CallRuntime), U16(Runtime::kPushBlockContext), R(7), U8(2),
                B(PushContext), R(1),
                B(LdaTheHole),
                B(StaContextSlot), R(context), U8(4),
                B(LdaUndefined),
                B(StaContextSlot), R(1), U8(10),
                B(LdaZero),
                B(StaContextSlot), R(1), U8(9),
                B(Mov), R(context), R(9),
                B(Mov), R(context), R(10),
  /*   30 S> */ B(CreateArrayLiteral), U8(1), U8(0), U8(3),
                B(Star), R(12),
                B(LdaConstant), U8(2),
  /*   30 E> */ B(LdrKeyedProperty), R(12), U8(3), R(11),
  /*   30 E> */ B(Call), R(11), R(12), U8(1), U8(1),
  /*   30 E> */ B(StaContextSlot), R(1), U8(7),
                B(LdaSmi), U8(-2),
                B(TestEqual), R(3),
                B(JumpIfTrue), U8(17),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(3),
                B(JumpIfTrueConstant), U8(9),
                B(LdaSmi), U8(76),
                B(Star), R(11),
                B(CallRuntime), U16(Runtime::kAbort), R(11), U8(1),
  /*   27 S> */ B(LdrContextSlot), R(1), U8(7), R(13),
                B(LdrNamedProperty), R(13), U8(4), U8(7), R(12),
  /*   27 E> */ B(Call), R(12), R(13), U8(1), U8(5),
  /*   27 E> */ B(StaContextSlot), R(1), U8(8),
                B(Star), R(11),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(11), U8(1),
                B(ToBooleanLogicalNot),
                B(JumpIfFalse), U8(11),
                B(LdrContextSlot), R(1), U8(8), R(11),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
                B(LdrContextSlot), R(1), U8(8), R(11),
                B(LdaNamedProperty), R(11), U8(5), U8(9),
                B(JumpIfToBooleanTrueConstant), U8(10),
                B(LdaSmi), U8(2),
                B(StaContextSlot), R(1), U8(9),
                B(LdrContextSlot), R(1), U8(8), R(11),
                B(LdaNamedProperty), R(11), U8(6), U8(11),
                B(StaContextSlot), R(1), U8(6),
                B(LdaContextSlot), R(1), U8(10),
  /*   16 E> */ B(StackCheck),
                B(LdaConstant), U8(7),
                B(Star), R(11),
                B(Mov), R(closure), R(12),
                B(CallRuntime), U16(Runtime::kPushBlockContext), R(11), U8(2),
                B(PushContext), R(2),
                B(LdaTheHole),
                B(StaContextSlot), R(context), U8(4),
                B(LdaContextSlot), R(1), U8(6),
                B(StaContextSlot), R(context), U8(4),
  /*   36 S> */ B(LdaContextSlot), R(context), U8(4),
                B(JumpIfNotHole), U8(11),
                B(LdaConstant), U8(8),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(12), U8(1),
                B(Star), R(11),
                B(LdaFalse),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(11), U8(2),
                B(Star), R(13),
                B(LdrContextSlot), R(1), U8(5), R(11),
                B(LdaSmi), U8(1),
                B(SuspendGenerator), R(11),
                B(Ldar), R(13),
  /*   44 S> */ B(Return),
                B(LdaSmi), U8(-2),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
                B(Star), R(12),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
                B(Star), R(14),
                B(LdaZero),
                B(TestEqualStrict), R(14),
                B(JumpIfTrue), U8(45),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(14),
                B(JumpIfTrue), U8(36),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(16),
                B(Mov), R(12), R(15),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(15), U8(2),
                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(PopContext), R(2),
                B(Star), R(8),
                B(LdaZero),
                B(Star), R(7),
                B(Jump), U8(75),
                B(Ldar), R(12),
  /*   36 E> */ B(Throw),
                B(Ldar), R(12),
                B(PopContext), R(2),
                B(LdaZero),
                B(StaContextSlot), R(1), U8(9),
                B(Wide), B(Jump), U16(-222),
                B(Jump), U8(46),
                B(Star), R(12),
                B(LdaConstant), U8(11),
                B(Star), R(11),
                B(Mov), R(closure), R(13),
                B(CallRuntime), U16(Runtime::kPushCatchContext), R(11), U8(3),
                B(Star), R(10),
                B(PushContext), R(2),
                B(LdrContextSlot), R(1), U8(9), R(11),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(11),
                B(JumpIfFalse), U8(7),
                B(LdaSmi), U8(1),
                B(StaContextSlot), R(1), U8(9),
                B(LdrContextSlot), R(context), U8(4), R(11),
                B(CallRuntime), U16(Runtime::kReThrow), R(11), U8(1),
                B(PopContext), R(2),
                B(LdaSmi), U8(-1),
                B(Star), R(7),
                B(Jump), U8(8),
                B(Star), R(8),
                B(LdaSmi), U8(1),
                B(Star), R(7),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Star), R(9),
                B(LdrContextSlot), R(1), U8(9), R(10),
                B(LdaZero),
                B(TestEqualStrict), R(10),
                B(JumpIfTrue), U8(9),
                B(LdrContextSlot), R(1), U8(7), R(10),
                B(LdaUndefined),
                B(TestEqualStrict), R(10),
                B(ToBooleanLogicalNot),
                B(JumpIfFalseConstant), U8(15),
                B(LdrContextSlot), R(1), U8(7), R(10),
                B(LdaNamedProperty), R(10), U8(12), U8(13),
                B(StaContextSlot), R(1), U8(11),
                B(LdrContextSlot), R(1), U8(11), R(10),
                B(LdaNull),
                B(TestEqual), R(10),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(124),
                B(LdrContextSlot), R(1), U8(9), R(10),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(10),
                B(JumpIfFalse), U8(78),
                B(LdaContextSlot), R(1), U8(11),
                B(TypeOf),
                B(Star), R(10),
                B(LdaConstant), U8(13),
                B(TestEqualStrict), R(10),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), U16(128),
                B(Star), R(10),
                B(LdaConstant), U8(14),
                B(Star), R(11),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(10), U8(2),
                B(Throw),
                B(Mov), R(context), R(10),
                B(LdrContextSlot), R(1), U8(11), R(11),
                B(LdrContextSlot), R(1), U8(7), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(11), U8(2),
                B(Jump), U8(29),
                B(Star), R(12),
                B(LdaConstant), U8(11),
                B(Star), R(11),
                B(Mov), R(closure), R(13),
                B(CallRuntime), U16(Runtime::kPushCatchContext), R(11), U8(3),
                B(Star), R(10),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Ldar), R(10),
                B(PushContext), R(2),
                B(PopContext), R(2),
                B(Jump), U8(38),
                B(LdrContextSlot), R(1), U8(11), R(10),
                B(LdrContextSlot), R(1), U8(7), R(11),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(10), U8(2),
                B(StaContextSlot), R(1), U8(12),
                B(LdrContextSlot), R(1), U8(12), R(10),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(10), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(11),
                B(LdrContextSlot), R(1), U8(12), R(10),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(9), U8(1),
                B(LdaZero),
                B(TestEqualStrict), R(7),
                B(JumpIfTrue), U8(10),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(7),
                B(JumpIfTrue), U8(17),
                B(Jump), U8(28),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(LdaSmi), U8(1),
                B(Star), R(4),
                B(Mov), R(8), R(5),
                B(Jump), U8(47),
                B(PopContext), R(1),
                B(PopContext), R(1),
                B(LdaSmi), U8(2),
                B(Star), R(4),
                B(Mov), R(8), R(5),
                B(Jump), U8(34),
                B(PopContext), R(1),
                B(LdrUndefined), R(7),
                B(LdaTrue),
                B(Star), R(8),
                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(7), U8(2),
                B(Star), R(5),
                B(LdaSmi), U8(3),
                B(Star), R(4),
                B(Jump), U8(14),
                B(LdaSmi), U8(-1),
                B(Star), R(4),
                B(Jump), U8(8),
                B(Star), R(5),
                B(LdaSmi), U8(4),
                B(Star), R(4),
                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                B(Star), R(6),
                B(LdrContextSlot), R(context), U8(5), R(7),
                B(CallRuntime), U16(Runtime::k_GeneratorClose), R(7), U8(1),
                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(6), U8(1),
                B(LdaZero),
                B(TestEqualStrict), R(4),
                B(JumpIfTrue), U8(28),
                B(LdaSmi), U8(1),
                B(TestEqualStrict), R(4),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), U8(2),
                B(TestEqualStrict), R(4),
                B(JumpIfTrue), U8(22),
                B(LdaSmi), U8(3),
                B(TestEqualStrict), R(4),
                B(JumpIfTrue), U8(19),
                B(LdaSmi), U8(4),
                B(TestEqualStrict), R(4),
                B(JumpIfTrue), U8(16),
                B(Jump), U8(17),
                B(Ldar), R(5),
  /*   44 S> */ B(Return),
                B(Ldar), R(5),
  /*   44 S> */ B(Return),
                B(Ldar), R(5),
                B(ReThrow),
                B(Ldar), R(5),
  /*   44 S> */ B(Return),
                B(Ldar), R(5),
                B(ReThrow),
                B(LdaUndefined),
  /*   44 S> */ B(Return),
]
constant pool: [
  InstanceType::FIXED_ARRAY_TYPE,
  InstanceType::FIXED_ARRAY_TYPE,
  InstanceType::SYMBOL_TYPE,
  kInstanceTypeDontCare,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  InstanceType::FIXED_ARRAY_TYPE,
  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
  kInstanceTypeDontCare,
  kInstanceTypeDontCare,
  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,
  kInstanceTypeDontCare,
]
handlers: [
  [48, 698, 704],
  [158, 452, 458],
  [161, 406, 408],
  [555, 567, 569],
]

