#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: no
module: yes
top level: yes

---
snippet: "
  import \"bar\";
"
frame size: 9
parameter count: 2
bytecode array length: 145
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
                B(PushContext), R(2),
                B(ResumeGenerator), R(new_target),
                B(Star), R(1),
                B(LdaZero),
                B(TestEqualStrict), R(1), U8(0),
                B(JumpIfTrue), U8(63),
                B(LdaSmi), I8(78),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(LdaConstant), U8(0),
                B(Star), R(5),
                B(Mov), R(arg0), R(3),
                B(Mov), R(closure), R(4),
                B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
  /*    0 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(4),
                B(Mov), R(closure), R(3),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(Star), R(3),
                B(LdaImmutableCurrentContextSlot), U8(5),
                B(Star), R(4),
                B(LdaZero),
                B(SuspendGenerator), R(4),
                B(Ldar), R(3),
  /*   13 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
                B(Star), R(5),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
                B(Star), R(6),
                B(LdaZero),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(15),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(8),
                B(Mov), R(5), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
  /*   13 S> */ B(Return),
                B(Ldar), R(5),
  /*    0 E> */ B(Throw),
                B(Ldar), R(5),
                B(StaCurrentContextSlot), U8(6),
                B(LdaCurrentContextSlot), U8(6),
                B(Star), R(3),
                B(LdaTrue),
                B(Star), R(4),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(3), U8(2),
  /*   13 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
]
handlers: [
]

---
snippet: "
  import {foo} from \"bar\";
"
frame size: 9
parameter count: 2
bytecode array length: 145
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
                B(PushContext), R(2),
                B(ResumeGenerator), R(new_target),
                B(Star), R(1),
                B(LdaZero),
                B(TestEqualStrict), R(1), U8(0),
                B(JumpIfTrue), U8(63),
                B(LdaSmi), I8(78),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(LdaConstant), U8(0),
                B(Star), R(5),
                B(Mov), R(arg0), R(3),
                B(Mov), R(closure), R(4),
                B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
  /*    0 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(4),
                B(Mov), R(closure), R(3),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(Star), R(3),
                B(LdaImmutableCurrentContextSlot), U8(5),
                B(Star), R(4),
                B(LdaZero),
                B(SuspendGenerator), R(4),
                B(Ldar), R(3),
  /*   24 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
                B(Star), R(5),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
                B(Star), R(6),
                B(LdaZero),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(15),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(8),
                B(Mov), R(5), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
  /*   24 S> */ B(Return),
                B(Ldar), R(5),
  /*    0 E> */ B(Throw),
                B(Ldar), R(5),
                B(StaCurrentContextSlot), U8(6),
                B(LdaCurrentContextSlot), U8(6),
                B(Star), R(3),
                B(LdaTrue),
                B(Star), R(4),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(3), U8(2),
  /*   24 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
]
handlers: [
]

---
snippet: "
  import {foo as goo} from \"bar\";
  goo(42);
  { let x; { goo(42) } };
"
frame size: 10
parameter count: 2
bytecode array length: 215
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                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(LdaZero),
                B(TestEqualStrict), R(2), U8(0),
                B(JumpIfTrue), U8(63),
                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(LdaConstant), U8(0),
                B(Star), R(6),
                B(Mov), R(arg0), R(4),
                B(Mov), R(closure), R(5),
                B(CallRuntime), U16(Runtime::kPushModuleContext), R(4), U8(3),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
  /*    0 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(5),
                B(Mov), R(closure), R(4),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(Star), R(4),
                B(LdaImmutableCurrentContextSlot), U8(5),
                B(Star), R(5),
                B(LdaZero),
                B(SuspendGenerator), R(5),
                B(Ldar), R(4),
  /*   64 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(2),
                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(7),
                B(LdaZero),
                B(TestEqualStrict), R(7), U8(0),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(7), U8(0),
                B(JumpIfTrue), U8(15),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(9),
                B(Mov), R(6), R(8),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2),
  /*   64 S> */ B(Return),
                B(Ldar), R(6),
  /*    0 E> */ B(Throw),
  /*   32 S> */ B(LdaUndefined),
                B(Star), R(5),
  /*   32 E> */ B(LdaModuleVariable), I8(-1), U8(0),
                B(JumpIfNotHole), U8(11),
                B(LdaConstant), U8(1),
                B(Star), R(6),
                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(6), U8(1),
                B(Star), R(4),
                B(LdaSmi), I8(42),
                B(Star), R(6),
  /*   32 E> */ B(Call), R(4), R(5), U8(2), U8(2),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(2),
                B(PushContext), R(1),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
  /*   47 S> */ B(LdaUndefined),
  /*   47 E> */ B(StaCurrentContextSlot), U8(4),
  /*   52 S> */ B(LdaUndefined),
                B(Star), R(5),
  /*   52 E> */ B(LdaModuleVariable), I8(-1), U8(1),
                B(JumpIfNotHole), U8(11),
                B(LdaConstant), U8(1),
                B(Star), R(6),
                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(6), U8(1),
                B(Star), R(4),
                B(LdaSmi), I8(42),
                B(Star), R(6),
  /*   52 E> */ B(Call), R(4), R(5), U8(2), U8(4),
                B(StaContextSlot), R(1), U8(6), U8(0),
                B(PopContext), R(1),
                B(LdaCurrentContextSlot), U8(6),
                B(Star), R(4),
                B(LdaTrue),
                B(Star), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(4), U8(2),
  /*   64 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["goo"],
  FIXED_ARRAY_TYPE,
]
handlers: [
]

---
snippet: "
  export var foo = 42;
  foo++;
  { let x; { foo++ } };
"
frame size: 10
parameter count: 2
bytecode array length: 186
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                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(LdaZero),
                B(TestEqualStrict), R(2), U8(0),
                B(JumpIfTrue), U8(63),
                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(LdaConstant), U8(0),
                B(Star), R(6),
                B(Mov), R(arg0), R(4),
                B(Mov), R(closure), R(5),
                B(CallRuntime), U16(Runtime::kPushModuleContext), R(4), U8(3),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
  /*    0 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(5),
                B(Mov), R(closure), R(4),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(Star), R(4),
                B(LdaImmutableCurrentContextSlot), U8(5),
                B(Star), R(5),
                B(LdaZero),
                B(SuspendGenerator), R(5),
                B(Ldar), R(4),
  /*   49 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(2),
                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(7),
                B(LdaZero),
                B(TestEqualStrict), R(7), U8(0),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(7), U8(0),
                B(JumpIfTrue), U8(15),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(9),
                B(Mov), R(6), R(8),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2),
  /*   49 S> */ B(Return),
                B(Ldar), R(6),
  /*    0 E> */ B(Throw),
  /*   17 S> */ B(LdaSmi), I8(42),
  /*   17 E> */ B(StaModuleVariable), I8(1), U8(0),
  /*   21 S> */ B(LdaModuleVariable), I8(1), U8(0),
                B(Inc), U8(2),
  /*   24 E> */ B(StaModuleVariable), I8(1), U8(0),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(1),
                B(PushContext), R(1),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
  /*   34 S> */ B(LdaUndefined),
  /*   34 E> */ B(StaCurrentContextSlot), U8(4),
  /*   39 S> */ B(LdaModuleVariable), I8(1), U8(1),
                B(ToNumber), R(4),
                B(Ldar), R(4),
                B(Inc), U8(3),
  /*   42 E> */ B(StaModuleVariable), I8(1), U8(1),
                B(Ldar), R(4),
                B(StaContextSlot), R(1), U8(6), U8(0),
                B(PopContext), R(1),
                B(LdaCurrentContextSlot), U8(6),
                B(Star), R(4),
                B(LdaTrue),
                B(Star), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(4), U8(2),
  /*   49 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  FIXED_ARRAY_TYPE,
]
handlers: [
]

---
snippet: "
  export let foo = 42;
  foo++;
  { let x; { foo++ } };
"
frame size: 10
parameter count: 2
bytecode array length: 190
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                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(LdaZero),
                B(TestEqualStrict), R(2), U8(0),
                B(JumpIfTrue), U8(67),
                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(LdaConstant), U8(0),
                B(Star), R(6),
                B(Mov), R(arg0), R(4),
                B(Mov), R(closure), R(5),
                B(CallRuntime), U16(Runtime::kPushModuleContext), R(4), U8(3),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
                B(LdaTheHole),
                B(StaModuleVariable), I8(1), U8(0),
  /*    0 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(5),
                B(Mov), R(closure), R(4),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(Star), R(4),
                B(LdaImmutableCurrentContextSlot), U8(5),
                B(Star), R(5),
                B(LdaZero),
                B(SuspendGenerator), R(5),
                B(Ldar), R(4),
  /*   49 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(2),
                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(7),
                B(LdaZero),
                B(TestEqualStrict), R(7), U8(0),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(7), U8(0),
                B(JumpIfTrue), U8(15),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(9),
                B(Mov), R(6), R(8),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2),
  /*   49 S> */ B(Return),
                B(Ldar), R(6),
  /*    0 E> */ B(Throw),
  /*   17 S> */ B(LdaSmi), I8(42),
  /*   17 E> */ B(StaModuleVariable), I8(1), U8(0),
  /*   21 S> */ B(LdaModuleVariable), I8(1), U8(0),
                B(Inc), U8(2),
  /*   24 E> */ B(StaModuleVariable), I8(1), U8(0),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(1),
                B(PushContext), R(1),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
  /*   34 S> */ B(LdaUndefined),
  /*   34 E> */ B(StaCurrentContextSlot), U8(4),
  /*   39 S> */ B(LdaModuleVariable), I8(1), U8(1),
                B(ToNumber), R(4),
                B(Ldar), R(4),
                B(Inc), U8(3),
  /*   42 E> */ B(StaModuleVariable), I8(1), U8(1),
                B(Ldar), R(4),
                B(StaContextSlot), R(1), U8(6), U8(0),
                B(PopContext), R(1),
                B(LdaCurrentContextSlot), U8(6),
                B(Star), R(4),
                B(LdaTrue),
                B(Star), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(4), U8(2),
  /*   49 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  FIXED_ARRAY_TYPE,
]
handlers: [
]

---
snippet: "
  export const foo = 42;
  foo++;
  { let x; { foo++ } };
"
frame size: 10
parameter count: 2
bytecode array length: 194
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                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(LdaZero),
                B(TestEqualStrict), R(2), U8(0),
                B(JumpIfTrue), U8(67),
                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(LdaConstant), U8(0),
                B(Star), R(6),
                B(Mov), R(arg0), R(4),
                B(Mov), R(closure), R(5),
                B(CallRuntime), U16(Runtime::kPushModuleContext), R(4), U8(3),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
                B(LdaTheHole),
                B(StaModuleVariable), I8(1), U8(0),
  /*    0 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(5),
                B(Mov), R(closure), R(4),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(Star), R(4),
                B(LdaImmutableCurrentContextSlot), U8(5),
                B(Star), R(5),
                B(LdaZero),
                B(SuspendGenerator), R(5),
                B(Ldar), R(4),
  /*   51 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(2),
                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(7),
                B(LdaZero),
                B(TestEqualStrict), R(7), U8(0),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(7), U8(0),
                B(JumpIfTrue), U8(15),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(9),
                B(Mov), R(6), R(8),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2),
  /*   51 S> */ B(Return),
                B(Ldar), R(6),
  /*    0 E> */ B(Throw),
  /*   19 S> */ B(LdaSmi), I8(42),
  /*   19 E> */ B(StaModuleVariable), I8(1), U8(0),
  /*   23 S> */ B(LdaModuleVariable), I8(1), U8(0),
                B(Inc), U8(2),
  /*   26 E> */ B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(1),
                B(PushContext), R(1),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
  /*   36 S> */ B(LdaUndefined),
  /*   36 E> */ B(StaCurrentContextSlot), U8(4),
  /*   41 S> */ B(LdaModuleVariable), I8(1), U8(1),
                B(ToNumber), R(4),
                B(Ldar), R(4),
                B(Inc), U8(3),
  /*   44 E> */ B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
                B(Ldar), R(4),
                B(StaContextSlot), R(1), U8(6), U8(0),
                B(PopContext), R(1),
                B(LdaCurrentContextSlot), U8(6),
                B(Star), R(4),
                B(LdaTrue),
                B(Star), R(5),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(4), U8(2),
  /*   51 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  FIXED_ARRAY_TYPE,
]
handlers: [
]

---
snippet: "
  export default (function () {});
"
frame size: 9
parameter count: 2
bytecode array length: 156
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
                B(PushContext), R(2),
                B(ResumeGenerator), R(new_target),
                B(Star), R(1),
                B(LdaZero),
                B(TestEqualStrict), R(1), U8(0),
                B(JumpIfTrue), U8(67),
                B(LdaSmi), I8(78),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(LdaConstant), U8(0),
                B(Star), R(5),
                B(Mov), R(arg0), R(3),
                B(Mov), R(closure), R(4),
                B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
                B(LdaTheHole),
                B(StaModuleVariable), I8(1), U8(0),
  /*    0 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(4),
                B(Mov), R(closure), R(3),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(Star), R(3),
                B(LdaImmutableCurrentContextSlot), U8(5),
                B(Star), R(4),
                B(LdaZero),
                B(SuspendGenerator), R(4),
                B(Ldar), R(3),
  /*   32 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
                B(Star), R(5),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
                B(Star), R(6),
                B(LdaZero),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(15),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(8),
                B(Mov), R(5), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
  /*   32 S> */ B(Return),
                B(Ldar), R(5),
  /*    0 E> */ B(Throw),
                B(Ldar), R(5),
                B(StaCurrentContextSlot), U8(6),
                B(CreateClosure), U8(1), U8(2), U8(0),
                B(StaModuleVariable), I8(1), U8(0),
                B(LdaCurrentContextSlot), U8(6),
                B(Star), R(3),
                B(LdaTrue),
                B(Star), R(4),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(3), U8(2),
  /*   32 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
]
handlers: [
]

---
snippet: "
  export default (class {});
"
frame size: 9
parameter count: 2
bytecode array length: 193
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
                B(PushContext), R(2),
                B(ResumeGenerator), R(new_target),
                B(Star), R(1),
                B(LdaZero),
                B(TestEqualStrict), R(1), U8(0),
                B(JumpIfTrue), U8(67),
                B(LdaSmi), I8(78),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(LdaConstant), U8(0),
                B(Star), R(5),
                B(Mov), R(arg0), R(3),
                B(Mov), R(closure), R(4),
                B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
                B(LdaTheHole),
                B(StaModuleVariable), I8(1), U8(0),
  /*    0 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(4),
                B(Mov), R(closure), R(3),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(Star), R(3),
                B(LdaImmutableCurrentContextSlot), U8(5),
                B(Star), R(4),
                B(LdaZero),
                B(SuspendGenerator), R(4),
                B(Ldar), R(3),
  /*   26 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
                B(Star), R(5),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
                B(Star), R(6),
                B(LdaZero),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(15),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(8),
                B(Mov), R(5), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
  /*   26 S> */ B(Return),
                B(Ldar), R(5),
  /*    0 E> */ B(Throw),
                B(Ldar), R(5),
                B(StaCurrentContextSlot), U8(7),
  /*   16 S> */ B(CreateClosure), U8(1), U8(2), U8(0),
                B(Star), R(3),
                B(LdaTheHole),
                B(Star), R(4),
                B(LdaSmi), I8(16),
                B(Star), R(6),
                B(LdaSmi), I8(24),
                B(Star), R(7),
                B(Mov), R(3), R(5),
                B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4),
                B(Star), R(4),
                B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(3), U8(1),
                B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1),
                B(StaCurrentContextSlot), U8(6),
                B(LdaCurrentContextSlot), U8(6),
  /*   16 E> */ B(StaModuleVariable), I8(1), U8(0),
                B(LdaCurrentContextSlot), U8(7),
                B(Star), R(3),
                B(LdaTrue),
                B(Star), R(4),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(3), U8(2),
  /*   26 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
]
handlers: [
]

---
snippet: "
  export {foo as goo} from \"bar\"
"
frame size: 9
parameter count: 2
bytecode array length: 145
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
                B(PushContext), R(2),
                B(ResumeGenerator), R(new_target),
                B(Star), R(1),
                B(LdaZero),
                B(TestEqualStrict), R(1), U8(0),
                B(JumpIfTrue), U8(63),
                B(LdaSmi), I8(78),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(LdaConstant), U8(0),
                B(Star), R(5),
                B(Mov), R(arg0), R(3),
                B(Mov), R(closure), R(4),
                B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
  /*    0 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(4),
                B(Mov), R(closure), R(3),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(Star), R(3),
                B(LdaImmutableCurrentContextSlot), U8(5),
                B(Star), R(4),
                B(LdaZero),
                B(SuspendGenerator), R(4),
                B(Ldar), R(3),
  /*   30 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
                B(Star), R(5),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
                B(Star), R(6),
                B(LdaZero),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(15),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(8),
                B(Mov), R(5), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
  /*   30 S> */ B(Return),
                B(Ldar), R(5),
  /*    0 E> */ B(Throw),
                B(Ldar), R(5),
                B(StaCurrentContextSlot), U8(6),
                B(LdaCurrentContextSlot), U8(6),
                B(Star), R(3),
                B(LdaTrue),
                B(Star), R(4),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(3), U8(2),
  /*   30 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
]
handlers: [
]

---
snippet: "
  export * from \"bar\"
"
frame size: 9
parameter count: 2
bytecode array length: 145
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
                B(PushContext), R(2),
                B(ResumeGenerator), R(new_target),
                B(Star), R(1),
                B(LdaZero),
                B(TestEqualStrict), R(1), U8(0),
                B(JumpIfTrue), U8(63),
                B(LdaSmi), I8(78),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(LdaConstant), U8(0),
                B(Star), R(5),
                B(Mov), R(arg0), R(3),
                B(Mov), R(closure), R(4),
                B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
  /*    0 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(4),
                B(Mov), R(closure), R(3),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(Star), R(3),
                B(LdaImmutableCurrentContextSlot), U8(5),
                B(Star), R(4),
                B(LdaZero),
                B(SuspendGenerator), R(4),
                B(Ldar), R(3),
  /*   19 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
                B(Star), R(5),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
                B(Star), R(6),
                B(LdaZero),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(15),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(8),
                B(Mov), R(5), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
  /*   19 S> */ B(Return),
                B(Ldar), R(5),
  /*    0 E> */ B(Throw),
                B(Ldar), R(5),
                B(StaCurrentContextSlot), U8(6),
                B(LdaCurrentContextSlot), U8(6),
                B(Star), R(3),
                B(LdaTrue),
                B(Star), R(4),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(3), U8(2),
  /*   19 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
]
handlers: [
]

---
snippet: "
  import * as foo from \"bar\"
  foo.f(foo, foo.x);
"
frame size: 9
parameter count: 2
bytecode array length: 182
bytecodes: [
                B(Ldar), R(new_target),
                B(JumpIfUndefined), U8(28),
                B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
                B(PushContext), R(2),
                B(ResumeGenerator), R(new_target),
                B(Star), R(1),
                B(LdaZero),
                B(TestEqualStrict), R(1), U8(0),
                B(JumpIfTrue), U8(73),
                B(LdaSmi), I8(78),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(LdaConstant), U8(0),
                B(Star), R(5),
                B(Mov), R(arg0), R(3),
                B(Mov), R(closure), R(4),
                B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
                B(PushContext), R(0),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
                B(LdaZero),
                B(Star), R(3),
                B(CallRuntime), U16(Runtime::kGetModuleNamespace), R(3), U8(1),
                B(StaCurrentContextSlot), U8(6),
  /*    0 E> */ B(StackCheck),
                B(LdaImmutableCurrentContextSlot), U8(4),
                B(Star), R(4),
                B(Mov), R(closure), R(3),
  /*    0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
                B(StaCurrentContextSlot), U8(5),
                B(Star), R(3),
                B(LdaImmutableCurrentContextSlot), U8(5),
                B(Star), R(4),
                B(LdaZero),
                B(SuspendGenerator), R(4),
                B(Ldar), R(3),
  /*   45 S> */ B(Return),
                B(LdaSmi), I8(-2),
                B(Star), R(1),
                B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
                B(Star), R(5),
                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
                B(Star), R(6),
                B(LdaZero),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(25),
                B(LdaSmi), I8(2),
                B(TestEqualStrict), R(6), U8(0),
                B(JumpIfTrue), U8(15),
                B(Jump), U8(2),
                B(LdaTrue),
                B(Star), R(8),
                B(Mov), R(5), R(7),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
  /*   45 S> */ B(Return),
                B(Ldar), R(5),
  /*    0 E> */ B(Throw),
  /*   27 S> */ B(LdaImmutableCurrentContextSlot), U8(6),
                B(Star), R(4),
  /*   30 E> */ B(LdaNamedProperty), R(4), U8(1), U8(4),
                B(Star), R(3),
                B(LdaImmutableCurrentContextSlot), U8(6),
                B(Star), R(5),
                B(LdaImmutableCurrentContextSlot), U8(6),
                B(Star), R(6),
  /*   41 E> */ B(LdaNamedProperty), R(6), U8(2), U8(6),
                B(Star), R(6),
  /*   31 E> */ B(CallProperty), R(3), R(4), U8(3), U8(2),
                B(StaCurrentContextSlot), U8(7),
                B(LdaCurrentContextSlot), U8(7),
                B(Star), R(3),
                B(LdaTrue),
                B(Star), R(4),
                B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(3), U8(2),
  /*   45 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["f"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["x"],
]
handlers: [
]

