public final class jdk.nashorn.api.scripting.ScriptObjectMirror extends jdk.nashorn.api.scripting.AbstractJSObject implements javax.script.Bindings
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.api.scripting.ScriptObjectMirror
  super_class: jdk.nashorn.api.scripting.AbstractJSObject
{
  private static final java.security.AccessControlContext GET_CONTEXT_ACC_CTXT;
    descriptor: Ljava/security/AccessControlContext;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  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.objects.Global global;
    descriptor: Ljdk/nashorn/internal/objects/Global;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean strict;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean jsonCompatible;
    descriptor: Z
    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 63
            ldc Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            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.api.scripting.ScriptObjectMirror.$assertionsDisabled:Z
         3: .line 70
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.getContextAccCtxt:()Ljava/security/AccessControlContext;
            putstatic jdk.nashorn.api.scripting.ScriptObjectMirror.GET_CONTEXT_ACC_CTXT:Ljava/security/AccessControlContext;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.security.AccessControlContext getContextAccCtxt();
    descriptor: ()Ljava/security/AccessControlContext;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=1, args_size=0
         0: .line 65
            new java.security.Permissions
            dup
            invokespecial java.security.Permissions.<init>:()V
            astore 0 /* perms */
        start local 0 // java.security.Permissions perms
         1: .line 66
            aload 0 /* perms */
            new java.lang.RuntimePermission
            dup
            ldc "nashorn.getContext"
            invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
            invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
         2: .line 67
            new java.security.AccessControlContext
            dup
            iconst_1
            anewarray java.security.ProtectionDomain
            dup
            iconst_0
            new java.security.ProtectionDomain
            dup
            aconst_null
            aload 0 /* perms */
            invokespecial java.security.ProtectionDomain.<init>:(Ljava/security/CodeSource;Ljava/security/PermissionCollection;)V
            aastore
            invokespecial java.security.AccessControlContext.<init>:([Ljava/security/ProtectionDomain;)V
            areturn
        end local 0 // java.security.Permissions perms
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    3     0  perms  Ljava/security/Permissions;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object other
         0: .line 79
            aload 1 /* other */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 2
         1: .line 80
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 1 /* other */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
         2: .line 83
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object other
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    3     1  other  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      other  final

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 88
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            invokevirtual java.lang.Object.hashCode:()I
            ireturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 93
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$1
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$1.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public java.lang.Object call(java.lang.Object, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object thiz
        start local 2 // java.lang.Object[] args
         0: .line 105
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 3 /* oldGlobal */
        start local 3 // jdk.nashorn.internal.objects.Global oldGlobal
         1: .line 106
            aload 3 /* oldGlobal */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            if_acmpeq 2
            iconst_1
            goto 3
      StackMap locals: jdk.nashorn.internal.objects.Global
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* globalChanged */
        start local 4 // boolean globalChanged
         4: .line 109
            iload 4 /* globalChanged */
            ifeq 6
         5: .line 110
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         6: .line 113
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            instanceof jdk.nashorn.internal.runtime.ScriptFunction
            ifeq 17
         7: .line 114
            iload 4 /* globalChanged */
            ifeq 8
            aload 0 /* this */
            aload 2 /* args */
            aload 3 /* oldGlobal */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.wrapArrayLikeMe:([Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 2 /* args */
      StackMap locals:
      StackMap stack: java.lang.Object[]
         9: astore 5 /* modArgs */
        start local 5 // java.lang.Object[] modArgs
        10: .line 115
            iload 4 /* globalChanged */
            ifeq 11
            aload 0 /* this */
            aload 1 /* thiz */
            aload 3 /* oldGlobal */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.wrapLikeMe:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            goto 12
      StackMap locals: java.lang.Object[]
      StackMap stack:
        11: aload 1 /* thiz */
      StackMap locals:
      StackMap stack: java.lang.Object
        12: astore 6 /* self */
        start local 6 // java.lang.Object self
        13: .line 116
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            checkcast jdk.nashorn.internal.runtime.ScriptFunction
            aload 6 /* self */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.unwrap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            aload 5 /* modArgs */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.unwrapArray:([Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
            invokestatic jdk.nashorn.internal.runtime.ScriptRuntime.apply:(Ljdk/nashorn/internal/runtime/ScriptFunction;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.wrapLikeMe:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8
        14: .line 127
            iload 4 /* globalChanged */
            ifeq 16
        15: .line 128
            aload 3 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        16: .line 116
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.lang.Object java.lang.Object[] jdk.nashorn.internal.objects.Global int java.lang.Object[] java.lang.Object top java.lang.Object
      StackMap stack:
            aload 8
            areturn
        end local 6 // java.lang.Object self
        end local 5 // java.lang.Object[] modArgs
        17: .line 119
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.lang.Object java.lang.Object[] jdk.nashorn.internal.objects.Global int
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "not a function: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 120
      StackMap locals:
      StackMap stack: jdk.nashorn.api.scripting.NashornException
            astore 5 /* ne */
        start local 5 // jdk.nashorn.api.scripting.NashornException ne
        19: .line 121
            aload 5 /* ne */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokevirtual jdk.nashorn.api.scripting.NashornException.initEcmaError:(Ljdk/nashorn/internal/runtime/ScriptObject;)Ljdk/nashorn/api/scripting/NashornException;
            athrow
        end local 5 // jdk.nashorn.api.scripting.NashornException ne
        20: .line 122
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* e */
        start local 5 // java.lang.Throwable e
        21: .line 123
            aload 5 /* e */
            athrow
        end local 5 // java.lang.Throwable e
        22: .line 124
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
        23: .line 125
            new java.lang.RuntimeException
            dup
            aload 5 /* t */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Throwable t
        24: .line 126
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        25: .line 127
            iload 4 /* globalChanged */
            ifeq 27
        26: .line 128
            aload 3 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        27: .line 130
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.lang.Object java.lang.Object[] jdk.nashorn.internal.objects.Global int top top java.lang.Throwable
      StackMap stack:
            aload 7
            athrow
        end local 4 // boolean globalChanged
        end local 3 // jdk.nashorn.internal.objects.Global oldGlobal
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.Object thiz
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   28     0           this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0   28     1           thiz  Ljava/lang/Object;
            0   28     2           args  [Ljava/lang/Object;
            1   28     3      oldGlobal  Ljdk/nashorn/internal/objects/Global;
            4   28     4  globalChanged  Z
           10   17     5        modArgs  [Ljava/lang/Object;
           13   17     6           self  Ljava/lang/Object;
           19   20     5             ne  Ljdk/nashorn/api/scripting/NashornException;
           21   22     5              e  Ljava/lang/Throwable;
           23   24     5              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4    14      18  Class jdk.nashorn.api.scripting.NashornException
          17    18      18  Class jdk.nashorn.api.scripting.NashornException
           4    14      20  Class java.lang.RuntimeException
          17    18      20  Class java.lang.RuntimeException
           4    14      20  Class java.lang.Error
          17    18      20  Class java.lang.Error
           4    14      22  Class java.lang.Throwable
          17    18      22  Class java.lang.Throwable
           4    14      24  any
          17    24      24  any
    MethodParameters:
      Name  Flags
      thiz  final
      args  final

  public java.lang.Object newObject(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object[] args
         0: .line 135
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 2 /* oldGlobal */
        start local 2 // jdk.nashorn.internal.objects.Global oldGlobal
         1: .line 136
            aload 2 /* oldGlobal */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            if_acmpeq 2
            iconst_1
            goto 3
      StackMap locals: jdk.nashorn.internal.objects.Global
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* globalChanged */
        start local 3 // boolean globalChanged
         4: .line 139
            iload 3 /* globalChanged */
            ifeq 6
         5: .line 140
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         6: .line 143
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            instanceof jdk.nashorn.internal.runtime.ScriptFunction
            ifeq 14
         7: .line 144
            iload 3 /* globalChanged */
            ifeq 8
            aload 0 /* this */
            aload 1 /* args */
            aload 2 /* oldGlobal */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.wrapArrayLikeMe:([Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 1 /* args */
      StackMap locals:
      StackMap stack: java.lang.Object[]
         9: astore 4 /* modArgs */
        start local 4 // java.lang.Object[] modArgs
        10: .line 145
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            checkcast jdk.nashorn.internal.runtime.ScriptFunction
            aload 4 /* modArgs */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.unwrapArray:([Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
            invokestatic jdk.nashorn.internal.runtime.ScriptRuntime.construct:(Ljdk/nashorn/internal/runtime/ScriptFunction;[Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.wrapLikeMe:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 6
        11: .line 156
            iload 3 /* globalChanged */
            ifeq 13
        12: .line 157
            aload 2 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        13: .line 145
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.lang.Object[] jdk.nashorn.internal.objects.Global int java.lang.Object[] top java.lang.Object
      StackMap stack:
            aload 6
            areturn
        end local 4 // java.lang.Object[] modArgs
        14: .line 148
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.lang.Object[] jdk.nashorn.internal.objects.Global int
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "not a constructor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 149
      StackMap locals:
      StackMap stack: jdk.nashorn.api.scripting.NashornException
            astore 4 /* ne */
        start local 4 // jdk.nashorn.api.scripting.NashornException ne
        16: .line 150
            aload 4 /* ne */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokevirtual jdk.nashorn.api.scripting.NashornException.initEcmaError:(Ljdk/nashorn/internal/runtime/ScriptObject;)Ljdk/nashorn/api/scripting/NashornException;
            athrow
        end local 4 // jdk.nashorn.api.scripting.NashornException ne
        17: .line 151
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4 /* e */
        start local 4 // java.lang.Throwable e
        18: .line 152
            aload 4 /* e */
            athrow
        end local 4 // java.lang.Throwable e
        19: .line 153
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4 /* t */
        start local 4 // java.lang.Throwable t
        20: .line 154
            new java.lang.RuntimeException
            dup
            aload 4 /* t */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Throwable t
        21: .line 155
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        22: .line 156
            iload 3 /* globalChanged */
            ifeq 24
        23: .line 157
            aload 2 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        24: .line 159
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.lang.Object[] jdk.nashorn.internal.objects.Global int top java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        end local 3 // boolean globalChanged
        end local 2 // jdk.nashorn.internal.objects.Global oldGlobal
        end local 1 // java.lang.Object[] args
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   25     0           this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0   25     1           args  [Ljava/lang/Object;
            1   25     2      oldGlobal  Ljdk/nashorn/internal/objects/Global;
            4   25     3  globalChanged  Z
           10   14     4        modArgs  [Ljava/lang/Object;
           16   17     4             ne  Ljdk/nashorn/api/scripting/NashornException;
           18   19     4              e  Ljava/lang/Throwable;
           20   21     4              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4    11      15  Class jdk.nashorn.api.scripting.NashornException
          14    15      15  Class jdk.nashorn.api.scripting.NashornException
           4    11      17  Class java.lang.RuntimeException
          14    15      17  Class java.lang.RuntimeException
           4    11      17  Class java.lang.Error
          14    15      17  Class java.lang.Error
           4    11      19  Class java.lang.Throwable
          14    15      19  Class java.lang.Throwable
           4    11      21  any
          14    21      21  any
    MethodParameters:
      Name  Flags
      args  final

  public java.lang.Object eval(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.String s
         0: .line 164
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$2
            dup
            aload 0 /* this */
            aload 1 /* s */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$2.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/String;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String s
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    1     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     final

  public java.lang.Object callMember(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.String functionName
        start local 2 // java.lang.Object[] args
         0: .line 186
            aload 1 /* functionName */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 187
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 3 /* oldGlobal */
        start local 3 // jdk.nashorn.internal.objects.Global oldGlobal
         2: .line 188
            aload 3 /* oldGlobal */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            if_acmpeq 3
            iconst_1
            goto 4
      StackMap locals: jdk.nashorn.internal.objects.Global
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* globalChanged */
        start local 4 // boolean globalChanged
         5: .line 191
            iload 4 /* globalChanged */
            ifeq 7
         6: .line 192
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         7: .line 195
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 1 /* functionName */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* val */
        start local 5 // java.lang.Object val
         8: .line 196
            aload 5 /* val */
            instanceof jdk.nashorn.internal.runtime.ScriptFunction
            ifeq 16
         9: .line 197
            iload 4 /* globalChanged */
            ifeq 10
            aload 0 /* this */
            aload 2 /* args */
            aload 3 /* oldGlobal */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.wrapArrayLikeMe:([Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
            goto 11
      StackMap locals: java.lang.Object
      StackMap stack:
        10: aload 2 /* args */
      StackMap locals:
      StackMap stack: java.lang.Object[]
        11: astore 6 /* modArgs */
        start local 6 // java.lang.Object[] modArgs
        12: .line 198
            aload 0 /* this */
            aload 5 /* val */
            checkcast jdk.nashorn.internal.runtime.ScriptFunction
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 6 /* modArgs */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.unwrapArray:([Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
            invokestatic jdk.nashorn.internal.runtime.ScriptRuntime.apply:(Ljdk/nashorn/internal/runtime/ScriptFunction;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.wrapLikeMe:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8
        13: .line 211
            iload 4 /* globalChanged */
            ifeq 15
        14: .line 212
            aload 3 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        15: .line 198
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.lang.String java.lang.Object[] jdk.nashorn.internal.objects.Global int java.lang.Object java.lang.Object[] top java.lang.Object
      StackMap stack:
            aload 8
            areturn
        end local 6 // java.lang.Object[] modArgs
        16: .line 199
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.lang.String java.lang.Object[] jdk.nashorn.internal.objects.Global int java.lang.Object
      StackMap stack:
            aload 5 /* val */
            instanceof jdk.nashorn.api.scripting.JSObject
            ifeq 21
            aload 5 /* val */
            checkcast jdk.nashorn.api.scripting.JSObject
            invokeinterface jdk.nashorn.api.scripting.JSObject.isFunction:()Z
            ifeq 21
        17: .line 200
            aload 5 /* val */
            checkcast jdk.nashorn.api.scripting.JSObject
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 2 /* args */
            invokeinterface jdk.nashorn.api.scripting.JSObject.call:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 8
        18: .line 211
            iload 4 /* globalChanged */
            ifeq 20
        19: .line 212
            aload 3 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        20: .line 200
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.lang.String java.lang.Object[] jdk.nashorn.internal.objects.Global int java.lang.Object top top java.lang.Object
      StackMap stack:
            aload 8
            areturn
        21: .line 203
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.lang.String java.lang.Object[] jdk.nashorn.internal.objects.Global int java.lang.Object
      StackMap stack:
            new java.lang.NoSuchMethodException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No such function "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* functionName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.Object val
        22: .line 204
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.lang.String java.lang.Object[] jdk.nashorn.internal.objects.Global int
      StackMap stack: jdk.nashorn.api.scripting.NashornException
            astore 5 /* ne */
        start local 5 // jdk.nashorn.api.scripting.NashornException ne
        23: .line 205
            aload 5 /* ne */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokevirtual jdk.nashorn.api.scripting.NashornException.initEcmaError:(Ljdk/nashorn/internal/runtime/ScriptObject;)Ljdk/nashorn/api/scripting/NashornException;
            athrow
        end local 5 // jdk.nashorn.api.scripting.NashornException ne
        24: .line 206
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* e */
        start local 5 // java.lang.Throwable e
        25: .line 207
            aload 5 /* e */
            athrow
        end local 5 // java.lang.Throwable e
        26: .line 208
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
        27: .line 209
            new java.lang.RuntimeException
            dup
            aload 5 /* t */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Throwable t
        28: .line 210
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        29: .line 211
            iload 4 /* globalChanged */
            ifeq 31
        30: .line 212
            aload 3 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        31: .line 214
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.lang.String java.lang.Object[] jdk.nashorn.internal.objects.Global int top top java.lang.Throwable
      StackMap stack:
            aload 7
            athrow
        end local 4 // boolean globalChanged
        end local 3 // jdk.nashorn.internal.objects.Global oldGlobal
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String functionName
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   32     0           this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0   32     1   functionName  Ljava/lang/String;
            0   32     2           args  [Ljava/lang/Object;
            2   32     3      oldGlobal  Ljdk/nashorn/internal/objects/Global;
            5   32     4  globalChanged  Z
            8   22     5            val  Ljava/lang/Object;
           12   16     6        modArgs  [Ljava/lang/Object;
           23   24     5             ne  Ljdk/nashorn/api/scripting/NashornException;
           25   26     5              e  Ljava/lang/Throwable;
           27   28     5              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           5    13      22  Class jdk.nashorn.api.scripting.NashornException
          16    18      22  Class jdk.nashorn.api.scripting.NashornException
          21    22      22  Class jdk.nashorn.api.scripting.NashornException
           5    13      24  Class java.lang.RuntimeException
          16    18      24  Class java.lang.RuntimeException
          21    22      24  Class java.lang.RuntimeException
           5    13      24  Class java.lang.Error
          16    18      24  Class java.lang.Error
          21    22      24  Class java.lang.Error
           5    13      26  Class java.lang.Throwable
          16    18      26  Class java.lang.Throwable
          21    22      26  Class java.lang.Throwable
           5    13      28  any
          16    18      28  any
          21    28      28  any
    MethodParameters:
              Name  Flags
      functionName  final
      args          final

  public java.lang.Object getMember(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.String name
         0: .line 219
            aload 1 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 220
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$3
            dup
            aload 0 /* this */
            aload 1 /* name */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$3.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/String;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String name
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  public java.lang.Object getSlot(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // int index
         0: .line 229
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$4
            dup
            aload 0 /* this */
            iload 1 /* index */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$4.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;I)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            areturn
        end local 1 // int index
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  final

  public boolean hasMember(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.String name
         0: .line 238
            aload 1 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 239
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$5
            dup
            aload 0 /* this */
            aload 1 /* name */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$5.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/String;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  public boolean hasSlot(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // int slot
         0: .line 248
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$6
            dup
            aload 0 /* this */
            iload 1 /* slot */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$6.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;I)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 1 // int slot
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    1     1  slot  I
    MethodParameters:
      Name  Flags
      slot  final

  public void removeMember(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.String name
         0: .line 257
            aload 0 /* this */
            aload 1 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 258
            return
        end local 1 // java.lang.String name
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  public void setMember(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Object value
         0: .line 262
            aload 0 /* this */
            aload 1 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            aload 2 /* value */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 263
            return
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String name
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    2     1   name  Ljava/lang/String;
            0    2     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      name   final
      value  final

  public void setSlot(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // int index
        start local 2 // java.lang.Object value
         0: .line 267
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$7
            dup
            aload 0 /* this */
            iload 1 /* index */
            aload 2 /* value */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$7.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;ILjava/lang/Object;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            pop
         1: .line 273
            return
        end local 2 // java.lang.Object value
        end local 1 // int index
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    2     1  index  I
            0    2     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      index  final
      value  final

  public void setIndexedPropertiesToExternalArrayData(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.nio.ByteBuffer buf
         0: .line 282
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$8
            dup
            aload 0 /* this */
            aload 1 /* buf */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$8.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/nio/ByteBuffer;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            pop
         1: .line 288
            return
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    2     1   buf  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      buf   final

  public boolean isInstance(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object instance
         0: .line 292
            aload 1 /* instance */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifne 2
         1: .line 293
            iconst_0
            ireturn
         2: .line 296
      StackMap locals:
      StackMap stack:
            aload 1 /* instance */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            astore 2 /* mirror */
        start local 2 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
         3: .line 298
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            aload 2 /* mirror */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            if_acmpeq 5
         4: .line 299
            iconst_0
            ireturn
         5: .line 302
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror
      StackMap stack:
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$9
            dup
            aload 0 /* this */
            aload 2 /* mirror */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$9.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 2 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
        end local 1 // java.lang.Object instance
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    6     1  instance  Ljava/lang/Object;
            3    6     2    mirror  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    MethodParameters:
          Name  Flags
      instance  final

  public java.lang.String getClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 311
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.getClassName:()Ljava/lang/String;
            areturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public boolean isFunction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 316
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            instanceof jdk.nashorn.internal.runtime.ScriptFunction
            ireturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public boolean isStrictFunction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 321
            aload 0 /* this */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.isFunction:()Z
            ifeq 1
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            checkcast jdk.nashorn.internal.runtime.ScriptFunction
            invokevirtual jdk.nashorn.internal.runtime.ScriptFunction.isStrict:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public boolean isArray();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 326
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.isArray:()Z
            ireturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 333
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$10
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$10.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            pop
         1: .line 339
            return
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public boolean containsKey(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object key
         0: .line 343
            aload 1 /* key */
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.checkKey:(Ljava/lang/Object;)V
         1: .line 344
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$11
            dup
            aload 0 /* this */
            aload 1 /* key */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$11.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/Object;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 1 // java.lang.Object key
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    2     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public boolean containsValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object value
         0: .line 353
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$12
            dup
            aload 0 /* this */
            aload 1 /* value */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$12.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/Object;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 1 // java.lang.Object value
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  final

  public java.util.Set<java.util.Map$Entry<java.lang.String, java.lang.Object>> entrySet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 362
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$13
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$13.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.util.Set
            areturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    Signature: ()Ljava/util/Set<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;>;

  public java.lang.Object get(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object key
         0: .line 380
            aload 1 /* key */
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.checkKey:(Ljava/lang/Object;)V
         1: .line 381
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$14
            dup
            aload 0 /* this */
            aload 1 /* key */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$14.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/Object;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object key
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    2     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 390
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$15
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$15.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public java.util.Set<java.lang.String> keySet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 399
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$16
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$16.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.util.Set
            areturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public java.lang.Object put(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=3
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.String key
        start local 2 // java.lang.Object value
         0: .line 415
            aload 1 /* key */
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.checkKey:(Ljava/lang/Object;)V
         1: .line 416
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 3 /* oldGlobal */
        start local 3 // jdk.nashorn.internal.runtime.ScriptObject oldGlobal
         2: .line 417
            aload 3 /* oldGlobal */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            if_acmpeq 3
            iconst_1
            goto 4
      StackMap locals: jdk.nashorn.internal.runtime.ScriptObject
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* globalChanged */
        start local 4 // boolean globalChanged
         5: .line 418
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$17
            dup
            aload 0 /* this */
            iload 4 /* globalChanged */
            aload 2 /* value */
            aload 3 /* oldGlobal */
            aload 1 /* key */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$17.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;ZLjava/lang/Object;Ljdk/nashorn/internal/runtime/ScriptObject;Ljava/lang/String;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            areturn
        end local 4 // boolean globalChanged
        end local 3 // jdk.nashorn.internal.runtime.ScriptObject oldGlobal
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String key
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    6     1            key  Ljava/lang/String;
            0    6     2          value  Ljava/lang/Object;
            2    6     3      oldGlobal  Ljdk/nashorn/internal/runtime/ScriptObject;
            5    6     4  globalChanged  Z
    MethodParameters:
       Name  Flags
      key    final
      value  final

  public void putAll(java.util.Map<? extends java.lang.String, ? extends java.lang.Object>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.util.Map map
         0: .line 428
            aload 1 /* map */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 429
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 2 /* oldGlobal */
        start local 2 // jdk.nashorn.internal.runtime.ScriptObject oldGlobal
         2: .line 430
            aload 2 /* oldGlobal */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            if_acmpeq 3
            iconst_1
            goto 4
      StackMap locals: jdk.nashorn.internal.runtime.ScriptObject
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 3 /* globalChanged */
        start local 3 // boolean globalChanged
         5: .line 431
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$18
            dup
            aload 0 /* this */
            aload 1 /* map */
            iload 3 /* globalChanged */
            aload 2 /* oldGlobal */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$18.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/util/Map;ZLjdk/nashorn/internal/runtime/ScriptObject;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            pop
         6: .line 443
            return
        end local 3 // boolean globalChanged
        end local 2 // jdk.nashorn.internal.runtime.ScriptObject oldGlobal
        end local 1 // java.util.Map map
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    7     1            map  Ljava/util/Map<+Ljava/lang/String;+Ljava/lang/Object;>;
            2    7     2      oldGlobal  Ljdk/nashorn/internal/runtime/ScriptObject;
            5    7     3  globalChanged  Z
    Signature: (Ljava/util/Map<+Ljava/lang/String;+Ljava/lang/Object;>;)V
    MethodParameters:
      Name  Flags
      map   final

  public java.lang.Object remove(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object key
         0: .line 447
            aload 1 /* key */
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.checkKey:(Ljava/lang/Object;)V
         1: .line 448
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$19
            dup
            aload 0 /* this */
            aload 1 /* key */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$19.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/Object;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object key
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    2     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public boolean delete(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object key
         0: .line 463
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$20
            dup
            aload 0 /* this */
            aload 1 /* key */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$20.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/Object;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 1 // java.lang.Object key
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 472
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$21
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$21.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public java.util.Collection<java.lang.Object> values();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 481
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$22
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$22.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.util.Collection
            areturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    Signature: ()Ljava/util/Collection<Ljava/lang/Object;>;

  public java.lang.Object getProto();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 502
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$23
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$23.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            areturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public void setProto(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object proto
         0: .line 514
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$24
            dup
            aload 0 /* this */
            aload 1 /* proto */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$24.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/Object;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            pop
         1: .line 520
            return
        end local 1 // java.lang.Object proto
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    2     1  proto  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      proto  final

  public java.lang.Object getOwnPropertyDescriptor(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.String key
         0: .line 531
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$25
            dup
            aload 0 /* this */
            aload 1 /* key */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$25.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/String;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String key
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    1     1   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   final

  public java.lang.String[] getOwnKeys(boolean);
    descriptor: (Z)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // boolean all
         0: .line 545
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$26
            dup
            aload 0 /* this */
            iload 1 /* all */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$26.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Z)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 1 // boolean all
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    1     1   all  Z
    MethodParameters:
      Name  Flags
      all   final

  public jdk.nashorn.api.scripting.ScriptObjectMirror preventExtensions();
    descriptor: ()Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 558
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$27
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$27.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            areturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public boolean isExtensible();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 571
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$28
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$28.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public jdk.nashorn.api.scripting.ScriptObjectMirror seal();
    descriptor: ()Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 583
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$29
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$29.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            areturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public boolean isSealed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 596
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$30
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$30.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public jdk.nashorn.api.scripting.ScriptObjectMirror freeze();
    descriptor: ()Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 608
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$31
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$31.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            areturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public boolean isFrozen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 621
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$32
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$32.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public static boolean isUndefined(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 635
            aload 0 /* obj */
            getstatic jdk.nashorn.internal.runtime.ScriptRuntime.UNDEFINED:Ljdk/nashorn/internal/runtime/Undefined;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   final

  public <T> T to(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Class type
         0: .line 646
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$33
            dup
            aload 0 /* this */
            aload 1 /* type */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$33.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/Class;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Class type
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    1     1  type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
      Name  Flags
      type  final

  public static java.lang.Object wrap(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Object obj
        start local 1 // java.lang.Object homeGlobal
         0: .line 662
            aload 0 /* obj */
            aload 1 /* homeGlobal */
            iconst_0
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.wrap:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object homeGlobal
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0         obj  Ljava/lang/Object;
            0    1     1  homeGlobal  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      obj         final
      homeGlobal  final

  public static java.lang.Object wrapAsJSONCompatible(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Object obj
        start local 1 // java.lang.Object homeGlobal
         0: .line 676
            aload 0 /* obj */
            aload 1 /* homeGlobal */
            iconst_1
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.wrap:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object homeGlobal
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0         obj  Ljava/lang/Object;
            0    1     1  homeGlobal  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      obj         final
      homeGlobal  final

  private static java.lang.Object wrap(java.lang.Object, java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.lang.Object obj
        start local 1 // java.lang.Object homeGlobal
        start local 2 // boolean jsonCompatible
         0: .line 690
            aload 0 /* obj */
            instanceof jdk.nashorn.internal.runtime.ScriptObject
            ifeq 9
         1: .line 691
            aload 1 /* homeGlobal */
            instanceof jdk.nashorn.internal.objects.Global
            ifne 3
         2: .line 692
            aload 0 /* obj */
            areturn
         3: .line 694
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast jdk.nashorn.internal.runtime.ScriptObject
            astore 3 /* sobj */
        start local 3 // jdk.nashorn.internal.runtime.ScriptObject sobj
         4: .line 695
            aload 1 /* homeGlobal */
            checkcast jdk.nashorn.internal.objects.Global
            astore 4 /* global */
        start local 4 // jdk.nashorn.internal.objects.Global global
         5: .line 696
            new jdk.nashorn.api.scripting.ScriptObjectMirror
            dup
            aload 3 /* sobj */
            aload 4 /* global */
            iload 2 /* jsonCompatible */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror.<init>:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/objects/Global;Z)V
            astore 5 /* mirror */
        start local 5 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
         6: .line 697
            iload 2 /* jsonCompatible */
            ifeq 8
            aload 3 /* sobj */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.isArray:()Z
            ifeq 8
         7: .line 698
            new jdk.nashorn.internal.runtime.JSONListAdapter
            dup
            aload 5 /* mirror */
            aload 4 /* global */
            invokespecial jdk.nashorn.internal.runtime.JSONListAdapter.<init>:(Ljdk/nashorn/api/scripting/JSObject;Ljdk/nashorn/internal/objects/Global;)V
            areturn
         8: .line 700
      StackMap locals: jdk.nashorn.internal.runtime.ScriptObject jdk.nashorn.internal.objects.Global jdk.nashorn.api.scripting.ScriptObjectMirror
      StackMap stack:
            aload 5 /* mirror */
            areturn
        end local 5 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
        end local 4 // jdk.nashorn.internal.objects.Global global
        end local 3 // jdk.nashorn.internal.runtime.ScriptObject sobj
         9: .line 701
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            instanceof jdk.nashorn.internal.runtime.ConsString
            ifeq 11
        10: .line 702
            aload 0 /* obj */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        11: .line 703
      StackMap locals:
      StackMap stack:
            iload 2 /* jsonCompatible */
            ifeq 13
            aload 0 /* obj */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 13
        12: .line 707
            aload 0 /* obj */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.asJSONCompatible:()Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            areturn
        13: .line 709
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            areturn
        end local 2 // boolean jsonCompatible
        end local 1 // java.lang.Object homeGlobal
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0             obj  Ljava/lang/Object;
            0   14     1      homeGlobal  Ljava/lang/Object;
            0   14     2  jsonCompatible  Z
            4    9     3            sobj  Ljdk/nashorn/internal/runtime/ScriptObject;
            5    9     4          global  Ljdk/nashorn/internal/objects/Global;
            6    9     5          mirror  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    MethodParameters:
                Name  Flags
      obj             final
      homeGlobal      final
      jsonCompatible  final

  private java.lang.Object wrapLikeMe(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object obj
        start local 2 // java.lang.Object homeGlobal
         0: .line 719
            aload 1 /* obj */
            aload 2 /* homeGlobal */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.jsonCompatible:Z
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.wrap:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object homeGlobal
        end local 1 // java.lang.Object obj
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    1     1         obj  Ljava/lang/Object;
            0    1     2  homeGlobal  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      obj         final
      homeGlobal  final

  private java.lang.Object wrapLikeMe(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object obj
         0: .line 728
            aload 0 /* this */
            aload 1 /* obj */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.wrapLikeMe:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   final

  public static java.lang.Object unwrap(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Object obj
        start local 1 // java.lang.Object homeGlobal
         0: .line 739
            aload 0 /* obj */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 5
         1: .line 740
            aload 0 /* obj */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            astore 2 /* mirror */
        start local 2 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
         2: .line 741
            aload 2 /* mirror */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            aload 1 /* homeGlobal */
            if_acmpne 3
            aload 2 /* mirror */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            goto 4
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror
      StackMap stack:
         3: aload 0 /* obj */
      StackMap locals:
      StackMap stack: java.lang.Object
         4: areturn
        end local 2 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
         5: .line 742
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            instanceof jdk.nashorn.internal.runtime.JSONListAdapter
            ifeq 7
         6: .line 743
            aload 0 /* obj */
            checkcast jdk.nashorn.internal.runtime.JSONListAdapter
            aload 1 /* homeGlobal */
            invokevirtual jdk.nashorn.internal.runtime.JSONListAdapter.unwrap:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         7: .line 746
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            areturn
        end local 1 // java.lang.Object homeGlobal
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0         obj  Ljava/lang/Object;
            0    8     1  homeGlobal  Ljava/lang/Object;
            2    5     2      mirror  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    MethodParameters:
            Name  Flags
      obj         final
      homeGlobal  final

  public static java.lang.Object[] wrapArray(java.lang.Object[], java.lang.Object);
    descriptor: ([Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Object[] args
        start local 1 // java.lang.Object homeGlobal
         0: .line 757
            aload 0 /* args */
            aload 1 /* homeGlobal */
            iconst_0
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.wrapArray:([Ljava/lang/Object;Ljava/lang/Object;Z)[Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object homeGlobal
        end local 0 // java.lang.Object[] args
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        args  [Ljava/lang/Object;
            0    1     1  homeGlobal  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      args        final
      homeGlobal  final

  private static java.lang.Object[] wrapArray(java.lang.Object[], java.lang.Object, boolean);
    descriptor: ([Ljava/lang/Object;Ljava/lang/Object;Z)[Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // java.lang.Object[] args
        start local 1 // java.lang.Object homeGlobal
        start local 2 // boolean jsonCompatible
         0: .line 761
            aload 0 /* args */
            ifnull 1
            aload 0 /* args */
            arraylength
            ifne 2
         1: .line 762
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            areturn
         2: .line 765
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            arraylength
            anewarray java.lang.Object
            astore 3 /* newArgs */
        start local 3 // java.lang.Object[] newArgs
         3: .line 766
            iconst_0
            istore 4 /* index */
        start local 4 // int index
         4: .line 767
            aload 0 /* args */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 9
      StackMap locals: java.lang.Object[] java.lang.Object int java.lang.Object[] int top int int java.lang.Object[]
      StackMap stack:
         5: aload 8
            iload 6
            aaload
            astore 5 /* obj */
        start local 5 // java.lang.Object obj
         6: .line 768
            aload 3 /* newArgs */
            iload 4 /* index */
            aload 5 /* obj */
            aload 1 /* homeGlobal */
            iload 2 /* jsonCompatible */
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.wrap:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
            aastore
         7: .line 769
            iinc 4 /* index */ 1
        end local 5 // java.lang.Object obj
         8: .line 767
            iinc 6 1
      StackMap locals:
      StackMap stack:
         9: iload 6
            iload 7
            if_icmplt 5
        10: .line 771
            aload 3 /* newArgs */
            areturn
        end local 4 // int index
        end local 3 // java.lang.Object[] newArgs
        end local 2 // boolean jsonCompatible
        end local 1 // java.lang.Object homeGlobal
        end local 0 // java.lang.Object[] args
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            args  [Ljava/lang/Object;
            0   11     1      homeGlobal  Ljava/lang/Object;
            0   11     2  jsonCompatible  Z
            3   11     3         newArgs  [Ljava/lang/Object;
            4   11     4           index  I
            6    8     5             obj  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      args            final
      homeGlobal      final
      jsonCompatible  final

  private java.lang.Object[] wrapArrayLikeMe(java.lang.Object[], java.lang.Object);
    descriptor: ([Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Object[] args
        start local 2 // java.lang.Object homeGlobal
         0: .line 775
            aload 1 /* args */
            aload 2 /* homeGlobal */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.jsonCompatible:Z
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.wrapArray:([Ljava/lang/Object;Ljava/lang/Object;Z)[Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object homeGlobal
        end local 1 // java.lang.Object[] args
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    1     1        args  [Ljava/lang/Object;
            0    1     2  homeGlobal  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      args        final
      homeGlobal  final

  public static java.lang.Object[] unwrapArray(java.lang.Object[], java.lang.Object);
    descriptor: ([Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // java.lang.Object[] args
        start local 1 // java.lang.Object homeGlobal
         0: .line 786
            aload 0 /* args */
            ifnull 1
            aload 0 /* args */
            arraylength
            ifne 2
         1: .line 787
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            areturn
         2: .line 790
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            arraylength
            anewarray java.lang.Object
            astore 2 /* newArgs */
        start local 2 // java.lang.Object[] newArgs
         3: .line 791
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         4: .line 792
            aload 0 /* args */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 9
      StackMap locals: java.lang.Object[] java.lang.Object java.lang.Object[] int top int int java.lang.Object[]
      StackMap stack:
         5: aload 7
            iload 5
            aaload
            astore 4 /* obj */
        start local 4 // java.lang.Object obj
         6: .line 793
            aload 2 /* newArgs */
            iload 3 /* index */
            aload 4 /* obj */
            aload 1 /* homeGlobal */
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.unwrap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
         7: .line 794
            iinc 3 /* index */ 1
        end local 4 // java.lang.Object obj
         8: .line 792
            iinc 5 1
      StackMap locals:
      StackMap stack:
         9: iload 5
            iload 6
            if_icmplt 5
        10: .line 796
            aload 2 /* newArgs */
            areturn
        end local 3 // int index
        end local 2 // java.lang.Object[] newArgs
        end local 1 // java.lang.Object homeGlobal
        end local 0 // java.lang.Object[] args
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        args  [Ljava/lang/Object;
            0   11     1  homeGlobal  Ljava/lang/Object;
            3   11     2     newArgs  [Ljava/lang/Object;
            4   11     3       index  I
            6    8     4         obj  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      args        final
      homeGlobal  final

  public static boolean identical(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.Object obj1
        start local 1 // java.lang.Object obj2
         0: .line 807
            aload 0 /* obj1 */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 2
         1: .line 808
            aload 0 /* obj1 */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* obj1 */
         3: .line 807
      StackMap locals:
      StackMap stack: java.lang.Object
            astore 2 /* o1 */
        start local 2 // java.lang.Object o1
         4: .line 810
            aload 1 /* obj2 */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 6
         5: .line 811
            aload 1 /* obj2 */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            goto 7
      StackMap locals: java.lang.Object
      StackMap stack:
         6: aload 1 /* obj2 */
         7: .line 810
      StackMap locals:
      StackMap stack: java.lang.Object
            astore 3 /* o2 */
        start local 3 // java.lang.Object o2
         8: .line 813
            aload 2 /* o1 */
            aload 3 /* o2 */
            if_acmpne 9
            iconst_1
            ireturn
      StackMap locals: java.lang.Object
      StackMap stack:
         9: iconst_0
            ireturn
        end local 3 // java.lang.Object o2
        end local 2 // java.lang.Object o1
        end local 1 // java.lang.Object obj2
        end local 0 // java.lang.Object obj1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  obj1  Ljava/lang/Object;
            0   10     1  obj2  Ljava/lang/Object;
            4   10     2    o1  Ljava/lang/Object;
            8   10     3    o2  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj1  final
      obj2  final

  void <init>(jdk.nashorn.internal.runtime.ScriptObject, jdk.nashorn.internal.objects.Global);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/objects/Global;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // jdk.nashorn.internal.runtime.ScriptObject sobj
        start local 2 // jdk.nashorn.internal.objects.Global global
         0: .line 819
            aload 0 /* this */
            aload 1 /* sobj */
            aload 2 /* global */
            iconst_0
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror.<init>:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/objects/Global;Z)V
         1: .line 820
            return
        end local 2 // jdk.nashorn.internal.objects.Global global
        end local 1 // jdk.nashorn.internal.runtime.ScriptObject sobj
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    2     1    sobj  Ljdk/nashorn/internal/runtime/ScriptObject;
            0    2     2  global  Ljdk/nashorn/internal/objects/Global;
    MethodParameters:
        Name  Flags
      sobj    final
      global  final

  private void <init>(jdk.nashorn.internal.runtime.ScriptObject, jdk.nashorn.internal.objects.Global, boolean);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/objects/Global;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // jdk.nashorn.internal.runtime.ScriptObject sobj
        start local 2 // jdk.nashorn.internal.objects.Global global
        start local 3 // boolean jsonCompatible
         0: .line 822
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.AbstractJSObject.<init>:()V
         1: .line 823
            getstatic jdk.nashorn.api.scripting.ScriptObjectMirror.$assertionsDisabled:Z
            ifne 2
            aload 1 /* sobj */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            ldc "ScriptObjectMirror on null!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 824
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror jdk.nashorn.internal.runtime.ScriptObject jdk.nashorn.internal.objects.Global int
      StackMap stack:
            getstatic jdk.nashorn.api.scripting.ScriptObjectMirror.$assertionsDisabled:Z
            ifne 3
            aload 2 /* global */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            ldc "home Global is null"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 826
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sobj */
            putfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
         4: .line 827
            aload 0 /* this */
            aload 2 /* global */
            putfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
         5: .line 828
            aload 0 /* this */
            aload 2 /* global */
            invokevirtual jdk.nashorn.internal.objects.Global.isStrictContext:()Z
            putfield jdk.nashorn.api.scripting.ScriptObjectMirror.strict:Z
         6: .line 829
            aload 0 /* this */
            iload 3 /* jsonCompatible */
            putfield jdk.nashorn.api.scripting.ScriptObjectMirror.jsonCompatible:Z
         7: .line 830
            return
        end local 3 // boolean jsonCompatible
        end local 2 // jdk.nashorn.internal.objects.Global global
        end local 1 // jdk.nashorn.internal.runtime.ScriptObject sobj
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    8     1            sobj  Ljdk/nashorn/internal/runtime/ScriptObject;
            0    8     2          global  Ljdk/nashorn/internal/objects/Global;
            0    8     3  jsonCompatible  Z
    MethodParameters:
                Name  Flags
      sobj            final
      global          final
      jsonCompatible  final

  jdk.nashorn.internal.runtime.ScriptObject getScriptObject();
    descriptor: ()Ljdk/nashorn/internal/runtime/ScriptObject;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 834
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            areturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  jdk.nashorn.internal.objects.Global getHomeGlobal();
    descriptor: ()Ljdk/nashorn/internal/objects/Global;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 838
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            areturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  static java.lang.Object translateUndefined(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 842
            aload 0 /* obj */
            getstatic jdk.nashorn.internal.runtime.ScriptRuntime.UNDEFINED:Ljdk/nashorn/internal/runtime/Undefined;
            if_acmpne 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* obj */
      StackMap locals:
      StackMap stack: java.lang.Object
         2: areturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   final

  private int getCallSiteFlags();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 846
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.strict:Z
            ifeq 1
            bipush 32
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  private <V> V inGlobal(java.util.concurrent.Callable<V>);
    descriptor: (Ljava/util/concurrent/Callable;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.util.concurrent.Callable callable
         0: .line 851
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 2 /* oldGlobal */
        start local 2 // jdk.nashorn.internal.objects.Global oldGlobal
         1: .line 852
            aload 2 /* oldGlobal */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            if_acmpeq 2
            iconst_1
            goto 3
      StackMap locals: jdk.nashorn.internal.objects.Global
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* globalChanged */
        start local 3 // boolean globalChanged
         4: .line 853
            iload 3 /* globalChanged */
            ifeq 6
         5: .line 854
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         6: .line 857
      StackMap locals: int
      StackMap stack:
            aload 1 /* callable */
            invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
            astore 6
         7: .line 865
            iload 3 /* globalChanged */
            ifeq 9
         8: .line 866
            aload 2 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         9: .line 857
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.util.concurrent.Callable jdk.nashorn.internal.objects.Global int top top java.lang.Object
      StackMap stack:
            aload 6
            areturn
        10: .line 858
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.util.concurrent.Callable jdk.nashorn.internal.objects.Global int
      StackMap stack: jdk.nashorn.api.scripting.NashornException
            astore 4 /* ne */
        start local 4 // jdk.nashorn.api.scripting.NashornException ne
        11: .line 859
            aload 4 /* ne */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            invokevirtual jdk.nashorn.api.scripting.NashornException.initEcmaError:(Ljdk/nashorn/internal/runtime/ScriptObject;)Ljdk/nashorn/api/scripting/NashornException;
            athrow
        end local 4 // jdk.nashorn.api.scripting.NashornException ne
        12: .line 860
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 4 /* e */
        start local 4 // java.lang.RuntimeException e
        13: .line 861
            aload 4 /* e */
            athrow
        end local 4 // java.lang.RuntimeException e
        14: .line 862
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        15: .line 863
            new java.lang.AssertionError
            dup
            ldc "Cannot happen"
            aload 4 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        16: .line 864
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        17: .line 865
            iload 3 /* globalChanged */
            ifeq 19
        18: .line 866
            aload 2 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        19: .line 868
      StackMap locals: jdk.nashorn.api.scripting.ScriptObjectMirror java.util.concurrent.Callable jdk.nashorn.internal.objects.Global int top java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        end local 3 // boolean globalChanged
        end local 2 // jdk.nashorn.internal.objects.Global oldGlobal
        end local 1 // java.util.concurrent.Callable callable
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0           this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0   20     1       callable  Ljava/util/concurrent/Callable<TV;>;
            1   20     2      oldGlobal  Ljdk/nashorn/internal/objects/Global;
            4   20     3  globalChanged  Z
           11   12     4             ne  Ljdk/nashorn/api/scripting/NashornException;
           13   14     4              e  Ljava/lang/RuntimeException;
           15   16     4              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     7      10  Class jdk.nashorn.api.scripting.NashornException
           6     7      12  Class java.lang.RuntimeException
           6     7      14  Class java.lang.Exception
           6     7      16  any
          10    16      16  any
    Signature: <V:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TV;>;)TV;
    MethodParameters:
          Name  Flags
      callable  final

  private static void checkKey(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.Object key
         0: .line 880
            aload 0 /* key */
            ldc "key can not be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 882
            aload 0 /* key */
            instanceof java.lang.String
            ifne 3
         2: .line 883
            new java.lang.ClassCastException
            dup
            new java.lang.StringBuilder
            dup
            ldc "key should be a String. It is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* key */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " instead."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 884
      StackMap locals:
      StackMap stack:
            aload 0 /* key */
            checkcast java.lang.String
            invokevirtual java.lang.String.length:()I
            ifne 5
         4: .line 885
            new java.lang.IllegalArgumentException
            dup
            ldc "key can not be empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 887
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.Object key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public double toNumber();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 891
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$34
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$34.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dreturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public  getDefaultValue(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
        start local 1 // java.lang.Class hint
         0: .line 900
            aload 0 /* this */
            new jdk.nashorn.api.scripting.ScriptObjectMirror$35
            dup
            aload 0 /* this */
            aload 1 /* hint */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror$35.<init>:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;Ljava/lang/Class;)V
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Class hint
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            0    1     1  hint  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      hint  final

  private jdk.nashorn.api.scripting.ScriptObjectMirror asJSONCompatible();
    descriptor: ()Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
         0: .line 916
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.jsonCompatible:Z
            ifeq 2
         1: .line 917
            aload 0 /* this */
            areturn
         2: .line 919
      StackMap locals:
      StackMap stack:
            new jdk.nashorn.api.scripting.ScriptObjectMirror
            dup
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.sobj:Ljdk/nashorn/internal/runtime/ScriptObject;
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.ScriptObjectMirror.global:Ljdk/nashorn/internal/objects/Global;
            iconst_1
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror.<init>:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/objects/Global;Z)V
            areturn
        end local 0 // jdk.nashorn.api.scripting.ScriptObjectMirror this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/nashorn/api/scripting/ScriptObjectMirror;

  public java.lang.Object put(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast java.lang.String
            aload 2
            checkcast java.lang.Object
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ScriptObjectMirror.java"
NestMembers:
  jdk.nashorn.api.scripting.ScriptObjectMirror$1  jdk.nashorn.api.scripting.ScriptObjectMirror$10  jdk.nashorn.api.scripting.ScriptObjectMirror$11  jdk.nashorn.api.scripting.ScriptObjectMirror$12  jdk.nashorn.api.scripting.ScriptObjectMirror$13  jdk.nashorn.api.scripting.ScriptObjectMirror$14  jdk.nashorn.api.scripting.ScriptObjectMirror$15  jdk.nashorn.api.scripting.ScriptObjectMirror$16  jdk.nashorn.api.scripting.ScriptObjectMirror$17  jdk.nashorn.api.scripting.ScriptObjectMirror$18  jdk.nashorn.api.scripting.ScriptObjectMirror$19  jdk.nashorn.api.scripting.ScriptObjectMirror$2  jdk.nashorn.api.scripting.ScriptObjectMirror$2$1  jdk.nashorn.api.scripting.ScriptObjectMirror$20  jdk.nashorn.api.scripting.ScriptObjectMirror$21  jdk.nashorn.api.scripting.ScriptObjectMirror$22  jdk.nashorn.api.scripting.ScriptObjectMirror$23  jdk.nashorn.api.scripting.ScriptObjectMirror$24  jdk.nashorn.api.scripting.ScriptObjectMirror$25  jdk.nashorn.api.scripting.ScriptObjectMirror$26  jdk.nashorn.api.scripting.ScriptObjectMirror$27  jdk.nashorn.api.scripting.ScriptObjectMirror$28  jdk.nashorn.api.scripting.ScriptObjectMirror$29  jdk.nashorn.api.scripting.ScriptObjectMirror$3  jdk.nashorn.api.scripting.ScriptObjectMirror$30  jdk.nashorn.api.scripting.ScriptObjectMirror$31  jdk.nashorn.api.scripting.ScriptObjectMirror$32  jdk.nashorn.api.scripting.ScriptObjectMirror$33  jdk.nashorn.api.scripting.ScriptObjectMirror$34  jdk.nashorn.api.scripting.ScriptObjectMirror$35  jdk.nashorn.api.scripting.ScriptObjectMirror$4  jdk.nashorn.api.scripting.ScriptObjectMirror$5  jdk.nashorn.api.scripting.ScriptObjectMirror$6  jdk.nashorn.api.scripting.ScriptObjectMirror$7  jdk.nashorn.api.scripting.ScriptObjectMirror$8  jdk.nashorn.api.scripting.ScriptObjectMirror$9
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  jdk.nashorn.api.scripting.ScriptObjectMirror$1
  jdk.nashorn.api.scripting.ScriptObjectMirror$10
  jdk.nashorn.api.scripting.ScriptObjectMirror$11
  jdk.nashorn.api.scripting.ScriptObjectMirror$12
  jdk.nashorn.api.scripting.ScriptObjectMirror$13
  jdk.nashorn.api.scripting.ScriptObjectMirror$14
  jdk.nashorn.api.scripting.ScriptObjectMirror$15
  jdk.nashorn.api.scripting.ScriptObjectMirror$16
  jdk.nashorn.api.scripting.ScriptObjectMirror$17
  jdk.nashorn.api.scripting.ScriptObjectMirror$18
  jdk.nashorn.api.scripting.ScriptObjectMirror$19
  jdk.nashorn.api.scripting.ScriptObjectMirror$2
  jdk.nashorn.api.scripting.ScriptObjectMirror$20
  jdk.nashorn.api.scripting.ScriptObjectMirror$21
  jdk.nashorn.api.scripting.ScriptObjectMirror$22
  jdk.nashorn.api.scripting.ScriptObjectMirror$23
  jdk.nashorn.api.scripting.ScriptObjectMirror$24
  jdk.nashorn.api.scripting.ScriptObjectMirror$25
  jdk.nashorn.api.scripting.ScriptObjectMirror$26
  jdk.nashorn.api.scripting.ScriptObjectMirror$27
  jdk.nashorn.api.scripting.ScriptObjectMirror$28
  jdk.nashorn.api.scripting.ScriptObjectMirror$29
  jdk.nashorn.api.scripting.ScriptObjectMirror$3
  jdk.nashorn.api.scripting.ScriptObjectMirror$30
  jdk.nashorn.api.scripting.ScriptObjectMirror$31
  jdk.nashorn.api.scripting.ScriptObjectMirror$32
  jdk.nashorn.api.scripting.ScriptObjectMirror$33
  jdk.nashorn.api.scripting.ScriptObjectMirror$34
  jdk.nashorn.api.scripting.ScriptObjectMirror$35
  jdk.nashorn.api.scripting.ScriptObjectMirror$4
  jdk.nashorn.api.scripting.ScriptObjectMirror$5
  jdk.nashorn.api.scripting.ScriptObjectMirror$6
  jdk.nashorn.api.scripting.ScriptObjectMirror$7
  jdk.nashorn.api.scripting.ScriptObjectMirror$8
  jdk.nashorn.api.scripting.ScriptObjectMirror$9