final class jdk.nashorn.internal.runtime.SetMethodCreator
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.internal.runtime.SetMethodCreator
  super_class: java.lang.Object
{
  private final jdk.nashorn.internal.runtime.ScriptObject sobj;
    descriptor: Ljdk/nashorn/internal/runtime/ScriptObject;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.nashorn.internal.runtime.PropertyMap map;
    descriptor: Ljdk/nashorn/internal/runtime/PropertyMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.nashorn.internal.runtime.FindProperty find;
    descriptor: Ljdk/nashorn/internal/runtime/FindProperty;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.dynalink.CallSiteDescriptor desc;
    descriptor: Ljdk/dynalink/CallSiteDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<?> type;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private final jdk.dynalink.linker.LinkRequest request;
    descriptor: Ljdk/dynalink/linker/LinkRequest;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 45
            ldc Ljdk/nashorn/internal/runtime/SetMethodCreator;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic jdk.nashorn.internal.runtime.SetMethodCreator.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(jdk.nashorn.internal.runtime.ScriptObject, jdk.nashorn.internal.runtime.FindProperty, jdk.dynalink.CallSiteDescriptor, jdk.dynalink.linker.LinkRequest);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/runtime/FindProperty;Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkRequest;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
        start local 1 // jdk.nashorn.internal.runtime.ScriptObject sobj
        start local 2 // jdk.nashorn.internal.runtime.FindProperty find
        start local 3 // jdk.dynalink.CallSiteDescriptor desc
        start local 4 // jdk.dynalink.linker.LinkRequest request
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            aload 1 /* sobj */
            putfield jdk.nashorn.internal.runtime.SetMethodCreator.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
         2: .line 64
            aload 0 /* this */
            aload 1 /* sobj */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.getMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            putfield jdk.nashorn.internal.runtime.SetMethodCreator.map:Ljdk/nashorn/internal/runtime/PropertyMap;
         3: .line 65
            aload 0 /* this */
            aload 2 /* find */
            putfield jdk.nashorn.internal.runtime.SetMethodCreator.find:Ljdk/nashorn/internal/runtime/FindProperty;
         4: .line 66
            aload 0 /* this */
            aload 3 /* desc */
            putfield jdk.nashorn.internal.runtime.SetMethodCreator.desc:Ljdk/dynalink/CallSiteDescriptor;
         5: .line 67
            aload 0 /* this */
            aload 3 /* desc */
            invokevirtual jdk.dynalink.CallSiteDescriptor.getMethodType:()Ljava/lang/invoke/MethodType;
            iconst_1
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            putfield jdk.nashorn.internal.runtime.SetMethodCreator.type:Ljava/lang/Class;
         6: .line 68
            aload 0 /* this */
            aload 4 /* request */
            putfield jdk.nashorn.internal.runtime.SetMethodCreator.request:Ljdk/dynalink/linker/LinkRequest;
         7: .line 69
            return
        end local 4 // jdk.dynalink.linker.LinkRequest request
        end local 3 // jdk.dynalink.CallSiteDescriptor desc
        end local 2 // jdk.nashorn.internal.runtime.FindProperty find
        end local 1 // jdk.nashorn.internal.runtime.ScriptObject sobj
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Ljdk/nashorn/internal/runtime/SetMethodCreator;
            0    8     1     sobj  Ljdk/nashorn/internal/runtime/ScriptObject;
            0    8     2     find  Ljdk/nashorn/internal/runtime/FindProperty;
            0    8     3     desc  Ljdk/dynalink/CallSiteDescriptor;
            0    8     4  request  Ljdk/dynalink/linker/LinkRequest;
    MethodParameters:
         Name  Flags
      sobj     final
      find     final
      desc     final
      request  final

  private java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
         0: .line 72
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.desc:Ljdk/dynalink/CallSiteDescriptor;
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.getOperand:(Ljdk/dynalink/CallSiteDescriptor;)Ljava/lang/String;
            areturn
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/SetMethodCreator;

  private jdk.nashorn.internal.runtime.PropertyMap getMap();
    descriptor: ()Ljdk/nashorn/internal/runtime/PropertyMap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
         0: .line 76
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.map:Ljdk/nashorn/internal/runtime/PropertyMap;
            areturn
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/SetMethodCreator;

  jdk.dynalink.linker.GuardedInvocation createGuardedInvocation(java.lang.invoke.SwitchPoint);
    descriptor: (Ljava/lang/invoke/SwitchPoint;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
        start local 1 // java.lang.invoke.SwitchPoint builtinSwitchPoint
         0: .line 84
            aload 0 /* this */
            aload 1 /* builtinSwitchPoint */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.createSetMethod:(Ljava/lang/invoke/SwitchPoint;)Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod.createGuardedInvocation:()Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 1 // java.lang.invoke.SwitchPoint builtinSwitchPoint
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Ljdk/nashorn/internal/runtime/SetMethodCreator;
            0    1     1  builtinSwitchPoint  Ljava/lang/invoke/SwitchPoint;
    MethodParameters:
                    Name  Flags
      builtinSwitchPoint  final

  private jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod createSetMethod(java.lang.invoke.SwitchPoint);
    descriptor: (Ljava/lang/invoke/SwitchPoint;)Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
        start local 1 // java.lang.invoke.SwitchPoint builtinSwitchPoint
         0: .line 122
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.find:Ljdk/nashorn/internal/runtime/FindProperty;
            ifnull 2
         1: .line 123
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.createExistingPropertySetter:()Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
            areturn
         2: .line 126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.checkStrictCreateNewVariable:()V
         3: .line 128
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.isScope:()Z
            ifeq 5
         4: .line 129
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.createGlobalPropertySetter:()Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
            areturn
         5: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* builtinSwitchPoint */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.createNewPropertySetter:(Ljava/lang/invoke/SwitchPoint;)Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
            areturn
        end local 1 // java.lang.invoke.SwitchPoint builtinSwitchPoint
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Ljdk/nashorn/internal/runtime/SetMethodCreator;
            0    6     1  builtinSwitchPoint  Ljava/lang/invoke/SwitchPoint;
    MethodParameters:
                    Name  Flags
      builtinSwitchPoint  final

  private void checkStrictCreateNewVariable();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
         0: .line 138
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.desc:Ljdk/dynalink/CallSiteDescriptor;
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.isScope:(Ljdk/dynalink/CallSiteDescriptor;)Z
            ifeq 2
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.desc:Ljdk/dynalink/CallSiteDescriptor;
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.isStrict:(Ljdk/dynalink/CallSiteDescriptor;)Z
            ifeq 2
         1: .line 139
            ldc "not.defined"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.getName:()Ljava/lang/String;
            aastore
            invokestatic jdk.nashorn.internal.runtime.ECMAErrors.referenceError:(Ljava/lang/String;[Ljava/lang/String;)Ljdk/nashorn/internal/runtime/ECMAException;
            athrow
         2: .line 141
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/nashorn/internal/runtime/SetMethodCreator;

  private jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod createExistingPropertySetter();
    descriptor: ()Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
         0: .line 144
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.find:Ljdk/nashorn/internal/runtime/FindProperty;
            invokevirtual jdk.nashorn.internal.runtime.FindProperty.getProperty:()Ljdk/nashorn/internal/runtime/Property;
            astore 1 /* property */
        start local 1 // jdk.nashorn.internal.runtime.Property property
         1: .line 145
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.desc:Ljdk/dynalink/CallSiteDescriptor;
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.isStrict:(Ljdk/dynalink/CallSiteDescriptor;)Z
            istore 2 /* isStrict */
        start local 2 // boolean isStrict
         2: .line 148
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.desc:Ljdk/dynalink/CallSiteDescriptor;
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.isDeclaration:(Ljdk/dynalink/CallSiteDescriptor;)Z
            ifeq 13
            aload 1 /* property */
            invokevirtual jdk.nashorn.internal.runtime.Property.needsDeclaration:()Z
            ifeq 13
         3: .line 154
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.getMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            astore 4 /* oldMap */
        start local 4 // jdk.nashorn.internal.runtime.PropertyMap oldMap
         4: .line 155
            aload 1 /* property */
            sipush 512
            invokevirtual jdk.nashorn.internal.runtime.Property.removeFlags:(I)Ljdk/nashorn/internal/runtime/Property;
            astore 5 /* newProperty */
        start local 5 // jdk.nashorn.internal.runtime.Property newProperty
         5: .line 156
            aload 4 /* oldMap */
            aload 1 /* property */
            aload 5 /* newProperty */
            invokevirtual jdk.nashorn.internal.runtime.PropertyMap.replaceProperty:(Ljdk/nashorn/internal/runtime/Property;Ljdk/nashorn/internal/runtime/Property;)Ljdk/nashorn/internal/runtime/PropertyMap;
            astore 6 /* newMap */
        start local 6 // jdk.nashorn.internal.runtime.PropertyMap newMap
         6: .line 157
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.find:Ljdk/nashorn/internal/runtime/FindProperty;
            aload 5 /* newProperty */
            invokevirtual jdk.nashorn.internal.runtime.FindProperty.replaceProperty:(Ljdk/nashorn/internal/runtime/Property;)Ljdk/nashorn/internal/runtime/FindProperty;
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.type:Ljava/lang/Class;
            iload 2 /* isStrict */
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.request:Ljdk/dynalink/linker/LinkRequest;
            invokevirtual jdk.nashorn.internal.runtime.FindProperty.getSetter:(Ljava/lang/Class;ZLjdk/dynalink/linker/LinkRequest;)Ljava/lang/invoke/MethodHandle;
            astore 7 /* fastSetter */
        start local 7 // java.lang.invoke.MethodHandle fastSetter
         7: .line 158
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            getstatic jdk.nashorn.internal.runtime.ScriptObject.DECLARE_AND_SET:Ljava/lang/invoke/MethodHandle;
            iconst_1
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.getName:()Ljava/lang/String;
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            aload 7 /* fastSetter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* slowSetter */
        start local 8 // java.lang.invoke.MethodHandle slowSetter
         8: .line 161
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            getstatic jdk.nashorn.internal.runtime.ScriptObject.CAS_MAP:Ljava/lang/invoke/MethodHandle;
            iconst_1
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* oldMap */
            aastore
            dup
            iconst_1
            aload 6 /* newMap */
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* casMap */
        start local 9 // java.lang.invoke.MethodHandle casMap
         9: .line 162
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 9 /* casMap */
            iconst_1
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.type:Ljava/lang/Class;
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* casMap */
        10: .line 163
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 9 /* casMap */
            aload 9 /* casMap */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            ldc Ljava/lang/Object;
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* casMap */
        11: .line 164
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 9 /* casMap */
            aload 7 /* fastSetter */
            aload 8 /* slowSetter */
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.guardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* methodHandle */
        end local 9 // java.lang.invoke.MethodHandle casMap
        end local 8 // java.lang.invoke.MethodHandle slowSetter
        end local 7 // java.lang.invoke.MethodHandle fastSetter
        end local 6 // jdk.nashorn.internal.runtime.PropertyMap newMap
        end local 5 // jdk.nashorn.internal.runtime.Property newProperty
        end local 4 // jdk.nashorn.internal.runtime.PropertyMap oldMap
        start local 3 // java.lang.invoke.MethodHandle methodHandle
        12: .line 165
            goto 14
        end local 3 // java.lang.invoke.MethodHandle methodHandle
        13: .line 166
      StackMap locals: jdk.nashorn.internal.runtime.Property int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.find:Ljdk/nashorn/internal/runtime/FindProperty;
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.type:Ljava/lang/Class;
            iload 2 /* isStrict */
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.request:Ljdk/dynalink/linker/LinkRequest;
            invokevirtual jdk.nashorn.internal.runtime.FindProperty.getSetter:(Ljava/lang/Class;ZLjdk/dynalink/linker/LinkRequest;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* methodHandle */
        start local 3 // java.lang.invoke.MethodHandle methodHandle
        14: .line 169
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            getstatic jdk.nashorn.internal.runtime.SetMethodCreator.$assertionsDisabled:Z
            ifne 15
            aload 3 /* methodHandle */
            ifnonnull 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 170
      StackMap locals:
      StackMap stack:
            getstatic jdk.nashorn.internal.runtime.SetMethodCreator.$assertionsDisabled:Z
            ifne 16
            aload 1 /* property */
            ifnonnull 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.find:Ljdk/nashorn/internal/runtime/FindProperty;
            invokevirtual jdk.nashorn.internal.runtime.FindProperty.isInheritedOrdinaryProperty:()Z
            ifeq 19
        17: .line 174
            aload 3 /* methodHandle */
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.find:Ljdk/nashorn/internal/runtime/FindProperty;
            invokevirtual jdk.nashorn.internal.runtime.FindProperty.getProtoChainLength:()I
            invokestatic jdk.nashorn.internal.runtime.ScriptObject.addProtoFilter:(Ljava/lang/invoke/MethodHandle;I)Ljava/lang/invoke/MethodHandle;
            astore 4 /* boundHandle */
        start local 4 // java.lang.invoke.MethodHandle boundHandle
        18: .line 175
            goto 20
        end local 4 // java.lang.invoke.MethodHandle boundHandle
        19: .line 176
      StackMap locals:
      StackMap stack:
            aload 3 /* methodHandle */
            astore 4 /* boundHandle */
        start local 4 // java.lang.invoke.MethodHandle boundHandle
        20: .line 178
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            new jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod
            dup
            aload 0 /* this */
            aload 4 /* boundHandle */
            aload 1 /* property */
            invokespecial jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod.<init>:(Ljdk/nashorn/internal/runtime/SetMethodCreator;Ljava/lang/invoke/MethodHandle;Ljdk/nashorn/internal/runtime/Property;)V
            areturn
        end local 4 // java.lang.invoke.MethodHandle boundHandle
        end local 3 // java.lang.invoke.MethodHandle methodHandle
        end local 2 // boolean isStrict
        end local 1 // jdk.nashorn.internal.runtime.Property property
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Ljdk/nashorn/internal/runtime/SetMethodCreator;
            1   21     1      property  Ljdk/nashorn/internal/runtime/Property;
            2   21     2      isStrict  Z
           12   13     3  methodHandle  Ljava/lang/invoke/MethodHandle;
           14   21     3  methodHandle  Ljava/lang/invoke/MethodHandle;
            4   12     4        oldMap  Ljdk/nashorn/internal/runtime/PropertyMap;
            5   12     5   newProperty  Ljdk/nashorn/internal/runtime/Property;
            6   12     6        newMap  Ljdk/nashorn/internal/runtime/PropertyMap;
            7   12     7    fastSetter  Ljava/lang/invoke/MethodHandle;
            8   12     8    slowSetter  Ljava/lang/invoke/MethodHandle;
            9   12     9        casMap  Ljava/lang/invoke/MethodHandle;
           18   19     4   boundHandle  Ljava/lang/invoke/MethodHandle;
           20   21     4   boundHandle  Ljava/lang/invoke/MethodHandle;

  private jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod createGlobalPropertySetter();
    descriptor: ()Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=2, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
         0: .line 182
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 1 /* global */
        start local 1 // jdk.nashorn.internal.runtime.ScriptObject global
         1: .line 183
            new jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod
            dup
            aload 0 /* this */
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 1 /* global */
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.type:Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.getName:()Ljava/lang/String;
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.addSpill:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            iconst_1
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            getstatic jdk.nashorn.internal.runtime.ScriptObject.GLOBALFILTER:Ljava/lang/invoke/MethodHandle;
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.filterArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            aconst_null
            invokespecial jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod.<init>:(Ljdk/nashorn/internal/runtime/SetMethodCreator;Ljava/lang/invoke/MethodHandle;Ljdk/nashorn/internal/runtime/Property;)V
            areturn
        end local 1 // jdk.nashorn.internal.runtime.ScriptObject global
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/nashorn/internal/runtime/SetMethodCreator;
            1    2     1  global  Ljdk/nashorn/internal/runtime/ScriptObject;

  private jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod createNewPropertySetter(java.lang.invoke.SwitchPoint);
    descriptor: (Ljava/lang/invoke/SwitchPoint;)Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
        start local 1 // java.lang.invoke.SwitchPoint builtinSwitchPoint
         0: .line 187
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.map:Ljdk/nashorn/internal/runtime/PropertyMap;
            invokevirtual jdk.nashorn.internal.runtime.PropertyMap.getFreeFieldSlot:()I
            iconst_m1
            if_icmple 1
            aload 0 /* this */
            aload 1 /* builtinSwitchPoint */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.createNewFieldSetter:(Ljava/lang/invoke/SwitchPoint;)Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* builtinSwitchPoint */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.createNewSpillPropertySetter:(Ljava/lang/invoke/SwitchPoint;)Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
      StackMap locals:
      StackMap stack: jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod
         2: astore 2 /* sm */
        start local 2 // jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod sm
         3: .line 188
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.map:Ljdk/nashorn/internal/runtime/PropertyMap;
            aload 2 /* sm */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod.property:Ljdk/nashorn/internal/runtime/Property;
            invokevirtual jdk.nashorn.internal.runtime.PropertyMap.propertyChanged:(Ljdk/nashorn/internal/runtime/Property;)V
         4: .line 189
            aload 2 /* sm */
            areturn
        end local 2 // jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod sm
        end local 1 // java.lang.invoke.SwitchPoint builtinSwitchPoint
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Ljdk/nashorn/internal/runtime/SetMethodCreator;
            0    5     1  builtinSwitchPoint  Ljava/lang/invoke/SwitchPoint;
            3    5     2                  sm  Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
    MethodParameters:
                    Name  Flags
      builtinSwitchPoint  final

  private jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod createNewSetter(jdk.nashorn.internal.runtime.Property, java.lang.invoke.SwitchPoint);
    descriptor: (Ljdk/nashorn/internal/runtime/Property;Ljava/lang/invoke/SwitchPoint;)Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=13, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
        start local 1 // jdk.nashorn.internal.runtime.Property property
        start local 2 // java.lang.invoke.SwitchPoint builtinSwitchPoint
         0: .line 193
            aload 1 /* property */
            aload 2 /* builtinSwitchPoint */
            invokevirtual jdk.nashorn.internal.runtime.Property.setBuiltinSwitchPoint:(Ljava/lang/invoke/SwitchPoint;)V
         1: .line 195
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.getMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            astore 3 /* oldMap */
        start local 3 // jdk.nashorn.internal.runtime.PropertyMap oldMap
         2: .line 196
            aload 0 /* this */
            aload 1 /* property */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.getNewMap:(Ljdk/nashorn/internal/runtime/Property;)Ljdk/nashorn/internal/runtime/PropertyMap;
            astore 4 /* newMap */
        start local 4 // jdk.nashorn.internal.runtime.PropertyMap newMap
         3: .line 197
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.desc:Ljdk/dynalink/CallSiteDescriptor;
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.isStrict:(Ljdk/dynalink/CallSiteDescriptor;)Z
            istore 5 /* isStrict */
        start local 5 // boolean isStrict
         4: .line 198
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.desc:Ljdk/dynalink/CallSiteDescriptor;
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.getOperand:(Ljdk/dynalink/CallSiteDescriptor;)Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         5: .line 201
            aload 1 /* property */
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.type:Ljava/lang/Class;
            aload 4 /* newMap */
            invokevirtual jdk.nashorn.internal.runtime.Property.getSetter:(Ljava/lang/Class;Ljdk/nashorn/internal/runtime/PropertyMap;)Ljava/lang/invoke/MethodHandle;
            astore 7 /* fastSetter */
        start local 7 // java.lang.invoke.MethodHandle fastSetter
         6: .line 204
            getstatic jdk.nashorn.internal.runtime.ScriptObject.SET_SLOW:[Ljava/lang/invoke/MethodHandle;
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.type:Ljava/lang/Class;
            invokestatic jdk.nashorn.internal.runtime.JSType.getAccessorTypeIndex:(Ljava/lang/Class;)I
            aaload
            astore 8 /* slowSetter */
        start local 8 // java.lang.invoke.MethodHandle slowSetter
         7: .line 205
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 8 /* slowSetter */
            iconst_3
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.desc:Ljdk/dynalink/CallSiteDescriptor;
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.getFlags:(Ljdk/dynalink/CallSiteDescriptor;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* slowSetter */
         8: .line 206
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 8 /* slowSetter */
            iconst_1
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* name */
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* slowSetter */
         9: .line 207
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 8 /* slowSetter */
            aload 8 /* slowSetter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            ldc Ljava/lang/Object;
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* slowSetter */
        10: .line 209
            getstatic jdk.nashorn.internal.runtime.SetMethodCreator.$assertionsDisabled:Z
            ifne 11
            aload 8 /* slowSetter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 7 /* fastSetter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.equals:(Ljava/lang/Object;)Z
            ifne 11
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "slow="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* slowSetter */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " != fast="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* fastSetter */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        11: .line 212
      StackMap locals: jdk.nashorn.internal.runtime.SetMethodCreator jdk.nashorn.internal.runtime.Property java.lang.invoke.SwitchPoint jdk.nashorn.internal.runtime.PropertyMap jdk.nashorn.internal.runtime.PropertyMap int java.lang.String java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            getstatic jdk.nashorn.internal.runtime.ScriptObject.CAS_MAP:Ljava/lang/invoke/MethodHandle;
            iconst_1
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* oldMap */
            aastore
            dup
            iconst_1
            aload 4 /* newMap */
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* casMap */
        start local 9 // java.lang.invoke.MethodHandle casMap
        12: .line 213
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 9 /* casMap */
            iconst_1
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.type:Ljava/lang/Class;
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* casMap */
        13: .line 214
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 9 /* casMap */
            aload 9 /* casMap */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            ldc Ljava/lang/Object;
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* casMap */
        14: .line 215
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 9 /* casMap */
            aload 7 /* fastSetter */
            aload 8 /* slowSetter */
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.guardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 10 /* casGuard */
        start local 10 // java.lang.invoke.MethodHandle casGuard
        15: .line 220
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            getstatic jdk.nashorn.internal.runtime.ScriptObject.EXTENSION_CHECK:Ljava/lang/invoke/MethodHandle;
            iconst_1
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 5 /* isStrict */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            dup
            iconst_1
            aload 6 /* name */
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            astore 11 /* extCheck */
        start local 11 // java.lang.invoke.MethodHandle extCheck
        16: .line 221
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 11 /* extCheck */
            aload 11 /* extCheck */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            ldc Ljava/lang/Object;
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 11 /* extCheck */
        17: .line 222
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 11 /* extCheck */
            iconst_1
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.type:Ljava/lang/Class;
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 11 /* extCheck */
        18: .line 224
            getstatic jdk.nashorn.internal.runtime.JSType.VOID_RETURN:Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
            invokevirtual jdk.nashorn.internal.codegen.CompilerConstants$Call.methodHandle:()Ljava/lang/invoke/MethodHandle;
            astore 12 /* nop */
        start local 12 // java.lang.invoke.MethodHandle nop
        19: .line 225
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 12 /* nop */
            iconst_0
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.type:Ljava/lang/Class;
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 12 /* nop */
        20: .line 227
            new jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod
            dup
            aload 0 /* this */
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 11 /* extCheck */
            aload 10 /* casGuard */
            aload 12 /* nop */
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.guardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            aload 7 /* fastSetter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            aload 1 /* property */
            invokespecial jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod.<init>:(Ljdk/nashorn/internal/runtime/SetMethodCreator;Ljava/lang/invoke/MethodHandle;Ljdk/nashorn/internal/runtime/Property;)V
            areturn
        end local 12 // java.lang.invoke.MethodHandle nop
        end local 11 // java.lang.invoke.MethodHandle extCheck
        end local 10 // java.lang.invoke.MethodHandle casGuard
        end local 9 // java.lang.invoke.MethodHandle casMap
        end local 8 // java.lang.invoke.MethodHandle slowSetter
        end local 7 // java.lang.invoke.MethodHandle fastSetter
        end local 6 // java.lang.String name
        end local 5 // boolean isStrict
        end local 4 // jdk.nashorn.internal.runtime.PropertyMap newMap
        end local 3 // jdk.nashorn.internal.runtime.PropertyMap oldMap
        end local 2 // java.lang.invoke.SwitchPoint builtinSwitchPoint
        end local 1 // jdk.nashorn.internal.runtime.Property property
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   21     0                this  Ljdk/nashorn/internal/runtime/SetMethodCreator;
            0   21     1            property  Ljdk/nashorn/internal/runtime/Property;
            0   21     2  builtinSwitchPoint  Ljava/lang/invoke/SwitchPoint;
            2   21     3              oldMap  Ljdk/nashorn/internal/runtime/PropertyMap;
            3   21     4              newMap  Ljdk/nashorn/internal/runtime/PropertyMap;
            4   21     5            isStrict  Z
            5   21     6                name  Ljava/lang/String;
            6   21     7          fastSetter  Ljava/lang/invoke/MethodHandle;
            7   21     8          slowSetter  Ljava/lang/invoke/MethodHandle;
           12   21     9              casMap  Ljava/lang/invoke/MethodHandle;
           15   21    10            casGuard  Ljava/lang/invoke/MethodHandle;
           16   21    11            extCheck  Ljava/lang/invoke/MethodHandle;
           19   21    12                 nop  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
                    Name  Flags
      property            final
      builtinSwitchPoint  final

  private jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod createNewFieldSetter(java.lang.invoke.SwitchPoint);
    descriptor: (Ljava/lang/invoke/SwitchPoint;)Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
        start local 1 // java.lang.invoke.SwitchPoint builtinSwitchPoint
         0: .line 231
            aload 0 /* this */
            new jdk.nashorn.internal.runtime.AccessorProperty
            dup
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            invokestatic jdk.nashorn.internal.runtime.SetMethodCreator.getFlags:(Ljdk/nashorn/internal/runtime/ScriptObject;)I
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.getMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            invokevirtual jdk.nashorn.internal.runtime.PropertyMap.getFreeFieldSlot:()I
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.type:Ljava/lang/Class;
            invokespecial jdk.nashorn.internal.runtime.AccessorProperty.<init>:(Ljava/lang/Object;ILjava/lang/Class;ILjava/lang/Class;)V
            aload 1 /* builtinSwitchPoint */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.createNewSetter:(Ljdk/nashorn/internal/runtime/Property;Ljava/lang/invoke/SwitchPoint;)Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
            areturn
        end local 1 // java.lang.invoke.SwitchPoint builtinSwitchPoint
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Ljdk/nashorn/internal/runtime/SetMethodCreator;
            0    1     1  builtinSwitchPoint  Ljava/lang/invoke/SwitchPoint;
    MethodParameters:
                    Name  Flags
      builtinSwitchPoint  final

  private jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod createNewSpillPropertySetter(java.lang.invoke.SwitchPoint);
    descriptor: (Ljava/lang/invoke/SwitchPoint;)Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
        start local 1 // java.lang.invoke.SwitchPoint builtinSwitchPoint
         0: .line 235
            aload 0 /* this */
            new jdk.nashorn.internal.runtime.SpillProperty
            dup
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            invokestatic jdk.nashorn.internal.runtime.SetMethodCreator.getFlags:(Ljdk/nashorn/internal/runtime/ScriptObject;)I
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.getMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            invokevirtual jdk.nashorn.internal.runtime.PropertyMap.getFreeSpillSlot:()I
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.SetMethodCreator.type:Ljava/lang/Class;
            invokespecial jdk.nashorn.internal.runtime.SpillProperty.<init>:(Ljava/lang/String;IILjava/lang/Class;)V
            aload 1 /* builtinSwitchPoint */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.createNewSetter:(Ljdk/nashorn/internal/runtime/Property;Ljava/lang/invoke/SwitchPoint;)Ljdk/nashorn/internal/runtime/SetMethodCreator$SetMethod;
            areturn
        end local 1 // java.lang.invoke.SwitchPoint builtinSwitchPoint
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Ljdk/nashorn/internal/runtime/SetMethodCreator;
            0    1     1  builtinSwitchPoint  Ljava/lang/invoke/SwitchPoint;
    MethodParameters:
                    Name  Flags
      builtinSwitchPoint  final

  private jdk.nashorn.internal.runtime.PropertyMap getNewMap(jdk.nashorn.internal.runtime.Property);
    descriptor: (Ljdk/nashorn/internal/runtime/Property;)Ljdk/nashorn/internal/runtime/PropertyMap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
        start local 1 // jdk.nashorn.internal.runtime.Property property
         0: .line 239
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.SetMethodCreator.getMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            aload 1 /* property */
            invokevirtual jdk.nashorn.internal.runtime.PropertyMap.addProperty:(Ljdk/nashorn/internal/runtime/Property;)Ljdk/nashorn/internal/runtime/PropertyMap;
            areturn
        end local 1 // jdk.nashorn.internal.runtime.Property property
        end local 0 // jdk.nashorn.internal.runtime.SetMethodCreator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljdk/nashorn/internal/runtime/SetMethodCreator;
            0    1     1  property  Ljdk/nashorn/internal/runtime/Property;
    MethodParameters:
          Name  Flags
      property  final

  private static int getFlags(jdk.nashorn.internal.runtime.ScriptObject);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptObject;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.ScriptObject scriptObject
         0: .line 243
            aload 0 /* scriptObject */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.useDualFields:()Z
            ifeq 1
            sipush 2048
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // jdk.nashorn.internal.runtime.ScriptObject scriptObject
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0  scriptObject  Ljdk/nashorn/internal/runtime/ScriptObject;
    MethodParameters:
              Name  Flags
      scriptObject  final
}
SourceFile: "SetMethodCreator.java"
NestMembers:
  jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod
InnerClasses:
  public abstract Call = jdk.nashorn.internal.codegen.CompilerConstants$Call of jdk.nashorn.internal.codegen.CompilerConstants
  private SetMethod = jdk.nashorn.internal.runtime.SetMethodCreator$SetMethod of jdk.nashorn.internal.runtime.SetMethodCreator