#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: no
test function name: f

---
snippet: "
  function* f() { }
  f();
"
frame size: 3
parameter count: 1
bytecode array length: 44
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(1),
                B(Mov), R(closure), R(1),
                B(Mov), R(this), R(2),
                B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(1), U8(2),
                B(Star), R(0),
  /*   11 E> */ B(StackCheck),
  /*   11 E> */ B(SuspendGenerator), R(0), R(0), U8(1), U8(0),
                B(ResumeGenerator), R(0), R(0), U8(1),
                B(Star), R(1),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
                B(Ldar), R(1),
  /*   11 E> */ B(Throw),
                B(Ldar), R(1),
  /*   16 S> */ B(Return),
                B(LdaUndefined),
  /*   16 S> */ B(Return),
]
constant pool: [
  Smi [22],
  Smi [10],
  Smi [7],
]
handlers: [
]

---
snippet: "
  function* f() { yield 42 }
  f();
"
frame size: 3
parameter count: 1
bytecode array length: 80
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
                B(Mov), R(closure), R(1),
                B(Mov), R(this), R(2),
                B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(1), U8(2),
                B(Star), R(0),
  /*   11 E> */ B(StackCheck),
  /*   11 E> */ B(SuspendGenerator), R(0), R(0), U8(1), U8(0),
                B(ResumeGenerator), R(0), R(0), U8(1),
                B(Star), R(1),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
                B(Ldar), R(1),
  /*   11 E> */ B(Throw),
                B(Ldar), R(1),
  /*   25 S> */ B(Return),
  /*   16 S> */ B(LdaSmi), I8(42),
                B(Star), R(1),
                B(LdaFalse),
                B(Star), R(2),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(1), U8(2),
  /*   16 E> */ B(SuspendGenerator), R(0), R(0), U8(1), U8(1),
                B(ResumeGenerator), R(0), R(0), U8(1),
                B(Star), R(1),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(4), U8(2), I8(0),
                B(Ldar), R(1),
  /*   16 E> */ B(Throw),
                B(Ldar), R(1),
  /*   25 S> */ B(Return),
                B(LdaUndefined),
  /*   25 S> */ B(Return),
]
constant pool: [
  Smi [22],
  Smi [58],
  Smi [10],
  Smi [7],
  Smi [10],
  Smi [7],
]
handlers: [
]

---
snippet: "
  function* f() { for (let x of [42]) yield x }
  f();
"
frame size: 17
parameter count: 1
bytecode array length: 333
bytecodes: [
                B(SwitchOnGeneratorState), R(2), U8(0), U8(2),
                B(Mov), R(closure), R(11),
                B(Mov), R(this), R(12),
                B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(11), U8(2),
                B(Star), R(2),
  /*   11 E> */ B(StackCheck),
  /*   11 E> */ B(SuspendGenerator), R(2), R(0), U8(11), U8(0),
                B(ResumeGenerator), R(2), R(0), U8(11),
                B(Star), R(11),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
                B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
                B(Ldar), R(11),
  /*   11 E> */ B(Throw),
                B(Ldar), R(11),
  /*   44 S> */ B(Return),
                B(LdaZero),
                B(Star), R(7),
                B(Mov), R(context), R(13),
                B(Mov), R(context), R(14),
  /*   30 S> */ B(CreateArrayLiteral), U8(4), U8(0), U8(37),
                B(Star), R(15),
                B(LdaNamedProperty), R(15), U8(5), U8(1),
                B(Star), R(16),
                B(CallProperty0), R(16), R(15), U8(3),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
                B(Star), R(4),
  /*   30 E> */ B(LdaNamedProperty), R(4), U8(6), U8(5),
                B(Star), R(5),
  /*   25 S> */ B(CallProperty0), R(5), R(4), U8(7),
                B(Star), R(6),
  /*   25 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1),
                B(ToBooleanLogicalNot),
                B(JumpIfFalse), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
                B(LdaNamedProperty), R(6), U8(7), U8(9),
                B(JumpIfToBooleanTrue), U8(65),
                B(LdaNamedProperty), R(6), U8(8), U8(11),
                B(Star), R(8),
                B(LdaSmi), I8(2),
                B(Star), R(7),
                B(Mov), R(8), R(3),
  /*   16 E> */ B(StackCheck),
                B(Mov), R(3), R(0),
  /*   36 S> */ B(LdaFalse),
                B(Star), R(16),
                B(Mov), R(0), R(15),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(15), U8(2),
  /*   36 E> */ B(SuspendGenerator), R(2), R(0), U8(15), U8(1),
                B(ResumeGenerator), R(2), R(0), U8(15),
                B(Star), R(15),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
                B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0),
                B(Ldar), R(15),
  /*   36 E> */ B(Throw),
                B(LdaZero),
                B(Star), R(11),
                B(Mov), R(15), R(12),
                B(Jump), U8(55),
                B(LdaZero),
                B(Star), R(7),
                B(JumpLoop), U8(84), I8(0),
                B(Jump), U8(33),
                B(Star), R(15),
                B(CreateCatchContext), R(15), U8(11),
                B(PushContext), R(15),
                B(Star), R(14),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(7), U8(13),
                B(JumpIfFalse), U8(6),
                B(LdaSmi), I8(1),
                B(Star), R(7),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(16),
                B(CallRuntime), U16(Runtime::kReThrow), R(16), U8(1),
                B(PopContext), R(15),
                B(LdaSmi), I8(-1),
                B(Star), R(12),
                B(Star), R(11),
                B(Jump), U8(8),
                B(Star), R(12),
                B(LdaSmi), I8(1),
                B(Star), R(11),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Star), R(13),
                B(LdaZero),
                B(TestEqualStrict), R(7), U8(14),
                B(JumpIfTrue), U8(90),
                B(LdaNamedProperty), R(4), U8(12), U8(15),
                B(Star), R(9),
                B(TestUndetectable),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(79),
                B(LdaSmi), I8(1),
                B(TestEqualStrict), R(7), U8(17),
                B(JumpIfFalse), U8(47),
                B(Ldar), R(9),
                B(TestTypeOf), U8(6),
                B(JumpIfFalse), U8(4),
                B(Jump), U8(18),
                B(Wide), B(LdaSmi), I16(155),
                B(Star), R(14),
                B(LdaConstant), U8(13),
                B(Star), R(15),
                B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2),
                B(Throw),
                B(Mov), R(context), R(14),
                B(Mov), R(9), R(15),
                B(Mov), R(4), R(16),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(15), U8(2),
                B(Jump), U8(6),
                B(LdaTheHole),
                B(SetPendingMessage),
                B(Ldar), R(14),
                B(Jump), U8(27),
                B(Mov), R(9), R(14),
                B(Mov), R(4), R(15),
                B(InvokeIntrinsic), U8(Runtime::k_Call), R(14), U8(2),
                B(Star), R(10),
                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(10), U8(1),
                B(JumpIfToBooleanFalse), U8(4),
                B(Jump), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
                B(Ldar), R(13),
                B(SetPendingMessage),
                B(Ldar), R(11),
                B(SwitchOnSmiNoFeedback), U8(14), U8(2), I8(0),
                B(Jump), U8(8),
                B(Ldar), R(12),
  /*   44 S> */ B(Return),
                B(Ldar), R(12),
                B(ReThrow),
                B(LdaUndefined),
  /*   44 S> */ B(Return),
]
constant pool: [
  Smi [22],
  Smi [138],
  Smi [10],
  Smi [7],
  ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
  SYMBOL_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
  Smi [15],
  Smi [7],
  SCOPE_INFO_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
  Smi [6],
  Smi [9],
]
handlers: [
  [48, 202, 210],
  [51, 169, 171],
  [271, 281, 283],
]

---
snippet: "
  function* g() { yield 42 }
  function* f() { yield* g() }
  f();
"
frame size: 9
parameter count: 1
bytecode array length: 217
bytecodes: [
                B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
                B(Mov), R(closure), R(1),
                B(Mov), R(this), R(2),
                B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(1), U8(2),
                B(Star), R(0),
  /*   38 E> */ B(StackCheck),
  /*   38 E> */ B(SuspendGenerator), R(0), R(0), U8(1), U8(0),
                B(ResumeGenerator), R(0), R(0), U8(1),
                B(Star), R(1),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
                B(Ldar), R(1),
  /*   38 E> */ B(Throw),
                B(Ldar), R(1),
  /*   54 S> */ B(Return),
  /*   43 S> */ B(LdaGlobal), U8(4), U8(0),
                B(Star), R(8),
  /*   50 E> */ B(CallUndefinedReceiver0), R(8), U8(2),
                B(Star), R(6),
                B(LdaNamedProperty), R(6), U8(5), U8(4),
                B(Star), R(7),
                B(CallProperty0), R(7), R(6), U8(6),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
                B(Star), R(3),
                B(LdaNamedProperty), R(3), U8(6), U8(8),
                B(Star), R(5),
                B(LdaUndefined),
                B(Star), R(4),
                B(LdaZero),
                B(Star), R(2),
                B(Ldar), R(2),
                B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(1),
                B(CallProperty1), R(5), R(3), R(4), U8(10),
                B(Jump), U8(69),
                B(LdaNamedProperty), R(3), U8(9), U8(12),
                B(JumpIfUndefined), U8(13),
                B(JumpIfNull), U8(11),
                B(Star), R(8),
                B(CallProperty1), R(8), R(3), R(4), U8(14),
                B(Jump), U8(52),
                B(Ldar), R(4),
  /*   54 S> */ B(Return),
                B(LdaNamedProperty), R(3), U8(10), U8(16),
                B(JumpIfUndefined), U8(13),
                B(JumpIfNull), U8(11),
                B(Star), R(8),
                B(CallProperty1), R(8), R(3), R(4), U8(18),
                B(Jump), U8(32),
                B(LdaNamedProperty), R(3), U8(9), U8(20),
                B(JumpIfUndefined), U8(21),
                B(JumpIfNull), U8(19),
                B(Star), R(8),
                B(CallProperty0), R(8), R(3), U8(22),
                B(Jump), U8(2),
                B(JumpIfJSReceiver), U8(9),
                B(Star), R(8),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(8), U8(1),
                B(CallRuntime), U16(Runtime::kThrowThrowMethodMissing), R(0), U8(0),
                B(Star), R(1),
                B(JumpIfJSReceiver), U8(7),
                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(1), U8(1),
                B(LdaNamedProperty), R(1), U8(11), U8(24),
                B(JumpIfToBooleanTrue), U8(24),
                B(Ldar), R(1),
  /*   43 E> */ B(SuspendGenerator), R(0), R(0), U8(8), U8(1),
                B(ResumeGenerator), R(0), R(0), U8(8),
                B(Star), R(4),
                B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
                B(Star), R(2),
                B(JumpLoop), U8(114), I8(0),
                B(LdaNamedProperty), R(1), U8(12), U8(26),
                B(Star), R(3),
                B(LdaSmi), I8(1),
                B(TestReferenceEqual), R(2),
                B(JumpIfFalse), U8(5),
                B(Ldar), R(3),
  /*   54 S> */ B(Return),
                B(LdaUndefined),
  /*   54 S> */ B(Return),
]
constant pool: [
  Smi [22],
  Smi [185],
  Smi [10],
  Smi [7],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["g"],
  SYMBOL_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
  Smi [11],
  Smi [31],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["throw"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
]
handlers: [
]

