#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: yes
public fields: yes
static fields: yes

---
snippet: "
  {
    class A {
      a;
      ['b'];
      static c;
      static ['d'];
    }
  
    class B {
      a = 1;
      ['b'] = this.a;
      static c = 3;
      static ['d'] = this.c;
    }
    new A;
    new B;
  }
"
frame size: 11
parameter count: 1
bytecode array length: 193
bytecodes: [
  /*   30 E> */ B(StackCheck),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(0),
                B(PushContext), R(4),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(5),
                B(LdaTheHole),
                B(Star), R(8),
                B(CreateClosure), U8(2), U8(0), U8(2),
                B(Star), R(5),
                B(LdaConstant), U8(1),
                B(Star), R(6),
                B(LdaConstant), U8(3),
                B(StaCurrentContextSlot), U8(4),
                B(Star), R(9),
                B(LdaConstant), U8(4),
                B(Star), R(10),
                B(LdaConstant), U8(5),
                B(TestEqualStrictNoFeedback), R(10),
                B(Mov), R(5), R(7),
                B(JumpIfFalse), U8(7),
                B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
                B(Ldar), R(10),
                B(StaCurrentContextSlot), U8(5),
                B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(5),
                B(Star), R(6),
                B(Mov), R(5), R(1),
                B(CreateClosure), U8(6), U8(1), U8(2),
                B(Star), R(7),
                B(StaNamedProperty), R(5), U8(7), U8(2),
                B(CreateClosure), U8(8), U8(4), U8(2),
                B(Star), R(9),
                B(CallProperty0), R(9), R(1), U8(5),
                B(PopContext), R(4),
                B(Mov), R(1), R(2),
                B(Ldar), R(closure),
  /*   38 E> */ B(CreateBlockContext), U8(9),
                B(PushContext), R(4),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(5),
                B(LdaTheHole),
                B(Star), R(8),
                B(CreateClosure), U8(11), U8(7), U8(2),
                B(Star), R(5),
                B(LdaConstant), U8(10),
                B(Star), R(6),
                B(LdaConstant), U8(3),
                B(StaCurrentContextSlot), U8(4),
                B(Star), R(9),
                B(LdaConstant), U8(4),
                B(Star), R(10),
                B(LdaConstant), U8(5),
                B(TestEqualStrictNoFeedback), R(10),
                B(Mov), R(5), R(7),
                B(JumpIfFalse), U8(7),
                B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
                B(Ldar), R(10),
                B(StaCurrentContextSlot), U8(5),
                B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(5),
                B(Star), R(6),
                B(Mov), R(5), R(0),
                B(CreateClosure), U8(12), U8(8), U8(2),
                B(Star), R(7),
                B(StaNamedProperty), R(5), U8(7), U8(9),
                B(CreateClosure), U8(13), U8(11), U8(2),
                B(Star), R(9),
                B(CallProperty0), R(9), R(0), U8(12),
                B(PopContext), R(4),
                B(Mov), R(0), R(3),
  /*  197 S> */ B(Ldar), R(2),
  /*  197 E> */ B(Construct), R(2), R(0), U8(0), U8(14),
  /*  206 S> */ B(Ldar), R(0),
  /*  206 E> */ B(Construct), R(0), R(0), U8(0), U8(16),
                B(LdaUndefined),
  /*  215 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  FIXED_ARRAY_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["d"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["prototype"],
  SHARED_FUNCTION_INFO_TYPE,
  SYMBOL_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  FIXED_ARRAY_TYPE,
  FIXED_ARRAY_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
]
handlers: [
]

---
snippet: "
  {
    class A extends class {} {
      a;
      ['b'];
      static c;
      static ['d'];
    }
  
    class B extends class {} {
      a = 1;
      ['b'] = this.a;
      static c = 3;
      static ['d'] = this.c;
      foo() { return 1; }
      constructor() {
        super();
      }
    }
  
    class C extends B {
      a = 1;
      ['b'] = this.a;
      static c = 3;
      static ['d'] = super.foo();
      constructor() {
        (() => super())();
      }
    }
  
    new A;
    new B;
    new C;
  }
"
frame size: 15
parameter count: 1
bytecode array length: 346
bytecodes: [
  /*   30 E> */ B(StackCheck),
                B(Ldar), R(closure),
                B(CreateBlockContext), U8(0),
                B(PushContext), R(6),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(5),
                B(LdaTheHole),
                B(Star), R(14),
                B(CreateClosure), U8(3), U8(0), U8(2),
                B(Star), R(11),
                B(LdaConstant), U8(2),
                B(Star), R(12),
                B(Mov), R(11), R(13),
                B(CallRuntime), U16(Runtime::kDefineClass), R(12), U8(3),
                B(Star), R(12),
                B(CreateClosure), U8(4), U8(1), U8(2),
                B(Star), R(7),
                B(LdaConstant), U8(1),
                B(Star), R(8),
                B(LdaConstant), U8(5),
                B(StaCurrentContextSlot), U8(4),
                B(Star), R(11),
                B(LdaConstant), U8(6),
                B(Star), R(12),
                B(LdaConstant), U8(7),
                B(TestEqualStrictNoFeedback), R(12),
                B(Mov), R(13), R(10),
                B(Mov), R(7), R(9),
                B(JumpIfFalse), U8(7),
                B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
                B(Ldar), R(12),
                B(StaCurrentContextSlot), U8(5),
                B(CallRuntime), U16(Runtime::kDefineClass), R(8), U8(5),
                B(Star), R(8),
                B(Mov), R(7), R(2),
                B(CreateClosure), U8(8), U8(2), U8(2),
                B(Star), R(9),
                B(StaNamedProperty), R(7), U8(9), U8(3),
                B(CreateClosure), U8(10), U8(5), U8(2),
                B(Star), R(11),
                B(CallProperty0), R(11), R(2), U8(6),
                B(PopContext), R(6),
                B(Mov), R(2), R(3),
                B(Ldar), R(closure),
  /*   38 E> */ B(CreateBlockContext), U8(11),
                B(PushContext), R(6),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(5),
                B(LdaTheHole),
                B(Star), R(14),
                B(CreateClosure), U8(14), U8(8), U8(2),
                B(Star), R(11),
                B(LdaConstant), U8(13),
                B(Star), R(12),
                B(Mov), R(11), R(13),
                B(CallRuntime), U16(Runtime::kDefineClass), R(12), U8(3),
                B(Star), R(12),
                B(CreateClosure), U8(15), U8(9), U8(2),
                B(Star), R(7),
                B(LdaConstant), U8(12),
                B(Star), R(8),
                B(LdaConstant), U8(5),
                B(StaCurrentContextSlot), U8(4),
                B(Star), R(11),
                B(LdaConstant), U8(6),
                B(Star), R(12),
                B(LdaConstant), U8(7),
                B(TestEqualStrictNoFeedback), R(12),
                B(Mov), R(7), R(9),
                B(Mov), R(13), R(10),
                B(JumpIfFalse), U8(7),
                B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
                B(Ldar), R(12),
                B(StaCurrentContextSlot), U8(5),
                B(CreateClosure), U8(16), U8(10), U8(2),
                B(Star), R(13),
                B(CallRuntime), U16(Runtime::kDefineClass), R(8), U8(6),
                B(Star), R(8),
                B(Mov), R(7), R(1),
                B(CreateClosure), U8(17), U8(11), U8(2),
                B(Star), R(9),
                B(StaNamedProperty), R(7), U8(9), U8(12),
                B(CreateClosure), U8(18), U8(14), U8(2),
                B(Star), R(11),
                B(CallProperty0), R(11), R(1), U8(15),
                B(PopContext), R(6),
                B(Mov), R(1), R(4),
                B(Ldar), R(closure),
  /*  122 E> */ B(CreateBlockContext), U8(19),
                B(PushContext), R(6),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(4),
                B(LdaTheHole),
                B(StaCurrentContextSlot), U8(5),
  /*  313 E> */ B(CreateClosure), U8(21), U8(17), U8(2),
                B(Star), R(7),
                B(LdaConstant), U8(20),
                B(Star), R(8),
                B(LdaConstant), U8(5),
                B(StaCurrentContextSlot), U8(4),
                B(Star), R(11),
                B(LdaConstant), U8(6),
                B(Star), R(12),
                B(LdaConstant), U8(7),
                B(TestEqualStrictNoFeedback), R(12),
                B(Mov), R(1), R(10),
                B(Mov), R(7), R(9),
                B(JumpIfFalse), U8(7),
                B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
                B(Ldar), R(12),
                B(StaCurrentContextSlot), U8(5),
                B(CallRuntime), U16(Runtime::kDefineClass), R(8), U8(5),
                B(Star), R(8),
                B(Mov), R(7), R(0),
                B(CreateClosure), U8(22), U8(18), U8(2),
                B(Star), R(9),
                B(StaNamedProperty), R(7), U8(9), U8(19),
                B(CreateClosure), U8(23), U8(21), U8(2),
                B(Star), R(11),
                B(Ldar), R(0),
                B(StaNamedProperty), R(11), U8(24), U8(22),
                B(CallProperty0), R(11), R(0), U8(24),
                B(PopContext), R(6),
                B(Mov), R(0), R(5),
  /*  456 S> */ B(Ldar), R(3),
  /*  456 E> */ B(Construct), R(3), R(0), U8(0), U8(26),
  /*  465 S> */ B(Ldar), R(4),
  /*  465 E> */ B(Construct), R(4), R(0), U8(0), U8(28),
  /*  474 S> */ B(Ldar), R(0),
  /*  474 E> */ B(Construct), R(0), R(0), U8(0), U8(30),
                B(LdaUndefined),
  /*  483 S> */ B(Return),
]
constant pool: [
  FIXED_ARRAY_TYPE,
  FIXED_ARRAY_TYPE,
  FIXED_ARRAY_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["d"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["prototype"],
  SHARED_FUNCTION_INFO_TYPE,
  SYMBOL_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  FIXED_ARRAY_TYPE,
  FIXED_ARRAY_TYPE,
  FIXED_ARRAY_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  FIXED_ARRAY_TYPE,
  FIXED_ARRAY_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  SHARED_FUNCTION_INFO_TYPE,
  SYMBOL_TYPE,
]
handlers: [
]

