public final class jdk.nashorn.internal.runtime.WithObject extends jdk.nashorn.internal.runtime.Scope
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.internal.runtime.WithObject
  super_class: jdk.nashorn.internal.runtime.Scope
{
  private static final java.lang.invoke.MethodHandle WITHEXPRESSIONGUARD;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle WITHEXPRESSIONFILTER;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle WITHSCOPEFILTER;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle BIND_TO_EXPRESSION_OBJ;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle BIND_TO_EXPRESSION_FN;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final jdk.nashorn.internal.runtime.ScriptObject expression;
    descriptor: Ljdk/nashorn/internal/runtime/ScriptObject;
    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=6, locals=0, args_size=0
         0: .line 50
            ldc Ljdk/nashorn/internal/runtime/WithObject;
            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.WithObject.$assertionsDisabled:Z
         3: .line 51
            ldc "withExpressionGuard"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            ldc Ljdk/nashorn/internal/runtime/PropertyMap;
            aastore
            dup
            iconst_2
            ldc [Ljava/lang/invoke/SwitchPoint;
            aastore
            invokestatic jdk.nashorn.internal.runtime.WithObject.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.nashorn.internal.runtime.WithObject.WITHEXPRESSIONGUARD:Ljava/lang/invoke/MethodHandle;
         4: .line 52
            ldc "withFilterExpression"
            ldc Ljava/lang/Object;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokestatic jdk.nashorn.internal.runtime.WithObject.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.nashorn.internal.runtime.WithObject.WITHEXPRESSIONFILTER:Ljava/lang/invoke/MethodHandle;
         5: .line 53
            ldc "withFilterScope"
            ldc Ljava/lang/Object;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokestatic jdk.nashorn.internal.runtime.WithObject.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.nashorn.internal.runtime.WithObject.WITHSCOPEFILTER:Ljava/lang/invoke/MethodHandle;
         6: .line 54
            ldc "bindToExpression"
            ldc Ljava/lang/Object;
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/Object;
            aastore
            invokestatic jdk.nashorn.internal.runtime.WithObject.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.nashorn.internal.runtime.WithObject.BIND_TO_EXPRESSION_OBJ:Ljava/lang/invoke/MethodHandle;
         7: .line 55
            ldc "bindToExpression"
            ldc Ljava/lang/Object;
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljdk/nashorn/internal/runtime/ScriptFunction;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/Object;
            aastore
            invokestatic jdk.nashorn.internal.runtime.WithObject.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.nashorn.internal.runtime.WithObject.BIND_TO_EXPRESSION_FN:Ljava/lang/invoke/MethodHandle;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(jdk.nashorn.internal.runtime.ScriptObject, jdk.nashorn.internal.runtime.ScriptObject);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/runtime/ScriptObject;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.WithObject this
        start local 1 // jdk.nashorn.internal.runtime.ScriptObject scope
        start local 2 // jdk.nashorn.internal.runtime.ScriptObject expression
         0: .line 67
            aload 0 /* this */
            aload 1 /* scope */
            aconst_null
            invokespecial jdk.nashorn.internal.runtime.Scope.<init>:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/runtime/PropertyMap;)V
         1: .line 68
            aload 0 /* this */
            aload 2 /* expression */
            putfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
         2: .line 69
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.WithObject.setIsInternal:()V
         3: .line 70
            return
        end local 2 // jdk.nashorn.internal.runtime.ScriptObject expression
        end local 1 // jdk.nashorn.internal.runtime.ScriptObject scope
        end local 0 // jdk.nashorn.internal.runtime.WithObject this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Ljdk/nashorn/internal/runtime/WithObject;
            0    4     1       scope  Ljdk/nashorn/internal/runtime/ScriptObject;
            0    4     2  expression  Ljdk/nashorn/internal/runtime/ScriptObject;
    MethodParameters:
            Name  Flags
      scope       final
      expression  final

  public boolean delete(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.WithObject this
        start local 1 // java.lang.Object key
        start local 2 // boolean strict
         0: .line 80
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            astore 3 /* self */
        start local 3 // jdk.nashorn.internal.runtime.ScriptObject self
         1: .line 81
            aload 1 /* key */
            invokestatic jdk.nashorn.internal.runtime.JSType.toString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 4 /* propName */
        start local 4 // java.lang.String propName
         2: .line 83
            aload 3 /* self */
            aload 4 /* propName */
            iconst_1
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.findProperty:(Ljava/lang/Object;Z)Ljdk/nashorn/internal/runtime/FindProperty;
            astore 5 /* find */
        start local 5 // jdk.nashorn.internal.runtime.FindProperty find
         3: .line 85
            aload 5 /* find */
            ifnull 5
         4: .line 86
            aload 3 /* self */
            aload 4 /* propName */
            iload 2 /* strict */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.delete:(Ljava/lang/Object;Z)Z
            ireturn
         5: .line 89
      StackMap locals: jdk.nashorn.internal.runtime.ScriptObject java.lang.String jdk.nashorn.internal.runtime.FindProperty
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // jdk.nashorn.internal.runtime.FindProperty find
        end local 4 // java.lang.String propName
        end local 3 // jdk.nashorn.internal.runtime.ScriptObject self
        end local 2 // boolean strict
        end local 1 // java.lang.Object key
        end local 0 // jdk.nashorn.internal.runtime.WithObject this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljdk/nashorn/internal/runtime/WithObject;
            0    6     1       key  Ljava/lang/Object;
            0    6     2    strict  Z
            1    6     3      self  Ljdk/nashorn/internal/runtime/ScriptObject;
            2    6     4  propName  Ljava/lang/String;
            3    6     5      find  Ljdk/nashorn/internal/runtime/FindProperty;
    MethodParameters:
        Name  Flags
      key     final
      strict  final

  public jdk.dynalink.linker.GuardedInvocation lookup(jdk.dynalink.CallSiteDescriptor, jdk.dynalink.linker.LinkRequest);
    descriptor: (Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.WithObject this
        start local 1 // jdk.dynalink.CallSiteDescriptor desc
        start local 2 // jdk.dynalink.linker.LinkRequest request
         0: .line 95
            aload 2 /* request */
            invokeinterface jdk.dynalink.linker.LinkRequest.isCallSiteUnstable:()Z
            ifeq 2
         1: .line 97
            aload 0 /* this */
            aload 1 /* desc */
            aload 2 /* request */
            invokespecial jdk.nashorn.internal.runtime.Scope.lookup:(Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
         2: .line 100
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* link */
        start local 3 // jdk.dynalink.linker.GuardedInvocation link
         3: .line 101
            aload 1 /* desc */
            invokevirtual jdk.dynalink.CallSiteDescriptor.getOperation:()Ljdk/dynalink/Operation;
            astore 4 /* op */
        start local 4 // jdk.dynalink.Operation op
         4: .line 103
            getstatic jdk.nashorn.internal.runtime.WithObject.$assertionsDisabled:Z
            ifne 5
            aload 4 /* op */
            instanceof jdk.dynalink.NamedOperation
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 104
      StackMap locals: jdk.dynalink.linker.GuardedInvocation jdk.dynalink.Operation
      StackMap stack:
            aload 4 /* op */
            checkcast jdk.dynalink.NamedOperation
            invokevirtual jdk.dynalink.NamedOperation.getName:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         6: .line 106
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 5 /* name */
            iconst_1
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.findProperty:(Ljava/lang/Object;Z)Ljdk/nashorn/internal/runtime/FindProperty;
            astore 6 /* find */
        start local 6 // jdk.nashorn.internal.runtime.FindProperty find
         7: .line 108
            aload 6 /* find */
            ifnull 11
         8: .line 109
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 1 /* desc */
            aload 2 /* request */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.lookup:(Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
            astore 3 /* link */
         9: .line 110
            aload 3 /* link */
            ifnull 11
        10: .line 111
            aload 1 /* desc */
            aload 3 /* link */
            invokestatic jdk.nashorn.internal.runtime.WithObject.fixExpressionCallSite:(Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/GuardedInvocation;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        11: .line 115
      StackMap locals: java.lang.String jdk.nashorn.internal.runtime.FindProperty
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.WithObject.getProto:()Ljdk/nashorn/internal/runtime/ScriptObject;
            astore 7 /* scope */
        start local 7 // jdk.nashorn.internal.runtime.ScriptObject scope
        12: .line 116
            aload 7 /* scope */
            aload 5 /* name */
            iconst_1
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.findProperty:(Ljava/lang/Object;Z)Ljdk/nashorn/internal/runtime/FindProperty;
            astore 6 /* find */
        13: .line 118
            aload 6 /* find */
            ifnull 15
        14: .line 119
            aload 0 /* this */
            aload 7 /* scope */
            aload 1 /* desc */
            aload 2 /* request */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.lookup:(Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
            aload 5 /* name */
            aload 6 /* find */
            invokevirtual jdk.nashorn.internal.runtime.FindProperty.getOwner:()Ljdk/nashorn/internal/runtime/ScriptObject;
            invokevirtual jdk.nashorn.internal.runtime.WithObject.fixScopeCallSite:(Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/String;Ljdk/nashorn/internal/runtime/ScriptObject;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        15: .line 126
      StackMap locals: jdk.nashorn.internal.runtime.ScriptObject
      StackMap stack:
            aload 1 /* desc */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.getBaseOperation:(Ljdk/dynalink/CallSiteDescriptor;)Ljdk/dynalink/Operation;
            astore 9 /* firstOp */
        start local 9 // jdk.dynalink.Operation firstOp
        16: .line 127
            aload 9 /* firstOp */
            getstatic jdk.dynalink.StandardOperation.GET:Ljdk/dynalink/StandardOperation;
            if_acmpne 22
        17: .line 128
            aload 1 /* desc */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.isMethodFirstOperation:(Ljdk/dynalink/CallSiteDescriptor;)Z
            ifeq 20
        18: .line 129
            ldc "__noSuchMethod__"
            astore 8 /* fallBack */
        start local 8 // java.lang.String fallBack
        19: .line 130
            goto 23
        end local 8 // java.lang.String fallBack
        20: .line 131
      StackMap locals: jdk.nashorn.internal.runtime.WithObject jdk.dynalink.CallSiteDescriptor jdk.dynalink.linker.LinkRequest jdk.dynalink.linker.GuardedInvocation jdk.dynalink.Operation java.lang.String jdk.nashorn.internal.runtime.FindProperty jdk.nashorn.internal.runtime.ScriptObject top jdk.dynalink.Operation
      StackMap stack:
            ldc "__noSuchProperty__"
            astore 8 /* fallBack */
        start local 8 // java.lang.String fallBack
        21: .line 133
            goto 23
        end local 8 // java.lang.String fallBack
        22: .line 134
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 8 /* fallBack */
        start local 8 // java.lang.String fallBack
        23: .line 137
      StackMap locals: jdk.nashorn.internal.runtime.WithObject jdk.dynalink.CallSiteDescriptor jdk.dynalink.linker.LinkRequest jdk.dynalink.linker.GuardedInvocation jdk.dynalink.Operation java.lang.String jdk.nashorn.internal.runtime.FindProperty jdk.nashorn.internal.runtime.ScriptObject java.lang.String jdk.dynalink.Operation
      StackMap stack:
            aload 8 /* fallBack */
            ifnull 31
        24: .line 138
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 8 /* fallBack */
            iconst_1
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.findProperty:(Ljava/lang/Object;Z)Ljdk/nashorn/internal/runtime/FindProperty;
            astore 6 /* find */
        25: .line 139
            aload 6 /* find */
            ifnull 31
        26: .line 140
            ldc "__noSuchMethod__"
            aload 8 /* fallBack */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        27: .line 141
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 1 /* desc */
            aload 2 /* request */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.noSuchMethod:(Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
            astore 3 /* link */
        28: .line 142
            goto 31
      StackMap locals:
      StackMap stack:
        29: ldc "__noSuchProperty__"
            aload 8 /* fallBack */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 31
        30: .line 143
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 1 /* desc */
            aload 2 /* request */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.noSuchProperty:(Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
            astore 3 /* link */
        31: .line 148
      StackMap locals:
      StackMap stack:
            aload 3 /* link */
            ifnull 33
        32: .line 149
            aload 1 /* desc */
            aload 3 /* link */
            invokestatic jdk.nashorn.internal.runtime.WithObject.fixExpressionCallSite:(Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/GuardedInvocation;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        33: .line 154
      StackMap locals:
      StackMap stack:
            aload 7 /* scope */
            aload 1 /* desc */
            aload 2 /* request */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.lookup:(Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
            astore 3 /* link */
        34: .line 156
            aload 3 /* link */
            ifnull 36
        35: .line 157
            aload 0 /* this */
            aload 3 /* link */
            aload 5 /* name */
            aconst_null
            invokevirtual jdk.nashorn.internal.runtime.WithObject.fixScopeCallSite:(Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/String;Ljdk/nashorn/internal/runtime/ScriptObject;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        36: .line 160
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 9 // jdk.dynalink.Operation firstOp
        end local 8 // java.lang.String fallBack
        end local 7 // jdk.nashorn.internal.runtime.ScriptObject scope
        end local 6 // jdk.nashorn.internal.runtime.FindProperty find
        end local 5 // java.lang.String name
        end local 4 // jdk.dynalink.Operation op
        end local 3 // jdk.dynalink.linker.GuardedInvocation link
        end local 2 // jdk.dynalink.linker.LinkRequest request
        end local 1 // jdk.dynalink.CallSiteDescriptor desc
        end local 0 // jdk.nashorn.internal.runtime.WithObject this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   37     0      this  Ljdk/nashorn/internal/runtime/WithObject;
            0   37     1      desc  Ljdk/dynalink/CallSiteDescriptor;
            0   37     2   request  Ljdk/dynalink/linker/LinkRequest;
            3   37     3      link  Ljdk/dynalink/linker/GuardedInvocation;
            4   37     4        op  Ljdk/dynalink/Operation;
            6   37     5      name  Ljava/lang/String;
            7   37     6      find  Ljdk/nashorn/internal/runtime/FindProperty;
           12   37     7     scope  Ljdk/nashorn/internal/runtime/ScriptObject;
           19   20     8  fallBack  Ljava/lang/String;
           21   22     8  fallBack  Ljava/lang/String;
           23   37     8  fallBack  Ljava/lang/String;
           16   37     9   firstOp  Ljdk/dynalink/Operation;
    MethodParameters:
         Name  Flags
      desc     final
      request  final

  protected jdk.nashorn.internal.runtime.FindProperty findProperty(java.lang.Object, boolean, boolean, jdk.nashorn.internal.runtime.ScriptObject);
    descriptor: (Ljava/lang/Object;ZZLjdk/nashorn/internal/runtime/ScriptObject;)Ljdk/nashorn/internal/runtime/FindProperty;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // jdk.nashorn.internal.runtime.WithObject this
        start local 1 // java.lang.Object key
        start local 2 // boolean deep
        start local 3 // boolean isScope
        start local 4 // jdk.nashorn.internal.runtime.ScriptObject start
         0: .line 178
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 1 /* key */
            iconst_1
            iconst_0
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.findProperty:(Ljava/lang/Object;ZZLjdk/nashorn/internal/runtime/ScriptObject;)Ljdk/nashorn/internal/runtime/FindProperty;
            astore 5 /* exprProperty */
        start local 5 // jdk.nashorn.internal.runtime.FindProperty exprProperty
         1: .line 179
            aload 5 /* exprProperty */
            ifnull 3
         2: .line 180
            aload 5 /* exprProperty */
            areturn
         3: .line 182
      StackMap locals: jdk.nashorn.internal.runtime.FindProperty
      StackMap stack:
            aload 0 /* this */
            aload 1 /* key */
            iload 2 /* deep */
            iload 3 /* isScope */
            aload 4 /* start */
            invokespecial jdk.nashorn.internal.runtime.Scope.findProperty:(Ljava/lang/Object;ZZLjdk/nashorn/internal/runtime/ScriptObject;)Ljdk/nashorn/internal/runtime/FindProperty;
            areturn
        end local 5 // jdk.nashorn.internal.runtime.FindProperty exprProperty
        end local 4 // jdk.nashorn.internal.runtime.ScriptObject start
        end local 3 // boolean isScope
        end local 2 // boolean deep
        end local 1 // java.lang.Object key
        end local 0 // jdk.nashorn.internal.runtime.WithObject this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Ljdk/nashorn/internal/runtime/WithObject;
            0    4     1           key  Ljava/lang/Object;
            0    4     2          deep  Z
            0    4     3       isScope  Z
            0    4     4         start  Ljdk/nashorn/internal/runtime/ScriptObject;
            1    4     5  exprProperty  Ljdk/nashorn/internal/runtime/FindProperty;
    MethodParameters:
         Name  Flags
      key      final
      deep     final
      isScope  final
      start    final

  protected java.lang.Object invokeNoSuchProperty(java.lang.Object, boolean, int);
    descriptor: (Ljava/lang/Object;ZI)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // jdk.nashorn.internal.runtime.WithObject this
        start local 1 // java.lang.Object key
        start local 2 // boolean isScope
        start local 3 // int programPoint
         0: .line 187
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            ldc "__noSuchProperty__"
            iconst_1
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.findProperty:(Ljava/lang/Object;Z)Ljdk/nashorn/internal/runtime/FindProperty;
            astore 4 /* find */
        start local 4 // jdk.nashorn.internal.runtime.FindProperty find
         1: .line 188
            aload 4 /* find */
            ifnull 9
         2: .line 189
            aload 4 /* find */
            invokevirtual jdk.nashorn.internal.runtime.FindProperty.getObjectValue:()Ljava/lang/Object;
            astore 5 /* func */
        start local 5 // java.lang.Object func
         3: .line 190
            aload 5 /* func */
            instanceof jdk.nashorn.internal.runtime.ScriptFunction
            ifeq 9
         4: .line 191
            aload 5 /* func */
            checkcast jdk.nashorn.internal.runtime.ScriptFunction
            astore 6 /* sfunc */
        start local 6 // jdk.nashorn.internal.runtime.ScriptFunction sfunc
         5: .line 192
            iload 2 /* isScope */
            ifeq 6
            aload 6 /* sfunc */
            invokevirtual jdk.nashorn.internal.runtime.ScriptFunction.isStrict:()Z
            ifeq 6
            getstatic jdk.nashorn.internal.runtime.ScriptRuntime.UNDEFINED:Ljdk/nashorn/internal/runtime/Undefined;
            goto 7
      StackMap locals: jdk.nashorn.internal.runtime.FindProperty java.lang.Object jdk.nashorn.internal.runtime.ScriptFunction
      StackMap stack:
         6: aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
      StackMap locals:
      StackMap stack: jdk.nashorn.internal.runtime.PropertyAccess
         7: astore 7 /* self */
        start local 7 // java.lang.Object self
         8: .line 193
            aload 6 /* sfunc */
            aload 7 /* self */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* key */
            aastore
            invokestatic jdk.nashorn.internal.runtime.ScriptRuntime.apply:(Ljdk/nashorn/internal/runtime/ScriptFunction;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 7 // java.lang.Object self
        end local 6 // jdk.nashorn.internal.runtime.ScriptFunction sfunc
        end local 5 // java.lang.Object func
         9: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.WithObject.getProto:()Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 1 /* key */
            iload 2 /* isScope */
            iload 3 /* programPoint */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.invokeNoSuchProperty:(Ljava/lang/Object;ZI)Ljava/lang/Object;
            areturn
        end local 4 // jdk.nashorn.internal.runtime.FindProperty find
        end local 3 // int programPoint
        end local 2 // boolean isScope
        end local 1 // java.lang.Object key
        end local 0 // jdk.nashorn.internal.runtime.WithObject this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Ljdk/nashorn/internal/runtime/WithObject;
            0   10     1           key  Ljava/lang/Object;
            0   10     2       isScope  Z
            0   10     3  programPoint  I
            1   10     4          find  Ljdk/nashorn/internal/runtime/FindProperty;
            3    9     5          func  Ljava/lang/Object;
            5    9     6         sfunc  Ljdk/nashorn/internal/runtime/ScriptFunction;
            8    9     7          self  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      key           final
      isScope       final
      programPoint  final

  public void setSplitState(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.WithObject this
        start local 1 // int state
         0: .line 202
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.WithObject.getNonWithParent:()Ljdk/nashorn/internal/runtime/ScriptObject;
            checkcast jdk.nashorn.internal.runtime.Scope
            iload 1 /* state */
            invokevirtual jdk.nashorn.internal.runtime.Scope.setSplitState:(I)V
         1: .line 203
            return
        end local 1 // int state
        end local 0 // jdk.nashorn.internal.runtime.WithObject this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljdk/nashorn/internal/runtime/WithObject;
            0    2     1  state  I
    MethodParameters:
       Name  Flags
      state  final

  public int getSplitState();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.WithObject this
         0: .line 207
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.WithObject.getNonWithParent:()Ljdk/nashorn/internal/runtime/ScriptObject;
            checkcast jdk.nashorn.internal.runtime.Scope
            invokevirtual jdk.nashorn.internal.runtime.Scope.getSplitState:()I
            ireturn
        end local 0 // jdk.nashorn.internal.runtime.WithObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/WithObject;

  public void addBoundProperties(jdk.nashorn.internal.runtime.ScriptObject, jdk.nashorn.internal.runtime.Property[]);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptObject;[Ljdk/nashorn/internal/runtime/Property;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.WithObject this
        start local 1 // jdk.nashorn.internal.runtime.ScriptObject source
        start local 2 // jdk.nashorn.internal.runtime.Property[] properties
         0: .line 213
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.WithObject.getNonWithParent:()Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 1 /* source */
            aload 2 /* properties */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.addBoundProperties:(Ljdk/nashorn/internal/runtime/ScriptObject;[Ljdk/nashorn/internal/runtime/Property;)V
         1: .line 214
            return
        end local 2 // jdk.nashorn.internal.runtime.Property[] properties
        end local 1 // jdk.nashorn.internal.runtime.ScriptObject source
        end local 0 // jdk.nashorn.internal.runtime.WithObject this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/nashorn/internal/runtime/WithObject;
            0    2     1      source  Ljdk/nashorn/internal/runtime/ScriptObject;
            0    2     2  properties  [Ljdk/nashorn/internal/runtime/Property;
    MethodParameters:
            Name  Flags
      source      final
      properties  final

  private jdk.nashorn.internal.runtime.ScriptObject getNonWithParent();
    descriptor: ()Ljdk/nashorn/internal/runtime/ScriptObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.WithObject this
         0: .line 220
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.WithObject.getProto:()Ljdk/nashorn/internal/runtime/ScriptObject;
            astore 1 /* proto */
        start local 1 // jdk.nashorn.internal.runtime.ScriptObject proto
         1: .line 222
            goto 3
         2: .line 223
      StackMap locals: jdk.nashorn.internal.runtime.ScriptObject
      StackMap stack:
            aload 1 /* proto */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.getProto:()Ljdk/nashorn/internal/runtime/ScriptObject;
            astore 1 /* proto */
         3: .line 222
      StackMap locals:
      StackMap stack:
            aload 1 /* proto */
            ifnull 4
            aload 1 /* proto */
            instanceof jdk.nashorn.internal.runtime.WithObject
            ifne 2
         4: .line 226
      StackMap locals:
      StackMap stack:
            aload 1 /* proto */
            areturn
        end local 1 // jdk.nashorn.internal.runtime.ScriptObject proto
        end local 0 // jdk.nashorn.internal.runtime.WithObject this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljdk/nashorn/internal/runtime/WithObject;
            1    5     1  proto  Ljdk/nashorn/internal/runtime/ScriptObject;

  private static jdk.dynalink.linker.GuardedInvocation fixReceiverType(jdk.dynalink.linker.GuardedInvocation, java.lang.invoke.MethodHandle);
    descriptor: (Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // jdk.dynalink.linker.GuardedInvocation link
        start local 1 // java.lang.invoke.MethodHandle filter
         0: .line 231
            aload 0 /* link */
            invokevirtual jdk.dynalink.linker.GuardedInvocation.getInvocation:()Ljava/lang/invoke/MethodHandle;
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 2 /* invType */
        start local 2 // java.lang.invoke.MethodType invType
         1: .line 232
            aload 2 /* invType */
            iconst_0
            aload 1 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 3 /* newInvType */
        start local 3 // java.lang.invoke.MethodType newInvType
         2: .line 233
            aload 0 /* link */
            aload 3 /* newInvType */
            invokevirtual jdk.dynalink.linker.GuardedInvocation.asType:(Ljava/lang/invoke/MethodType;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 3 // java.lang.invoke.MethodType newInvType
        end local 2 // java.lang.invoke.MethodType invType
        end local 1 // java.lang.invoke.MethodHandle filter
        end local 0 // jdk.dynalink.linker.GuardedInvocation link
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        link  Ljdk/dynalink/linker/GuardedInvocation;
            0    3     1      filter  Ljava/lang/invoke/MethodHandle;
            1    3     2     invType  Ljava/lang/invoke/MethodType;
            2    3     3  newInvType  Ljava/lang/invoke/MethodType;
    MethodParameters:
        Name  Flags
      link    final
      filter  final

  private static jdk.dynalink.linker.GuardedInvocation fixExpressionCallSite(jdk.dynalink.CallSiteDescriptor, jdk.dynalink.linker.GuardedInvocation);
    descriptor: (Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/GuardedInvocation;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // jdk.dynalink.CallSiteDescriptor desc
        start local 1 // jdk.dynalink.linker.GuardedInvocation link
         0: .line 239
            aload 0 /* desc */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.getBaseOperation:(Ljdk/dynalink/CallSiteDescriptor;)Ljdk/dynalink/Operation;
            getstatic jdk.dynalink.StandardOperation.GET:Ljdk/dynalink/StandardOperation;
            if_acmpne 1
            aload 0 /* desc */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.isMethodFirstOperation:(Ljdk/dynalink/CallSiteDescriptor;)Z
            ifne 2
         1: .line 240
      StackMap locals:
      StackMap stack:
            aload 1 /* link */
            getstatic jdk.nashorn.internal.runtime.WithObject.WITHEXPRESSIONFILTER:Ljava/lang/invoke/MethodHandle;
            invokestatic jdk.nashorn.internal.runtime.WithObject.fixReceiverType:(Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            iconst_0
            iconst_1
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            getstatic jdk.nashorn.internal.runtime.WithObject.WITHEXPRESSIONFILTER:Ljava/lang/invoke/MethodHandle;
            aastore
            invokevirtual jdk.dynalink.linker.GuardedInvocation.filterArguments:(I[Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
         2: .line 243
      StackMap locals:
      StackMap stack:
            aload 1 /* link */
            invokevirtual jdk.dynalink.linker.GuardedInvocation.getInvocation:()Ljava/lang/invoke/MethodHandle;
            astore 2 /* linkInvocation */
        start local 2 // java.lang.invoke.MethodHandle linkInvocation
         3: .line 244
            aload 2 /* linkInvocation */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* linkType */
        start local 3 // java.lang.invoke.MethodType linkType
         4: .line 245
            ldc Ljdk/nashorn/internal/runtime/ScriptFunction;
            aload 3 /* linkType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            istore 4 /* linkReturnsFunction */
        start local 4 // boolean linkReturnsFunction
         5: .line 247
            aload 1 /* link */
         6: .line 249
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
         7: .line 250
            iload 4 /* linkReturnsFunction */
            ifeq 9
         8: .line 251
            getstatic jdk.nashorn.internal.runtime.WithObject.BIND_TO_EXPRESSION_FN:Ljava/lang/invoke/MethodHandle;
            goto 10
         9: .line 252
      StackMap locals: jdk.dynalink.CallSiteDescriptor jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodType int
      StackMap stack: jdk.dynalink.linker.GuardedInvocation jdk.nashorn.internal.lookup.MethodHandleFunctionality
            getstatic jdk.nashorn.internal.runtime.WithObject.BIND_TO_EXPRESSION_OBJ:Ljava/lang/invoke/MethodHandle;
        10: .line 254
      StackMap locals: jdk.dynalink.CallSiteDescriptor jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodType int
      StackMap stack: jdk.dynalink.linker.GuardedInvocation jdk.nashorn.internal.lookup.MethodHandleFunctionality java.lang.invoke.MethodHandle
            aload 2 /* linkInvocation */
        11: .line 255
            aload 3 /* linkType */
        12: .line 256
            iload 4 /* linkReturnsFunction */
            ifeq 14
        13: .line 257
            ldc Ljdk/nashorn/internal/runtime/ScriptFunction;
            goto 15
        14: .line 258
      StackMap locals: jdk.dynalink.CallSiteDescriptor jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodType int
      StackMap stack: jdk.dynalink.linker.GuardedInvocation jdk.nashorn.internal.lookup.MethodHandleFunctionality java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodType
            ldc Ljava/lang/Object;
        15: .line 255
      StackMap locals: jdk.dynalink.CallSiteDescriptor jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodType int
      StackMap stack: jdk.dynalink.linker.GuardedInvocation jdk.nashorn.internal.lookup.MethodHandleFunctionality java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.Class
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
        16: .line 260
            iconst_0
        17: .line 261
            ldc Ljava/lang/Object;
        18: .line 259
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
        19: .line 254
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
        20: .line 262
            getstatic jdk.nashorn.internal.runtime.WithObject.WITHEXPRESSIONFILTER:Ljava/lang/invoke/MethodHandle;
        21: .line 253
            invokestatic jdk.nashorn.internal.runtime.WithObject.filterReceiver:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
        22: .line 249
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.foldArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
        23: .line 263
            aload 1 /* link */
            getstatic jdk.nashorn.internal.runtime.WithObject.WITHEXPRESSIONFILTER:Ljava/lang/invoke/MethodHandle;
            invokestatic jdk.nashorn.internal.runtime.WithObject.filterGuardReceiver:(Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
        24: .line 247
            invokevirtual jdk.dynalink.linker.GuardedInvocation.replaceMethods:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 4 // boolean linkReturnsFunction
        end local 3 // java.lang.invoke.MethodType linkType
        end local 2 // java.lang.invoke.MethodHandle linkInvocation
        end local 1 // jdk.dynalink.linker.GuardedInvocation link
        end local 0 // jdk.dynalink.CallSiteDescriptor desc
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   25     0                 desc  Ljdk/dynalink/CallSiteDescriptor;
            0   25     1                 link  Ljdk/dynalink/linker/GuardedInvocation;
            3   25     2       linkInvocation  Ljava/lang/invoke/MethodHandle;
            4   25     3             linkType  Ljava/lang/invoke/MethodType;
            5   25     4  linkReturnsFunction  Z
    MethodParameters:
      Name  Flags
      desc  final
      link  final

  private jdk.dynalink.linker.GuardedInvocation fixScopeCallSite(jdk.dynalink.linker.GuardedInvocation, java.lang.String, jdk.nashorn.internal.runtime.ScriptObject);
    descriptor: (Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/String;Ljdk/nashorn/internal/runtime/ScriptObject;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // jdk.nashorn.internal.runtime.WithObject this
        start local 1 // jdk.dynalink.linker.GuardedInvocation link
        start local 2 // java.lang.String name
        start local 3 // jdk.nashorn.internal.runtime.ScriptObject owner
         0: .line 269
            aload 1 /* link */
            getstatic jdk.nashorn.internal.runtime.WithObject.WITHSCOPEFILTER:Ljava/lang/invoke/MethodHandle;
            invokestatic jdk.nashorn.internal.runtime.WithObject.fixReceiverType:(Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            astore 4 /* newLink */
        start local 4 // jdk.dynalink.linker.GuardedInvocation newLink
         1: .line 270
            aload 0 /* this */
            aload 2 /* name */
            aload 3 /* owner */
            invokevirtual jdk.nashorn.internal.runtime.WithObject.expressionGuard:(Ljava/lang/String;Ljdk/nashorn/internal/runtime/ScriptObject;)Ljava/lang/invoke/MethodHandle;
            astore 5 /* expressionGuard */
        start local 5 // java.lang.invoke.MethodHandle expressionGuard
         2: .line 271
            aload 4 /* newLink */
            getstatic jdk.nashorn.internal.runtime.WithObject.WITHSCOPEFILTER:Ljava/lang/invoke/MethodHandle;
            invokestatic jdk.nashorn.internal.runtime.WithObject.filterGuardReceiver:(Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* filteredGuard */
        start local 6 // java.lang.invoke.MethodHandle filteredGuard
         3: .line 272
            aload 1 /* link */
         4: .line 274
            aload 4 /* newLink */
            invokevirtual jdk.dynalink.linker.GuardedInvocation.getInvocation:()Ljava/lang/invoke/MethodHandle;
         5: .line 275
            getstatic jdk.nashorn.internal.runtime.WithObject.WITHSCOPEFILTER:Ljava/lang/invoke/MethodHandle;
         6: .line 273
            invokestatic jdk.nashorn.internal.runtime.WithObject.filterReceiver:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
         7: .line 277
            aload 5 /* expressionGuard */
         8: .line 278
            aload 6 /* filteredGuard */
         9: .line 276
            invokestatic jdk.nashorn.internal.runtime.linker.NashornGuards.combineGuards:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
        10: .line 272
            invokevirtual jdk.dynalink.linker.GuardedInvocation.replaceMethods:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 6 // java.lang.invoke.MethodHandle filteredGuard
        end local 5 // java.lang.invoke.MethodHandle expressionGuard
        end local 4 // jdk.dynalink.linker.GuardedInvocation newLink
        end local 3 // jdk.nashorn.internal.runtime.ScriptObject owner
        end local 2 // java.lang.String name
        end local 1 // jdk.dynalink.linker.GuardedInvocation link
        end local 0 // jdk.nashorn.internal.runtime.WithObject this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Ljdk/nashorn/internal/runtime/WithObject;
            0   11     1             link  Ljdk/dynalink/linker/GuardedInvocation;
            0   11     2             name  Ljava/lang/String;
            0   11     3            owner  Ljdk/nashorn/internal/runtime/ScriptObject;
            1   11     4          newLink  Ljdk/dynalink/linker/GuardedInvocation;
            2   11     5  expressionGuard  Ljava/lang/invoke/MethodHandle;
            3   11     6    filteredGuard  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      link   final
      name   final
      owner  final

  private static java.lang.invoke.MethodHandle filterGuardReceiver(jdk.dynalink.linker.GuardedInvocation, java.lang.invoke.MethodHandle);
    descriptor: (Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // jdk.dynalink.linker.GuardedInvocation link
        start local 1 // java.lang.invoke.MethodHandle receiverFilter
         0: .line 282
            aload 0 /* link */
            invokevirtual jdk.dynalink.linker.GuardedInvocation.getGuard:()Ljava/lang/invoke/MethodHandle;
            astore 2 /* test */
        start local 2 // java.lang.invoke.MethodHandle test
         1: .line 283
            aload 2 /* test */
            ifnonnull 3
         2: .line 284
            aconst_null
            areturn
         3: .line 287
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            aload 2 /* test */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 3 /* receiverType */
        start local 3 // java.lang.Class receiverType
         4: .line 288
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 1 /* receiverFilter */
         5: .line 289
            aload 1 /* receiverFilter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            aload 3 /* receiverType */
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
         6: .line 290
            aload 3 /* receiverType */
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
         7: .line 288
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* filter */
        start local 4 // java.lang.invoke.MethodHandle filter
         8: .line 292
            aload 2 /* test */
            aload 4 /* filter */
            invokestatic jdk.nashorn.internal.runtime.WithObject.filterReceiver:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MethodHandle filter
        end local 3 // java.lang.Class receiverType
        end local 2 // java.lang.invoke.MethodHandle test
        end local 1 // java.lang.invoke.MethodHandle receiverFilter
        end local 0 // jdk.dynalink.linker.GuardedInvocation link
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            link  Ljdk/dynalink/linker/GuardedInvocation;
            0    9     1  receiverFilter  Ljava/lang/invoke/MethodHandle;
            1    9     2            test  Ljava/lang/invoke/MethodHandle;
            4    9     3    receiverType  Ljava/lang/Class<*>;
            8    9     4          filter  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
                Name  Flags
      link            final
      receiverFilter  final

  private static java.lang.invoke.MethodHandle filterReceiver(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandle mh
        start local 1 // java.lang.invoke.MethodHandle receiverFilter
         0: .line 297
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 0 /* mh */
            iconst_0
            iconst_1
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 1 /* receiverFilter */
            aload 1 /* receiverFilter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 0 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)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;
            areturn
        end local 1 // java.lang.invoke.MethodHandle receiverFilter
        end local 0 // java.lang.invoke.MethodHandle mh
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0              mh  Ljava/lang/invoke/MethodHandle;
            0    1     1  receiverFilter  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
                Name  Flags
      mh              final
      receiverFilter  final

  public static java.lang.Object withFilterExpression(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object receiver
         0: .line 306
            aload 0 /* receiver */
            checkcast jdk.nashorn.internal.runtime.WithObject
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            areturn
        end local 0 // java.lang.Object receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      receiver  final

  private static java.lang.Object bindToExpression(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.Object fn
        start local 1 // java.lang.Object receiver
         0: .line 311
            aload 0 /* fn */
            instanceof jdk.nashorn.internal.runtime.ScriptFunction
            ifeq 2
         1: .line 312
            aload 0 /* fn */
            checkcast jdk.nashorn.internal.runtime.ScriptFunction
            aload 1 /* receiver */
            invokestatic jdk.nashorn.internal.runtime.WithObject.bindToExpression:(Ljdk/nashorn/internal/runtime/ScriptFunction;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         2: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* fn */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 6
         3: .line 314
            aload 0 /* fn */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            astore 2 /* mirror */
        start local 2 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
         4: .line 315
            aload 2 /* mirror */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.isFunction:()Z
            ifeq 6
         5: .line 318
            new jdk.nashorn.internal.runtime.WithObject$1
            dup
            aload 2 /* mirror */
            aload 1 /* receiver */
            invokespecial jdk.nashorn.internal.runtime.WithObject$1.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/Object;)V
            areturn
        end local 2 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
         6: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* fn */
            areturn
        end local 1 // java.lang.Object receiver
        end local 0 // java.lang.Object fn
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0        fn  Ljava/lang/Object;
            0    7     1  receiver  Ljava/lang/Object;
            4    6     2    mirror  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    MethodParameters:
          Name  Flags
      fn        final
      receiver  final

  private static java.lang.Object bindToExpression(jdk.nashorn.internal.runtime.ScriptFunction, java.lang.Object);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptFunction;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.ScriptFunction fn
        start local 1 // java.lang.Object receiver
         0: .line 331
            aload 0 /* fn */
            aload 1 /* receiver */
            invokestatic jdk.nashorn.internal.runtime.WithObject.withFilterExpression:(Ljava/lang/Object;)Ljava/lang/Object;
            getstatic jdk.nashorn.internal.runtime.ScriptRuntime.EMPTY_ARRAY:[Ljava/lang/Object;
            invokevirtual jdk.nashorn.internal.runtime.ScriptFunction.createBound:(Ljava/lang/Object;[Ljava/lang/Object;)Ljdk/nashorn/internal/runtime/ScriptFunction;
            areturn
        end local 1 // java.lang.Object receiver
        end local 0 // jdk.nashorn.internal.runtime.ScriptFunction fn
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0        fn  Ljdk/nashorn/internal/runtime/ScriptFunction;
            0    1     1  receiver  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      fn        final
      receiver  final

  private java.lang.invoke.MethodHandle expressionGuard(java.lang.String, jdk.nashorn.internal.runtime.ScriptObject);
    descriptor: (Ljava/lang/String;Ljdk/nashorn/internal/runtime/ScriptObject;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.WithObject this
        start local 1 // java.lang.String name
        start local 2 // jdk.nashorn.internal.runtime.ScriptObject owner
         0: .line 335
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.getMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            astore 3 /* map */
        start local 3 // jdk.nashorn.internal.runtime.PropertyMap map
         1: .line 336
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 1 /* name */
            aload 2 /* owner */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.getProtoSwitchPoints:(Ljava/lang/String;Ljdk/nashorn/internal/runtime/ScriptObject;)[Ljava/lang/invoke/SwitchPoint;
            astore 4 /* sp */
        start local 4 // java.lang.invoke.SwitchPoint[] sp
         2: .line 337
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            getstatic jdk.nashorn.internal.runtime.WithObject.WITHEXPRESSIONGUARD:Ljava/lang/invoke/MethodHandle;
            iconst_1
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* map */
            aastore
            dup
            iconst_1
            aload 4 /* sp */
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.SwitchPoint[] sp
        end local 3 // jdk.nashorn.internal.runtime.PropertyMap map
        end local 2 // jdk.nashorn.internal.runtime.ScriptObject owner
        end local 1 // java.lang.String name
        end local 0 // jdk.nashorn.internal.runtime.WithObject this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljdk/nashorn/internal/runtime/WithObject;
            0    3     1   name  Ljava/lang/String;
            0    3     2  owner  Ljdk/nashorn/internal/runtime/ScriptObject;
            1    3     3    map  Ljdk/nashorn/internal/runtime/PropertyMap;
            2    3     4     sp  [Ljava/lang/invoke/SwitchPoint;
    MethodParameters:
       Name  Flags
      name   final
      owner  final

  private static boolean withExpressionGuard(java.lang.Object, jdk.nashorn.internal.runtime.PropertyMap, java.lang.invoke.SwitchPoint[]);
    descriptor: (Ljava/lang/Object;Ljdk/nashorn/internal/runtime/PropertyMap;[Ljava/lang/invoke/SwitchPoint;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.Object receiver
        start local 1 // jdk.nashorn.internal.runtime.PropertyMap map
        start local 2 // java.lang.invoke.SwitchPoint[] sp
         0: .line 342
            aload 0 /* receiver */
            checkcast jdk.nashorn.internal.runtime.WithObject
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.getMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            aload 1 /* map */
            if_acmpne 1
            aload 2 /* sp */
            invokestatic jdk.nashorn.internal.runtime.WithObject.hasBeenInvalidated:([Ljava/lang/invoke/SwitchPoint;)Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // java.lang.invoke.SwitchPoint[] sp
        end local 1 // jdk.nashorn.internal.runtime.PropertyMap map
        end local 0 // java.lang.Object receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  receiver  Ljava/lang/Object;
            0    2     1       map  Ljdk/nashorn/internal/runtime/PropertyMap;
            0    2     2        sp  [Ljava/lang/invoke/SwitchPoint;
    MethodParameters:
          Name  Flags
      receiver  final
      map       final
      sp        final

  private static boolean hasBeenInvalidated(java.lang.invoke.SwitchPoint[]);
    descriptor: ([Ljava/lang/invoke/SwitchPoint;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // java.lang.invoke.SwitchPoint[] switchPoints
         0: .line 346
            aload 0 /* switchPoints */
            ifnull 7
         1: .line 347
            aload 0 /* switchPoints */
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 6
      StackMap locals: java.lang.invoke.SwitchPoint[] top int int java.lang.invoke.SwitchPoint[]
      StackMap stack:
         2: aload 4
            iload 2
            aaload
            astore 1 /* switchPoint */
        start local 1 // java.lang.invoke.SwitchPoint switchPoint
         3: .line 348
            aload 1 /* switchPoint */
            invokevirtual java.lang.invoke.SwitchPoint.hasBeenInvalidated:()Z
            ifeq 5
         4: .line 349
            iconst_1
            ireturn
        end local 1 // java.lang.invoke.SwitchPoint switchPoint
         5: .line 347
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         6: iload 2
            iload 3
            if_icmplt 2
         7: .line 353
      StackMap locals: java.lang.invoke.SwitchPoint[]
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.lang.invoke.SwitchPoint[] switchPoints
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0  switchPoints  [Ljava/lang/invoke/SwitchPoint;
            3    5     1   switchPoint  Ljava/lang/invoke/SwitchPoint;
    MethodParameters:
              Name  Flags
      switchPoints  final

  public static java.lang.Object withFilterScope(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object receiver
         0: .line 362
            aload 0 /* receiver */
            checkcast jdk.nashorn.internal.runtime.WithObject
            invokevirtual jdk.nashorn.internal.runtime.WithObject.getProto:()Ljdk/nashorn/internal/runtime/ScriptObject;
            areturn
        end local 0 // java.lang.Object receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      receiver  final

  public jdk.nashorn.internal.runtime.ScriptObject getExpression();
    descriptor: ()Ljdk/nashorn/internal/runtime/ScriptObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.WithObject this
         0: .line 370
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.WithObject.expression:Ljdk/nashorn/internal/runtime/ScriptObject;
            areturn
        end local 0 // jdk.nashorn.internal.runtime.WithObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/WithObject;

  private static java.lang.invoke.MethodHandle findOwnMH(java.lang.String, java.lang.Class<?>, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // java.lang.String name
        start local 1 // java.lang.Class rtype
        start local 2 // java.lang.Class[] types
         0: .line 374
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc Ljdk/nashorn/internal/runtime/WithObject;
            aload 0 /* name */
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 1 /* rtype */
            aload 2 /* types */
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.type:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.findStatic:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.Class[] types
        end local 1 // java.lang.Class rtype
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   name  Ljava/lang/String;
            0    1     1  rtype  Ljava/lang/Class<*>;
            0    1     2  types  [Ljava/lang/Class;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;[Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      name   final
      rtype  final
      types  final
}
SourceFile: "WithObject.java"
NestMembers:
  jdk.nashorn.internal.runtime.WithObject$1
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  jdk.nashorn.internal.runtime.WithObject$1