public final class jdk.nashorn.api.scripting.NashornScriptEngine extends javax.script.AbstractScriptEngine implements javax.script.Compilable, javax.script.Invocable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.api.scripting.NashornScriptEngine
  super_class: javax.script.AbstractScriptEngine
{
  public static final java.lang.String NASHORN_GLOBAL;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "nashorn.global"

  private static final java.security.AccessControlContext CREATE_CONTEXT_ACC_CTXT;
    descriptor: Ljava/security/AccessControlContext;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.security.AccessControlContext CREATE_GLOBAL_ACC_CTXT;
    descriptor: Ljava/security/AccessControlContext;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final javax.script.ScriptEngineFactory factory;
    descriptor: Ljavax/script/ScriptEngineFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final boolean _global_per_engine;
    descriptor: Z
    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 static final java.lang.String MESSAGES_RESOURCE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jdk.nashorn.api.scripting.resources.Messages"

  private static final java.util.ResourceBundle MESSAGES_BUNDLE;
    descriptor: Ljava/util/ResourceBundle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, 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=2, locals=0, args_size=0
         0: .line 72
            ldc Ljdk/nashorn/api/scripting/NashornScriptEngine;
            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.NashornScriptEngine.$assertionsDisabled:Z
         3: .line 85
            ldc "nashorn.createContext"
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.createPermAccCtxt:(Ljava/lang/String;)Ljava/security/AccessControlContext;
            putstatic jdk.nashorn.api.scripting.NashornScriptEngine.CREATE_CONTEXT_ACC_CTXT:Ljava/security/AccessControlContext;
         4: .line 86
            ldc "nashorn.createGlobal"
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.createPermAccCtxt:(Ljava/lang/String;)Ljava/security/AccessControlContext;
            putstatic jdk.nashorn.api.scripting.NashornScriptEngine.CREATE_GLOBAL_ACC_CTXT:Ljava/security/AccessControlContext;
         5: .line 103
            ldc "jdk.nashorn.api.scripting.resources.Messages"
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/ResourceBundle;
            putstatic jdk.nashorn.api.scripting.NashornScriptEngine.MESSAGES_BUNDLE:Ljava/util/ResourceBundle;
         6: .line 104
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.security.AccessControlContext createPermAccCtxt(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/security/AccessControlContext;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=2, args_size=1
        start local 0 // java.lang.String permName
         0: .line 80
            new java.security.Permissions
            dup
            invokespecial java.security.Permissions.<init>:()V
            astore 1 /* perms */
        start local 1 // java.security.Permissions perms
         1: .line 81
            aload 1 /* perms */
            new java.lang.RuntimePermission
            dup
            aload 0 /* permName */
            invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
            invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
         2: .line 82
            new java.security.AccessControlContext
            dup
            iconst_1
            anewarray java.security.ProtectionDomain
            dup
            iconst_0
            new java.security.ProtectionDomain
            dup
            aconst_null
            aload 1 /* 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 1 // java.security.Permissions perms
        end local 0 // java.lang.String permName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  permName  Ljava/lang/String;
            1    3     1     perms  Ljava/security/Permissions;
    MethodParameters:
          Name  Flags
      permName  final

  private static java.lang.String getMessage(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.String msgId
        start local 1 // java.lang.String[] args
         0: .line 109
            new java.text.MessageFormat
            dup
            getstatic jdk.nashorn.api.scripting.NashornScriptEngine.MESSAGES_BUNDLE:Ljava/util/ResourceBundle;
            aload 0 /* msgId */
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            aload 1 /* args */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
         1: areturn
         2: .line 110
      StackMap locals:
      StackMap stack: java.util.MissingResourceException
            pop
         3: .line 111
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "no message resource found for message id: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* msgId */
            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
        end local 1 // java.lang.String[] args
        end local 0 // java.lang.String msgId
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  msgId  Ljava/lang/String;
            0    4     1   args  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.util.MissingResourceException
    MethodParameters:
       Name  Flags
      msgId  final
      args   final

  void <init>(jdk.nashorn.api.scripting.NashornScriptEngineFactory, java.lang.String[], java.lang.ClassLoader, jdk.nashorn.api.scripting.ClassFilter);
    descriptor: (Ljdk/nashorn/api/scripting/NashornScriptEngineFactory;[Ljava/lang/String;Ljava/lang/ClassLoader;Ljdk/nashorn/api/scripting/ClassFilter;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=7, args_size=5
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // jdk.nashorn.api.scripting.NashornScriptEngineFactory factory
        start local 2 // java.lang.String[] args
        start local 3 // java.lang.ClassLoader appLoader
        start local 4 // jdk.nashorn.api.scripting.ClassFilter classFilter
         0: .line 115
            aload 0 /* this */
            invokespecial javax.script.AbstractScriptEngine.<init>:()V
         1: .line 116
            getstatic jdk.nashorn.api.scripting.NashornScriptEngine.$assertionsDisabled:Z
            ifne 2
            aload 2 /* args */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            ldc "null argument array"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 117
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.api.scripting.NashornScriptEngineFactory java.lang.String[] java.lang.ClassLoader jdk.nashorn.api.scripting.ClassFilter
      StackMap stack:
            aload 0 /* this */
            aload 1 /* factory */
            putfield jdk.nashorn.api.scripting.NashornScriptEngine.factory:Ljavax/script/ScriptEngineFactory;
         3: .line 118
            new jdk.nashorn.internal.runtime.options.Options
            dup
            ldc "nashorn"
            invokespecial jdk.nashorn.internal.runtime.options.Options.<init>:(Ljava/lang/String;)V
            astore 5 /* options */
        start local 5 // jdk.nashorn.internal.runtime.options.Options options
         4: .line 119
            aload 5 /* options */
            aload 2 /* args */
            invokevirtual jdk.nashorn.internal.runtime.options.Options.process:([Ljava/lang/String;)V
         5: .line 122
            new jdk.nashorn.internal.runtime.Context$ThrowErrorManager
            dup
            invokespecial jdk.nashorn.internal.runtime.Context$ThrowErrorManager.<init>:()V
            astore 6 /* errMgr */
        start local 6 // jdk.nashorn.internal.runtime.ErrorManager errMgr
         6: .line 124
            aload 0 /* this */
            new jdk.nashorn.api.scripting.NashornScriptEngine$1
            dup
            aload 0 /* this */
            aload 5 /* options */
            aload 6 /* errMgr */
            aload 3 /* appLoader */
            aload 4 /* classFilter */
            invokespecial jdk.nashorn.api.scripting.NashornScriptEngine$1.<init>:(Ljdk/nashorn/api/scripting/NashornScriptEngine;Ljdk/nashorn/internal/runtime/options/Options;Ljdk/nashorn/internal/runtime/ErrorManager;Ljava/lang/ClassLoader;Ljdk/nashorn/api/scripting/ClassFilter;)V
         7: .line 136
            getstatic jdk.nashorn.api.scripting.NashornScriptEngine.CREATE_CONTEXT_ACC_CTXT:Ljava/security/AccessControlContext;
         8: .line 124
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
            checkcast jdk.nashorn.internal.runtime.Context
            putfield jdk.nashorn.api.scripting.NashornScriptEngine.nashornContext:Ljdk/nashorn/internal/runtime/Context;
         9: .line 139
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.nashornContext:Ljdk/nashorn/internal/runtime/Context;
            invokevirtual jdk.nashorn.internal.runtime.Context.getEnv:()Ljdk/nashorn/internal/runtime/ScriptEnvironment;
            getfield jdk.nashorn.internal.runtime.ScriptEnvironment._global_per_engine:Z
            putfield jdk.nashorn.api.scripting.NashornScriptEngine._global_per_engine:Z
        10: .line 142
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.createNashornGlobal:()Ljdk/nashorn/internal/objects/Global;
            putfield jdk.nashorn.api.scripting.NashornScriptEngine.global:Ljdk/nashorn/internal/objects/Global;
        11: .line 144
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.context:Ljavax/script/ScriptContext;
            new jdk.nashorn.api.scripting.ScriptObjectMirror
            dup
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.global:Ljdk/nashorn/internal/objects/Global;
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.global:Ljdk/nashorn/internal/objects/Global;
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror.<init>:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/objects/Global;)V
            bipush 100
            invokeinterface javax.script.ScriptContext.setBindings:(Ljavax/script/Bindings;I)V
        12: .line 145
            return
        end local 6 // jdk.nashorn.internal.runtime.ErrorManager errMgr
        end local 5 // jdk.nashorn.internal.runtime.options.Options options
        end local 4 // jdk.nashorn.api.scripting.ClassFilter classFilter
        end local 3 // java.lang.ClassLoader appLoader
        end local 2 // java.lang.String[] args
        end local 1 // jdk.nashorn.api.scripting.NashornScriptEngineFactory factory
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0   13     1      factory  Ljdk/nashorn/api/scripting/NashornScriptEngineFactory;
            0   13     2         args  [Ljava/lang/String;
            0   13     3    appLoader  Ljava/lang/ClassLoader;
            0   13     4  classFilter  Ljdk/nashorn/api/scripting/ClassFilter;
            4   13     5      options  Ljdk/nashorn/internal/runtime/options/Options;
            6   13     6       errMgr  Ljdk/nashorn/internal/runtime/ErrorManager;
    MethodParameters:
             Name  Flags
      factory      final
      args         final
      appLoader    final
      classFilter  final

  public java.lang.Object eval(java.io.Reader, javax.script.ScriptContext);
    descriptor: (Ljava/io/Reader;Ljavax/script/ScriptContext;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // java.io.Reader reader
        start local 2 // javax.script.ScriptContext ctxt
         0: .line 149
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* ctxt */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.makeSource:(Ljava/io/Reader;Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/runtime/Source;
            aload 2 /* ctxt */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl:(Ljdk/nashorn/internal/runtime/Source;Ljavax/script/ScriptContext;)Ljava/lang/Object;
            areturn
        end local 2 // javax.script.ScriptContext ctxt
        end local 1 // java.io.Reader reader
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0    1     1  reader  Ljava/io/Reader;
            0    1     2    ctxt  Ljavax/script/ScriptContext;
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
        Name  Flags
      reader  final
      ctxt    final

  public java.lang.Object eval(java.lang.String, javax.script.ScriptContext);
    descriptor: (Ljava/lang/String;Ljavax/script/ScriptContext;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // java.lang.String script
        start local 2 // javax.script.ScriptContext ctxt
         0: .line 154
            aload 0 /* this */
            aload 1 /* script */
            aload 2 /* ctxt */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.makeSource:(Ljava/lang/String;Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/runtime/Source;
            aload 2 /* ctxt */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl:(Ljdk/nashorn/internal/runtime/Source;Ljavax/script/ScriptContext;)Ljava/lang/Object;
            areturn
        end local 2 // javax.script.ScriptContext ctxt
        end local 1 // java.lang.String script
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0    1     1  script  Ljava/lang/String;
            0    1     2    ctxt  Ljavax/script/ScriptContext;
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
        Name  Flags
      script  final
      ctxt    final

  public javax.script.ScriptEngineFactory getFactory();
    descriptor: ()Ljavax/script/ScriptEngineFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
         0: .line 159
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.factory:Ljavax/script/ScriptEngineFactory;
            areturn
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/NashornScriptEngine;

  public javax.script.Bindings createBindings();
    descriptor: ()Ljavax/script/Bindings;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
         0: .line 164
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine._global_per_engine:Z
            ifeq 2
         1: .line 167
            new javax.script.SimpleBindings
            dup
            invokespecial javax.script.SimpleBindings.<init>:()V
            areturn
         2: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.createGlobalMirror:()Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            areturn
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/nashorn/api/scripting/NashornScriptEngine;

  public javax.script.CompiledScript compile(java.io.Reader);
    descriptor: (Ljava/io/Reader;)Ljavax/script/CompiledScript;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // java.io.Reader reader
         0: .line 176
            aload 0 /* this */
            aload 1 /* reader */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.context:Ljavax/script/ScriptContext;
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.makeSource:(Ljava/io/Reader;Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/runtime/Source;
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.asCompiledScript:(Ljdk/nashorn/internal/runtime/Source;)Ljavax/script/CompiledScript;
            areturn
        end local 1 // java.io.Reader reader
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0    1     1  reader  Ljava/io/Reader;
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
        Name  Flags
      reader  final

  public javax.script.CompiledScript compile(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/script/CompiledScript;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // java.lang.String str
         0: .line 181
            aload 0 /* this */
            aload 1 /* str */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.context:Ljavax/script/ScriptContext;
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.makeSource:(Ljava/lang/String;Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/runtime/Source;
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.asCompiledScript:(Ljdk/nashorn/internal/runtime/Source;)Ljavax/script/CompiledScript;
            areturn
        end local 1 // java.lang.String str
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0    1     1   str  Ljava/lang/String;
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
      Name  Flags
      str   final

  public java.lang.Object invokeFunction(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Object[] args
         0: .line 189
            aload 0 /* this */
            aconst_null
            aload 1 /* name */
            aload 2 /* args */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String name
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0    1     1  name  Ljava/lang/String;
            0    1     2  args  [Ljava/lang/Object;
    Exceptions:
      throws javax.script.ScriptException, java.lang.NoSuchMethodException
    MethodParameters:
      Name  Flags
      name  final
      args  final

  public java.lang.Object invokeMethod(java.lang.Object, java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // java.lang.Object thiz
        start local 2 // java.lang.String name
        start local 3 // java.lang.Object[] args
         0: .line 195
            aload 1 /* thiz */
            ifnonnull 2
         1: .line 196
            new java.lang.IllegalArgumentException
            dup
            ldc "thiz.cannot.be.null"
            iconst_0
            anewarray java.lang.String
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.getMessage:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* thiz */
            aload 2 /* name */
            aload 3 /* args */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object[] args
        end local 2 // java.lang.String name
        end local 1 // java.lang.Object thiz
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0    3     1  thiz  Ljava/lang/Object;
            0    3     2  name  Ljava/lang/String;
            0    3     3  args  [Ljava/lang/Object;
    Exceptions:
      throws javax.script.ScriptException, java.lang.NoSuchMethodException
    MethodParameters:
      Name  Flags
      thiz  final
      name  final
      args  final

  public <T> T getInterface(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // java.lang.Class clazz
         0: .line 203
            aload 0 /* this */
            aconst_null
            aload 1 /* clazz */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.getInterfaceInner:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0    1     1  clazz  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      clazz  final

  public <T> T getInterface(, java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // java.lang.Object thiz
        start local 2 // java.lang.Class clazz
         0: .line 208
            aload 1 /* thiz */
            ifnonnull 2
         1: .line 209
            new java.lang.IllegalArgumentException
            dup
            ldc "thiz.cannot.be.null"
            iconst_0
            anewarray java.lang.String
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.getMessage:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* thiz */
            aload 2 /* clazz */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.getInterfaceInner:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.Object thiz
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0    3     1   thiz  Ljava/lang/Object;
            0    3     2  clazz  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      thiz   final
      clazz  final

  private static jdk.nashorn.internal.runtime.Source makeSource(java.io.Reader, javax.script.ScriptContext);
    descriptor: (Ljava/io/Reader;Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.Reader reader
        start local 1 // javax.script.ScriptContext ctxt
         0: .line 218
            aload 1 /* ctxt */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.getScriptName:(Ljavax/script/ScriptContext;)Ljava/lang/String;
            aload 0 /* reader */
            invokestatic jdk.nashorn.internal.runtime.Source.sourceFor:(Ljava/lang/String;Ljava/io/Reader;)Ljdk/nashorn/internal/runtime/Source;
         1: areturn
         2: .line 219
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         3: .line 220
            new javax.script.ScriptException
            dup
            aload 2 /* e */
            invokespecial javax.script.ScriptException.<init>:(Ljava/lang/Exception;)V
            athrow
        end local 2 // java.io.IOException e
        end local 1 // javax.script.ScriptContext ctxt
        end local 0 // java.io.Reader reader
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  reader  Ljava/io/Reader;
            0    4     1    ctxt  Ljavax/script/ScriptContext;
            3    4     2       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
        Name  Flags
      reader  final
      ctxt    final

  private static jdk.nashorn.internal.runtime.Source makeSource(java.lang.String, javax.script.ScriptContext);
    descriptor: (Ljava/lang/String;Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String src
        start local 1 // javax.script.ScriptContext ctxt
         0: .line 225
            aload 1 /* ctxt */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.getScriptName:(Ljavax/script/ScriptContext;)Ljava/lang/String;
            aload 0 /* src */
            invokestatic jdk.nashorn.internal.runtime.Source.sourceFor:(Ljava/lang/String;Ljava/lang/String;)Ljdk/nashorn/internal/runtime/Source;
            areturn
        end local 1 // javax.script.ScriptContext ctxt
        end local 0 // java.lang.String src
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   src  Ljava/lang/String;
            0    1     1  ctxt  Ljavax/script/ScriptContext;
    MethodParameters:
      Name  Flags
      src   final
      ctxt  final

  private static java.lang.String getScriptName(javax.script.ScriptContext);
    descriptor: (Ljavax/script/ScriptContext;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.script.ScriptContext ctxt
         0: .line 229
            aload 0 /* ctxt */
            ldc "javax.script.filename"
            invokeinterface javax.script.ScriptContext.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            astore 1 /* val */
        start local 1 // java.lang.Object val
         1: .line 230
            aload 1 /* val */
            ifnull 2
            aload 1 /* val */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: ldc "<eval>"
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 1 // java.lang.Object val
        end local 0 // javax.script.ScriptContext ctxt
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  ctxt  Ljavax/script/ScriptContext;
            1    4     1   val  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      ctxt  final

  private <T> T getInterfaceInner(, java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=3
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // java.lang.Object thiz
        start local 2 // java.lang.Class clazz
         0: .line 234
            getstatic jdk.nashorn.api.scripting.NashornScriptEngine.$assertionsDisabled:Z
            ifne 1
            aload 1 /* thiz */
            instanceof jdk.nashorn.internal.runtime.ScriptObject
            ifeq 1
            new java.lang.AssertionError
            dup
            ldc "raw ScriptObject not expected here"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 236
      StackMap locals:
      StackMap stack:
            aload 2 /* clazz */
            ifnull 2
            aload 2 /* clazz */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 3
         2: .line 237
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "interface.class.expected"
            iconst_0
            anewarray java.lang.String
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.getMessage:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 241
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 3 /* sm */
        start local 3 // java.lang.SecurityManager sm
         4: .line 242
            aload 3 /* sm */
            ifnull 8
         5: .line 243
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifne 7
         6: .line 244
            new java.lang.SecurityException
            dup
            ldc "implementing.non.public.interface"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.getMessage:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 246
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 2 /* clazz */
            invokestatic jdk.nashorn.internal.runtime.Context.checkPackageAccess:(Ljava/lang/Class;)V
         8: .line 249
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* realSelf */
        start local 4 // jdk.nashorn.internal.runtime.ScriptObject realSelf
         9: .line 250
            aconst_null
            astore 5 /* realGlobal */
        start local 5 // jdk.nashorn.internal.objects.Global realGlobal
        10: .line 251
            aload 1 /* thiz */
            ifnonnull 13
        11: .line 253
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.context:Ljavax/script/ScriptContext;
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.getNashornGlobalFrom:(Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/objects/Global;
            dup
            astore 5 /* realGlobal */
            astore 4 /* realSelf */
        12: .line 254
            goto 19
      StackMap locals: jdk.nashorn.internal.runtime.ScriptObject jdk.nashorn.internal.objects.Global
      StackMap stack:
        13: aload 1 /* thiz */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 19
        14: .line 255
            aload 1 /* thiz */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            astore 6 /* mirror */
        start local 6 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
        15: .line 256
            aload 6 /* mirror */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.getScriptObject:()Ljdk/nashorn/internal/runtime/ScriptObject;
            astore 4 /* realSelf */
        16: .line 257
            aload 6 /* mirror */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.getHomeGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 5 /* realGlobal */
        17: .line 258
            aload 5 /* realGlobal */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.nashornContext:Ljdk/nashorn/internal/runtime/Context;
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.isOfContext:(Ljdk/nashorn/internal/objects/Global;Ljdk/nashorn/internal/runtime/Context;)Z
            ifne 19
        18: .line 259
            new java.lang.IllegalArgumentException
            dup
            ldc "script.object.from.another.engine"
            iconst_0
            anewarray java.lang.String
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.getMessage:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
        19: .line 263
      StackMap locals:
      StackMap stack:
            aload 4 /* realSelf */
            ifnonnull 21
        20: .line 264
            new java.lang.IllegalArgumentException
            dup
            ldc "interface.on.non.script.object"
            iconst_0
            anewarray java.lang.String
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.getMessage:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 268
      StackMap locals:
      StackMap stack:
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 6 /* oldGlobal */
        start local 6 // jdk.nashorn.internal.objects.Global oldGlobal
        22: .line 269
            aload 6 /* oldGlobal */
            aload 5 /* realGlobal */
            if_acmpeq 23
            iconst_1
            goto 24
      StackMap locals: jdk.nashorn.internal.objects.Global
      StackMap stack:
        23: iconst_0
      StackMap locals:
      StackMap stack: int
        24: istore 7 /* globalChanged */
        start local 7 // boolean globalChanged
        25: .line 271
            iload 7 /* globalChanged */
            ifeq 27
        26: .line 272
            aload 5 /* realGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        27: .line 275
      StackMap locals: int
      StackMap stack:
            aload 2 /* clazz */
            aload 4 /* realSelf */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.isInterfaceImplemented:(Ljava/lang/Class;Ljdk/nashorn/internal/runtime/ScriptObject;)Z
            ifne 31
        28: .line 281
            iload 7 /* globalChanged */
            ifeq 30
        29: .line 282
            aload 6 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        30: .line 276
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        31: .line 278
      StackMap locals:
      StackMap stack:
            aload 2 /* clazz */
            aload 4 /* realSelf */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* clazz */
        32: .line 279
            invokestatic java.lang.invoke.MethodHandles.publicLookup:()Ljava/lang/invoke/MethodHandles$Lookup;
        33: .line 278
            invokestatic jdk.nashorn.internal.runtime.linker.JavaAdapterFactory.getConstructor:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
        34: .line 279
            aload 4 /* realSelf */
            invokevirtual java.lang.invoke.MethodHandle.invoke:(Ljdk/nashorn/internal/runtime/ScriptObject;)Ljava/lang/Object;
        35: .line 278
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 9
        36: .line 281
            iload 7 /* globalChanged */
            ifeq 38
        37: .line 282
            aload 6 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        38: .line 278
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine java.lang.Object java.lang.Class java.lang.SecurityManager jdk.nashorn.internal.runtime.ScriptObject jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int top java.lang.Object
      StackMap stack:
            aload 9
            areturn
        39: .line 280
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine java.lang.Object java.lang.Class java.lang.SecurityManager jdk.nashorn.internal.runtime.ScriptObject jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int
      StackMap stack: java.lang.Throwable
            astore 8
        40: .line 281
            iload 7 /* globalChanged */
            ifeq 42
        41: .line 282
            aload 6 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        42: .line 284
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        end local 7 // boolean globalChanged
        end local 6 // jdk.nashorn.internal.objects.Global oldGlobal
        43: .line 285
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine java.lang.Object java.lang.Class java.lang.SecurityManager jdk.nashorn.internal.runtime.ScriptObject jdk.nashorn.internal.objects.Global
      StackMap stack: java.lang.Throwable
            astore 6 /* e */
        start local 6 // java.lang.Throwable e
        44: .line 286
            aload 6 /* e */
            athrow
        end local 6 // java.lang.Throwable e
        45: .line 287
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
        46: .line 288
            new java.lang.RuntimeException
            dup
            aload 6 /* t */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.Throwable t
        end local 5 // jdk.nashorn.internal.objects.Global realGlobal
        end local 4 // jdk.nashorn.internal.runtime.ScriptObject realSelf
        end local 3 // java.lang.SecurityManager sm
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.Object thiz
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   47     0           this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0   47     1           thiz  Ljava/lang/Object;
            0   47     2          clazz  Ljava/lang/Class<TT;>;
            4   47     3             sm  Ljava/lang/SecurityManager;
            9   47     4       realSelf  Ljdk/nashorn/internal/runtime/ScriptObject;
           10   47     5     realGlobal  Ljdk/nashorn/internal/objects/Global;
           15   19     6         mirror  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
           22   43     6      oldGlobal  Ljdk/nashorn/internal/objects/Global;
           25   43     7  globalChanged  Z
           44   45     6              e  Ljava/lang/Throwable;
           46   47     6              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          25    28      39  any
          31    36      39  any
          21    30      43  Class java.lang.RuntimeException
          31    38      43  Class java.lang.RuntimeException
          39    43      43  Class java.lang.RuntimeException
          21    30      43  Class java.lang.Error
          31    38      43  Class java.lang.Error
          39    43      43  Class java.lang.Error
          21    30      45  Class java.lang.Throwable
          31    38      45  Class java.lang.Throwable
          39    43      45  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      thiz   final
      clazz  final

  private jdk.nashorn.internal.objects.Global getNashornGlobalFrom(javax.script.ScriptContext);
    descriptor: (Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/objects/Global;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // javax.script.ScriptContext ctxt
         0: .line 294
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine._global_per_engine:Z
            ifeq 2
         1: .line 296
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.global:Ljdk/nashorn/internal/objects/Global;
            areturn
         2: .line 299
      StackMap locals:
      StackMap stack:
            aload 1 /* ctxt */
            bipush 100
            invokeinterface javax.script.ScriptContext.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         3: .line 301
            aload 2 /* bindings */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 7
         4: .line 302
            aload 0 /* this */
            aload 2 /* bindings */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.globalFromMirror:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)Ljdk/nashorn/internal/objects/Global;
            astore 3 /* glob */
        start local 3 // jdk.nashorn.internal.objects.Global glob
         5: .line 303
            aload 3 /* glob */
            ifnull 7
         6: .line 304
            aload 3 /* glob */
            areturn
        end local 3 // jdk.nashorn.internal.objects.Global glob
         7: .line 309
      StackMap locals: javax.script.Bindings
      StackMap stack:
            aload 2 /* bindings */
            ldc "nashorn.global"
            invokeinterface javax.script.Bindings.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* scope */
        start local 3 // java.lang.Object scope
         8: .line 310
            aload 3 /* scope */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 12
         9: .line 311
            aload 0 /* this */
            aload 3 /* scope */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.globalFromMirror:(Ljdk/nashorn/api/scripting/ScriptObjectMirror;)Ljdk/nashorn/internal/objects/Global;
            astore 4 /* glob */
        start local 4 // jdk.nashorn.internal.objects.Global glob
        10: .line 312
            aload 4 /* glob */
            ifnull 12
        11: .line 313
            aload 4 /* glob */
            areturn
        end local 4 // jdk.nashorn.internal.objects.Global glob
        12: .line 319
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.createGlobalMirror:()Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            astore 4 /* mirror */
        start local 4 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
        13: .line 320
            aload 2 /* bindings */
            ldc "nashorn.global"
            aload 4 /* mirror */
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 323
            aload 4 /* mirror */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.getHomeGlobal:()Ljdk/nashorn/internal/objects/Global;
            aload 1 /* ctxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setInitScriptContext:(Ljavax/script/ScriptContext;)V
        15: .line 324
            aload 4 /* mirror */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.getHomeGlobal:()Ljdk/nashorn/internal/objects/Global;
            areturn
        end local 4 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
        end local 3 // java.lang.Object scope
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptContext ctxt
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0   16     1      ctxt  Ljavax/script/ScriptContext;
            3   16     2  bindings  Ljavax/script/Bindings;
            5    7     3      glob  Ljdk/nashorn/internal/objects/Global;
            8   16     3     scope  Ljava/lang/Object;
           10   12     4      glob  Ljdk/nashorn/internal/objects/Global;
           13   16     4    mirror  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    MethodParameters:
      Name  Flags
      ctxt  final

  private jdk.nashorn.internal.objects.Global globalFromMirror(jdk.nashorn.api.scripting.ScriptObjectMirror);
    descriptor: (Ljdk/nashorn/api/scripting/ScriptObjectMirror;)Ljdk/nashorn/internal/objects/Global;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
         0: .line 329
            aload 1 /* mirror */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.getScriptObject:()Ljdk/nashorn/internal/runtime/ScriptObject;
            astore 2 /* sobj */
        start local 2 // jdk.nashorn.internal.runtime.ScriptObject sobj
         1: .line 330
            aload 2 /* sobj */
            instanceof jdk.nashorn.internal.objects.Global
            ifeq 3
            aload 2 /* sobj */
            checkcast jdk.nashorn.internal.objects.Global
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.nashornContext:Ljdk/nashorn/internal/runtime/Context;
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.isOfContext:(Ljdk/nashorn/internal/objects/Global;Ljdk/nashorn/internal/runtime/Context;)Z
            ifeq 3
         2: .line 331
            aload 2 /* sobj */
            checkcast jdk.nashorn.internal.objects.Global
            areturn
         3: .line 334
      StackMap locals: jdk.nashorn.internal.runtime.ScriptObject
      StackMap stack:
            aconst_null
            areturn
        end local 2 // jdk.nashorn.internal.runtime.ScriptObject sobj
        end local 1 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0    4     1  mirror  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
            1    4     2    sobj  Ljdk/nashorn/internal/runtime/ScriptObject;
    MethodParameters:
        Name  Flags
      mirror  final

  private jdk.nashorn.api.scripting.ScriptObjectMirror createGlobalMirror();
    descriptor: ()Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
         0: .line 339
            aload 0 /* this */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.createNashornGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 1 /* newGlobal */
        start local 1 // jdk.nashorn.internal.objects.Global newGlobal
         1: .line 340
            new jdk.nashorn.api.scripting.ScriptObjectMirror
            dup
            aload 1 /* newGlobal */
            aload 1 /* newGlobal */
            invokespecial jdk.nashorn.api.scripting.ScriptObjectMirror.<init>:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/objects/Global;)V
            areturn
        end local 1 // jdk.nashorn.internal.objects.Global newGlobal
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            1    2     1  newGlobal  Ljdk/nashorn/internal/objects/Global;

  private jdk.nashorn.internal.objects.Global createNashornGlobal();
    descriptor: ()Ljdk/nashorn/internal/objects/Global;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
         0: .line 345
            new jdk.nashorn.api.scripting.NashornScriptEngine$2
            dup
            aload 0 /* this */
            invokespecial jdk.nashorn.api.scripting.NashornScriptEngine$2.<init>:(Ljdk/nashorn/api/scripting/NashornScriptEngine;)V
         1: .line 357
            getstatic jdk.nashorn.api.scripting.NashornScriptEngine.CREATE_GLOBAL_ACC_CTXT:Ljava/security/AccessControlContext;
         2: .line 345
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
            checkcast jdk.nashorn.internal.objects.Global
            astore 1 /* newGlobal */
        start local 1 // jdk.nashorn.internal.objects.Global newGlobal
         3: .line 359
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.nashornContext:Ljdk/nashorn/internal/runtime/Context;
            aload 1 /* newGlobal */
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Context.initGlobal:(Ljdk/nashorn/internal/objects/Global;Ljavax/script/ScriptEngine;)Ljdk/nashorn/internal/objects/Global;
            pop
         4: .line 361
            aload 1 /* newGlobal */
            areturn
        end local 1 // jdk.nashorn.internal.objects.Global newGlobal
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            3    5     1  newGlobal  Ljdk/nashorn/internal/objects/Global;

  private java.lang.Object invokeImpl(java.lang.Object, java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // java.lang.Object selfObject
        start local 2 // java.lang.String name
        start local 3 // java.lang.Object[] args
         0: .line 365
            aload 2 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 366
            getstatic jdk.nashorn.api.scripting.NashornScriptEngine.$assertionsDisabled:Z
            ifne 2
            aload 1 /* selfObject */
            instanceof jdk.nashorn.internal.runtime.ScriptObject
            ifeq 2
            new java.lang.AssertionError
            dup
            ldc "raw ScriptObject not expected here"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 368
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* invokeGlobal */
        start local 4 // jdk.nashorn.internal.objects.Global invokeGlobal
         3: .line 369
            aconst_null
            astore 5 /* selfMirror */
        start local 5 // jdk.nashorn.api.scripting.ScriptObjectMirror selfMirror
         4: .line 370
            aload 1 /* selfObject */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 10
         5: .line 371
            aload 1 /* selfObject */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            astore 5 /* selfMirror */
         6: .line 372
            aload 5 /* selfMirror */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.getHomeGlobal:()Ljdk/nashorn/internal/objects/Global;
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.nashornContext:Ljdk/nashorn/internal/runtime/Context;
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.isOfContext:(Ljdk/nashorn/internal/objects/Global;Ljdk/nashorn/internal/runtime/Context;)Z
            ifne 8
         7: .line 373
            new java.lang.IllegalArgumentException
            dup
            ldc "script.object.from.another.engine"
            iconst_0
            anewarray java.lang.String
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.getMessage:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 375
      StackMap locals: jdk.nashorn.internal.objects.Global jdk.nashorn.api.scripting.ScriptObjectMirror
      StackMap stack:
            aload 5 /* selfMirror */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.getHomeGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 4 /* invokeGlobal */
         9: .line 376
            goto 14
      StackMap locals:
      StackMap stack:
        10: aload 1 /* selfObject */
            ifnonnull 14
        11: .line 378
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.context:Ljavax/script/ScriptContext;
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.getNashornGlobalFrom:(Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/objects/Global;
            astore 6 /* ctxtGlobal */
        start local 6 // jdk.nashorn.internal.objects.Global ctxtGlobal
        12: .line 379
            aload 6 /* ctxtGlobal */
            astore 4 /* invokeGlobal */
        13: .line 380
            aload 6 /* ctxtGlobal */
            aload 6 /* ctxtGlobal */
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.wrap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            astore 5 /* selfMirror */
        end local 6 // jdk.nashorn.internal.objects.Global ctxtGlobal
        14: .line 383
      StackMap locals:
      StackMap stack:
            aload 5 /* selfMirror */
            ifnull 23
        15: .line 385
            aload 5 /* selfMirror */
            aload 2 /* name */
            aload 3 /* args */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.callMember:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.translateUndefined:(Ljava/lang/Object;)Ljava/lang/Object;
        16: areturn
        17: .line 386
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
        18: .line 387
            aload 6 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            astore 7 /* cause */
        start local 7 // java.lang.Throwable cause
        19: .line 388
            aload 7 /* cause */
            instanceof java.lang.NoSuchMethodException
            ifeq 21
        20: .line 389
            aload 7 /* cause */
            checkcast java.lang.NoSuchMethodException
            athrow
        21: .line 391
      StackMap locals: java.lang.Exception java.lang.Throwable
      StackMap stack:
            aload 6 /* e */
            aload 4 /* invokeGlobal */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException:(Ljava/lang/Exception;Ljdk/nashorn/internal/objects/Global;)V
        22: .line 392
            new java.lang.AssertionError
            dup
            ldc "should not reach here"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 7 // java.lang.Throwable cause
        end local 6 // java.lang.Exception e
        23: .line 397
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "interface.on.non.script.object"
            iconst_0
            anewarray java.lang.String
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.getMessage:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // jdk.nashorn.api.scripting.ScriptObjectMirror selfMirror
        end local 4 // jdk.nashorn.internal.objects.Global invokeGlobal
        end local 3 // java.lang.Object[] args
        end local 2 // java.lang.String name
        end local 1 // java.lang.Object selfObject
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   24     0          this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0   24     1    selfObject  Ljava/lang/Object;
            0   24     2          name  Ljava/lang/String;
            0   24     3          args  [Ljava/lang/Object;
            3   24     4  invokeGlobal  Ljdk/nashorn/internal/objects/Global;
            4   24     5    selfMirror  Ljdk/nashorn/api/scripting/ScriptObjectMirror;
           12   14     6    ctxtGlobal  Ljdk/nashorn/internal/objects/Global;
           18   23     6             e  Ljava/lang/Exception;
           19   23     7         cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          15    16      17  Class java.lang.Exception
    Exceptions:
      throws javax.script.ScriptException, java.lang.NoSuchMethodException
    MethodParameters:
            Name  Flags
      selfObject  final
      name        final
      args        final

  private java.lang.Object evalImpl(jdk.nashorn.internal.runtime.Source, javax.script.ScriptContext);
    descriptor: (Ljdk/nashorn/internal/runtime/Source;Ljavax/script/ScriptContext;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // jdk.nashorn.internal.runtime.Source src
        start local 2 // javax.script.ScriptContext ctxt
         0: .line 401
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* src */
            aload 2 /* ctxt */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl:(Ljdk/nashorn/internal/runtime/Source;Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/runtime/ScriptFunction;
            aload 2 /* ctxt */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl:(Ljdk/nashorn/internal/runtime/ScriptFunction;Ljavax/script/ScriptContext;)Ljava/lang/Object;
            areturn
        end local 2 // javax.script.ScriptContext ctxt
        end local 1 // jdk.nashorn.internal.runtime.Source src
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0    1     1   src  Ljdk/nashorn/internal/runtime/Source;
            0    1     2  ctxt  Ljavax/script/ScriptContext;
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
      Name  Flags
      src   final
      ctxt  final

  private java.lang.Object evalImpl(jdk.nashorn.internal.runtime.ScriptFunction, javax.script.ScriptContext);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptFunction;Ljavax/script/ScriptContext;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // jdk.nashorn.internal.runtime.ScriptFunction script
        start local 2 // javax.script.ScriptContext ctxt
         0: .line 405
            aload 0 /* this */
            aload 1 /* script */
            aload 2 /* ctxt */
            aload 0 /* this */
            aload 2 /* ctxt */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.getNashornGlobalFrom:(Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/objects/Global;
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl:(Ljdk/nashorn/internal/runtime/ScriptFunction;Ljavax/script/ScriptContext;Ljdk/nashorn/internal/objects/Global;)Ljava/lang/Object;
            areturn
        end local 2 // javax.script.ScriptContext ctxt
        end local 1 // jdk.nashorn.internal.runtime.ScriptFunction script
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0    1     1  script  Ljdk/nashorn/internal/runtime/ScriptFunction;
            0    1     2    ctxt  Ljavax/script/ScriptContext;
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
        Name  Flags
      script  final
      ctxt    final

  private java.lang.Object evalImpl(jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript, javax.script.ScriptContext, jdk.nashorn.internal.objects.Global);
    descriptor: (Ljdk/nashorn/internal/runtime/Context$MultiGlobalCompiledScript;Ljavax/script/ScriptContext;Ljdk/nashorn/internal/objects/Global;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=11, args_size=4
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript mgcs
        start local 2 // javax.script.ScriptContext ctxt
        start local 3 // jdk.nashorn.internal.objects.Global ctxtGlobal
         0: .line 409
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 4 /* oldGlobal */
        start local 4 // jdk.nashorn.internal.objects.Global oldGlobal
         1: .line 410
            aload 4 /* oldGlobal */
            aload 3 /* ctxtGlobal */
            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 5 /* globalChanged */
        start local 5 // boolean globalChanged
         4: .line 412
            iload 5 /* globalChanged */
            ifeq 6
         5: .line 413
            aload 3 /* ctxtGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         6: .line 416
      StackMap locals: int
      StackMap stack:
            aload 1 /* mgcs */
            aload 3 /* ctxtGlobal */
            invokeinterface jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript.getFunction:(Ljdk/nashorn/internal/objects/Global;)Ljdk/nashorn/internal/runtime/ScriptFunction;
            astore 6 /* script */
        start local 6 // jdk.nashorn.internal.runtime.ScriptFunction script
         7: .line 417
            aload 3 /* ctxtGlobal */
            invokevirtual jdk.nashorn.internal.objects.Global.getScriptContext:()Ljavax/script/ScriptContext;
            astore 7 /* oldCtxt */
        start local 7 // javax.script.ScriptContext oldCtxt
         8: .line 418
            aload 3 /* ctxtGlobal */
            aload 2 /* ctxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setScriptContext:(Ljavax/script/ScriptContext;)V
         9: .line 420
            aload 6 /* script */
            aload 3 /* ctxtGlobal */
            iconst_0
            anewarray java.lang.Object
            invokestatic jdk.nashorn.internal.runtime.ScriptRuntime.apply:(Ljdk/nashorn/internal/runtime/ScriptFunction;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* ctxtGlobal */
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.wrap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.translateUndefined:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 9
        10: .line 422
            aload 3 /* ctxtGlobal */
            aload 7 /* oldCtxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setScriptContext:(Ljavax/script/ScriptContext;)V
        11: .line 428
            iload 5 /* globalChanged */
            ifeq 13
        12: .line 429
            aload 4 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        13: .line 420
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript javax.script.ScriptContext jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int jdk.nashorn.internal.runtime.ScriptFunction javax.script.ScriptContext top java.lang.Object
      StackMap stack:
            aload 9
            areturn
        14: .line 421
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript javax.script.ScriptContext jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int jdk.nashorn.internal.runtime.ScriptFunction javax.script.ScriptContext
      StackMap stack: java.lang.Throwable
            astore 8
        15: .line 422
            aload 3 /* ctxtGlobal */
            aload 7 /* oldCtxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setScriptContext:(Ljavax/script/ScriptContext;)V
        16: .line 423
            aload 8
            athrow
        end local 7 // javax.script.ScriptContext oldCtxt
        end local 6 // jdk.nashorn.internal.runtime.ScriptFunction script
        17: .line 424
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript javax.script.ScriptContext jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
        18: .line 425
            aload 6 /* e */
            aload 3 /* ctxtGlobal */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException:(Ljava/lang/Exception;Ljdk/nashorn/internal/objects/Global;)V
        19: .line 426
            new java.lang.AssertionError
            dup
            ldc "should not reach here"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 6 // java.lang.Exception e
        20: .line 427
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        21: .line 428
            iload 5 /* globalChanged */
            ifeq 23
        22: .line 429
            aload 4 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        23: .line 431
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript javax.script.ScriptContext jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int top top top top java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        end local 5 // boolean globalChanged
        end local 4 // jdk.nashorn.internal.objects.Global oldGlobal
        end local 3 // jdk.nashorn.internal.objects.Global ctxtGlobal
        end local 2 // javax.script.ScriptContext ctxt
        end local 1 // jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript mgcs
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   24     0           this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0   24     1           mgcs  Ljdk/nashorn/internal/runtime/Context$MultiGlobalCompiledScript;
            0   24     2           ctxt  Ljavax/script/ScriptContext;
            0   24     3     ctxtGlobal  Ljdk/nashorn/internal/objects/Global;
            1   24     4      oldGlobal  Ljdk/nashorn/internal/objects/Global;
            4   24     5  globalChanged  Z
            7   17     6         script  Ljdk/nashorn/internal/runtime/ScriptFunction;
            8   17     7        oldCtxt  Ljavax/script/ScriptContext;
           18   20     6              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           9    10      14  any
           4    11      17  Class java.lang.Exception
          14    17      17  Class java.lang.Exception
           4    11      20  any
          14    20      20  any
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
            Name  Flags
      mgcs        final
      ctxt        final
      ctxtGlobal  final

  private java.lang.Object evalImpl(jdk.nashorn.internal.runtime.ScriptFunction, javax.script.ScriptContext, jdk.nashorn.internal.objects.Global);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptFunction;Ljavax/script/ScriptContext;Ljdk/nashorn/internal/objects/Global;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=4
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // jdk.nashorn.internal.runtime.ScriptFunction script
        start local 2 // javax.script.ScriptContext ctxt
        start local 3 // jdk.nashorn.internal.objects.Global ctxtGlobal
         0: .line 435
            aload 1 /* script */
            ifnonnull 2
         1: .line 436
            aconst_null
            areturn
         2: .line 438
      StackMap locals:
      StackMap stack:
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 4 /* oldGlobal */
        start local 4 // jdk.nashorn.internal.objects.Global oldGlobal
         3: .line 439
            aload 4 /* oldGlobal */
            aload 3 /* ctxtGlobal */
            if_acmpeq 4
            iconst_1
            goto 5
      StackMap locals: jdk.nashorn.internal.objects.Global
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* globalChanged */
        start local 5 // boolean globalChanged
         6: .line 441
            iload 5 /* globalChanged */
            ifeq 8
         7: .line 442
            aload 3 /* ctxtGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         8: .line 445
      StackMap locals: int
      StackMap stack:
            aload 3 /* ctxtGlobal */
            invokevirtual jdk.nashorn.internal.objects.Global.getScriptContext:()Ljavax/script/ScriptContext;
            astore 6 /* oldCtxt */
        start local 6 // javax.script.ScriptContext oldCtxt
         9: .line 446
            aload 3 /* ctxtGlobal */
            aload 2 /* ctxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setScriptContext:(Ljavax/script/ScriptContext;)V
        10: .line 448
            aload 1 /* script */
            aload 3 /* ctxtGlobal */
            iconst_0
            anewarray java.lang.Object
            invokestatic jdk.nashorn.internal.runtime.ScriptRuntime.apply:(Ljdk/nashorn/internal/runtime/ScriptFunction;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* ctxtGlobal */
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.wrap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.translateUndefined:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8
        11: .line 450
            aload 3 /* ctxtGlobal */
            aload 6 /* oldCtxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setScriptContext:(Ljavax/script/ScriptContext;)V
        12: .line 456
            iload 5 /* globalChanged */
            ifeq 14
        13: .line 457
            aload 4 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        14: .line 448
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.ScriptFunction javax.script.ScriptContext jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int javax.script.ScriptContext top java.lang.Object
      StackMap stack:
            aload 8
            areturn
        15: .line 449
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.ScriptFunction javax.script.ScriptContext jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int javax.script.ScriptContext
      StackMap stack: java.lang.Throwable
            astore 7
        16: .line 450
            aload 3 /* ctxtGlobal */
            aload 6 /* oldCtxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setScriptContext:(Ljavax/script/ScriptContext;)V
        17: .line 451
            aload 7
            athrow
        end local 6 // javax.script.ScriptContext oldCtxt
        18: .line 452
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.ScriptFunction javax.script.ScriptContext jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
        19: .line 453
            aload 6 /* e */
            aload 3 /* ctxtGlobal */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException:(Ljava/lang/Exception;Ljdk/nashorn/internal/objects/Global;)V
        20: .line 454
            new java.lang.AssertionError
            dup
            ldc "should not reach here"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 6 // java.lang.Exception e
        21: .line 455
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        22: .line 456
            iload 5 /* globalChanged */
            ifeq 24
        23: .line 457
            aload 4 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        24: .line 459
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.ScriptFunction javax.script.ScriptContext jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int top top top java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        end local 5 // boolean globalChanged
        end local 4 // jdk.nashorn.internal.objects.Global oldGlobal
        end local 3 // jdk.nashorn.internal.objects.Global ctxtGlobal
        end local 2 // javax.script.ScriptContext ctxt
        end local 1 // jdk.nashorn.internal.runtime.ScriptFunction script
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   25     0           this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0   25     1         script  Ljdk/nashorn/internal/runtime/ScriptFunction;
            0   25     2           ctxt  Ljavax/script/ScriptContext;
            0   25     3     ctxtGlobal  Ljdk/nashorn/internal/objects/Global;
            3   25     4      oldGlobal  Ljdk/nashorn/internal/objects/Global;
            6   25     5  globalChanged  Z
            9   18     6        oldCtxt  Ljavax/script/ScriptContext;
           19   21     6              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          10    11      15  any
           6    12      18  Class java.lang.Exception
          15    18      18  Class java.lang.Exception
           6    12      21  any
          15    21      21  any
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
            Name  Flags
      script      final
      ctxt        final
      ctxtGlobal  final

  private static void throwAsScriptException(java.lang.Exception, jdk.nashorn.internal.objects.Global);
    descriptor: (Ljava/lang/Exception;Ljdk/nashorn/internal/objects/Global;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // java.lang.Exception e
        start local 1 // jdk.nashorn.internal.objects.Global global
         0: .line 463
            aload 0 /* e */
            instanceof javax.script.ScriptException
            ifeq 2
         1: .line 464
            aload 0 /* e */
            checkcast javax.script.ScriptException
            athrow
         2: .line 465
      StackMap locals:
      StackMap stack:
            aload 0 /* e */
            instanceof jdk.nashorn.api.scripting.NashornException
            ifeq 11
         3: .line 466
            aload 0 /* e */
            checkcast jdk.nashorn.api.scripting.NashornException
            astore 2 /* ne */
        start local 2 // jdk.nashorn.api.scripting.NashornException ne
         4: .line 467
            new javax.script.ScriptException
            dup
         5: .line 468
            aload 2 /* ne */
            invokevirtual jdk.nashorn.api.scripting.NashornException.getMessage:()Ljava/lang/String;
            aload 2 /* ne */
            invokevirtual jdk.nashorn.api.scripting.NashornException.getFileName:()Ljava/lang/String;
         6: .line 469
            aload 2 /* ne */
            invokevirtual jdk.nashorn.api.scripting.NashornException.getLineNumber:()I
            aload 2 /* ne */
            invokevirtual jdk.nashorn.api.scripting.NashornException.getColumnNumber:()I
         7: .line 467
            invokespecial javax.script.ScriptException.<init>:(Ljava/lang/String;Ljava/lang/String;II)V
            astore 3 /* se */
        start local 3 // javax.script.ScriptException se
         8: .line 470
            aload 2 /* ne */
            aload 1 /* global */
            invokevirtual jdk.nashorn.api.scripting.NashornException.initEcmaError:(Ljdk/nashorn/internal/runtime/ScriptObject;)Ljdk/nashorn/api/scripting/NashornException;
            pop
         9: .line 471
            aload 3 /* se */
            aload 0 /* e */
            invokevirtual javax.script.ScriptException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        10: .line 472
            aload 3 /* se */
            athrow
        end local 3 // javax.script.ScriptException se
        end local 2 // jdk.nashorn.api.scripting.NashornException ne
        11: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* e */
            instanceof java.lang.RuntimeException
            ifeq 13
        12: .line 474
            aload 0 /* e */
            checkcast java.lang.RuntimeException
            athrow
        13: .line 477
      StackMap locals:
      StackMap stack:
            new javax.script.ScriptException
            dup
            aload 0 /* e */
            invokespecial javax.script.ScriptException.<init>:(Ljava/lang/Exception;)V
            athrow
        end local 1 // jdk.nashorn.internal.objects.Global global
        end local 0 // java.lang.Exception e
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0       e  Ljava/lang/Exception;
            0   14     1  global  Ljdk/nashorn/internal/objects/Global;
            4   11     2      ne  Ljdk/nashorn/api/scripting/NashornException;
            8   11     3      se  Ljavax/script/ScriptException;
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
        Name  Flags
      e       final
      global  final

  private javax.script.CompiledScript asCompiledScript(jdk.nashorn.internal.runtime.Source);
    descriptor: (Ljdk/nashorn/internal/runtime/Source;)Ljavax/script/CompiledScript;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // jdk.nashorn.internal.runtime.Source source
         0: .line 484
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 4 /* oldGlobal */
        start local 4 // jdk.nashorn.internal.objects.Global oldGlobal
         1: .line 485
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.context:Ljavax/script/ScriptContext;
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.getNashornGlobalFrom:(Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/objects/Global;
            astore 5 /* newGlobal */
        start local 5 // jdk.nashorn.internal.objects.Global newGlobal
         2: .line 486
            aload 4 /* oldGlobal */
            aload 5 /* newGlobal */
            if_acmpeq 3
            iconst_1
            goto 4
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.Source top top jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 6 /* globalChanged */
        start local 6 // boolean globalChanged
         5: .line 488
            iload 6 /* globalChanged */
            ifeq 7
         6: .line 489
            aload 5 /* newGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         7: .line 492
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.nashornContext:Ljdk/nashorn/internal/runtime/Context;
            aload 1 /* source */
            invokevirtual jdk.nashorn.internal.runtime.Context.compileScript:(Ljdk/nashorn/internal/runtime/Source;)Ljdk/nashorn/internal/runtime/Context$MultiGlobalCompiledScript;
            astore 2 /* mgcs */
        start local 2 // jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript mgcs
         8: .line 493
            aload 2 /* mgcs */
            aload 5 /* newGlobal */
            invokeinterface jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript.getFunction:(Ljdk/nashorn/internal/objects/Global;)Ljdk/nashorn/internal/runtime/ScriptFunction;
            astore 3 /* func */
        start local 3 // jdk.nashorn.internal.runtime.ScriptFunction func
         9: .line 494
            goto 17
        end local 3 // jdk.nashorn.internal.runtime.ScriptFunction func
        end local 2 // jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript mgcs
      StackMap locals:
      StackMap stack: java.lang.Exception
        10: astore 7 /* e */
        start local 7 // java.lang.Exception e
        11: .line 495
            aload 7 /* e */
            aload 5 /* newGlobal */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException:(Ljava/lang/Exception;Ljdk/nashorn/internal/objects/Global;)V
        12: .line 496
            new java.lang.AssertionError
            dup
            ldc "should not reach here"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 7 // java.lang.Exception e
        13: .line 497
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        14: .line 498
            iload 6 /* globalChanged */
            ifeq 16
        15: .line 499
            aload 4 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        16: .line 501
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.Source top top jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        start local 2 // jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript mgcs
        start local 3 // jdk.nashorn.internal.runtime.ScriptFunction func
        17: .line 498
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.Source jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript jdk.nashorn.internal.runtime.ScriptFunction jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int
      StackMap stack:
            iload 6 /* globalChanged */
            ifeq 19
        18: .line 499
            aload 4 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        19: .line 503
      StackMap locals:
      StackMap stack:
            new jdk.nashorn.api.scripting.NashornScriptEngine$3
            dup
            aload 0 /* this */
            aload 3 /* func */
            aload 2 /* mgcs */
            invokespecial jdk.nashorn.api.scripting.NashornScriptEngine$3.<init>:(Ljdk/nashorn/api/scripting/NashornScriptEngine;Ljdk/nashorn/internal/runtime/ScriptFunction;Ljdk/nashorn/internal/runtime/Context$MultiGlobalCompiledScript;)V
            areturn
        end local 6 // boolean globalChanged
        end local 5 // jdk.nashorn.internal.objects.Global newGlobal
        end local 4 // jdk.nashorn.internal.objects.Global oldGlobal
        end local 3 // jdk.nashorn.internal.runtime.ScriptFunction func
        end local 2 // jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript mgcs
        end local 1 // jdk.nashorn.internal.runtime.Source source
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0           this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0   20     1         source  Ljdk/nashorn/internal/runtime/Source;
            8   10     2           mgcs  Ljdk/nashorn/internal/runtime/Context$MultiGlobalCompiledScript;
           17   20     2           mgcs  Ljdk/nashorn/internal/runtime/Context$MultiGlobalCompiledScript;
            9   10     3           func  Ljdk/nashorn/internal/runtime/ScriptFunction;
           17   20     3           func  Ljdk/nashorn/internal/runtime/ScriptFunction;
            1   20     4      oldGlobal  Ljdk/nashorn/internal/objects/Global;
            2   20     5      newGlobal  Ljdk/nashorn/internal/objects/Global;
            5   20     6  globalChanged  Z
           11   13     7              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     9      10  Class java.lang.Exception
           5    13      13  any
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
        Name  Flags
      source  final

  private jdk.nashorn.internal.runtime.ScriptFunction compileImpl(jdk.nashorn.internal.runtime.Source, javax.script.ScriptContext);
    descriptor: (Ljdk/nashorn/internal/runtime/Source;Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/runtime/ScriptFunction;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // jdk.nashorn.internal.runtime.Source source
        start local 2 // javax.script.ScriptContext ctxt
         0: .line 523
            aload 0 /* this */
            aload 1 /* source */
            aload 0 /* this */
            aload 2 /* ctxt */
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.getNashornGlobalFrom:(Ljavax/script/ScriptContext;)Ljdk/nashorn/internal/objects/Global;
            invokevirtual jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl:(Ljdk/nashorn/internal/runtime/Source;Ljdk/nashorn/internal/objects/Global;)Ljdk/nashorn/internal/runtime/ScriptFunction;
            areturn
        end local 2 // javax.script.ScriptContext ctxt
        end local 1 // jdk.nashorn.internal.runtime.Source source
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0    1     1  source  Ljdk/nashorn/internal/runtime/Source;
            0    1     2    ctxt  Ljavax/script/ScriptContext;
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
        Name  Flags
      source  final
      ctxt    final

  private jdk.nashorn.internal.runtime.ScriptFunction compileImpl(jdk.nashorn.internal.runtime.Source, jdk.nashorn.internal.objects.Global);
    descriptor: (Ljdk/nashorn/internal/runtime/Source;Ljdk/nashorn/internal/objects/Global;)Ljdk/nashorn/internal/runtime/ScriptFunction;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
        start local 1 // jdk.nashorn.internal.runtime.Source source
        start local 2 // jdk.nashorn.internal.objects.Global newGlobal
         0: .line 527
            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 528
            aload 3 /* oldGlobal */
            aload 2 /* newGlobal */
            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 530
            iload 4 /* globalChanged */
            ifeq 6
         5: .line 531
            aload 2 /* newGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         6: .line 534
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.nashornContext:Ljdk/nashorn/internal/runtime/Context;
            aload 1 /* source */
            aload 2 /* newGlobal */
            invokevirtual jdk.nashorn.internal.runtime.Context.compileScript:(Ljdk/nashorn/internal/runtime/Source;Ljdk/nashorn/internal/runtime/ScriptObject;)Ljdk/nashorn/internal/runtime/ScriptFunction;
            astore 7
         7: .line 539
            iload 4 /* globalChanged */
            ifeq 9
         8: .line 540
            aload 3 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         9: .line 534
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.Source jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int top top jdk.nashorn.internal.runtime.ScriptFunction
      StackMap stack:
            aload 7
            areturn
        10: .line 535
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.Source jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        11: .line 536
            aload 5 /* e */
            aload 2 /* newGlobal */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException:(Ljava/lang/Exception;Ljdk/nashorn/internal/objects/Global;)V
        12: .line 537
            new java.lang.AssertionError
            dup
            ldc "should not reach here"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 5 // java.lang.Exception e
        13: .line 538
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        14: .line 539
            iload 4 /* globalChanged */
            ifeq 16
        15: .line 540
            aload 3 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        16: .line 542
      StackMap locals: jdk.nashorn.api.scripting.NashornScriptEngine jdk.nashorn.internal.runtime.Source jdk.nashorn.internal.objects.Global jdk.nashorn.internal.objects.Global int top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        end local 4 // boolean globalChanged
        end local 3 // jdk.nashorn.internal.objects.Global oldGlobal
        end local 2 // jdk.nashorn.internal.objects.Global newGlobal
        end local 1 // jdk.nashorn.internal.runtime.Source source
        end local 0 // jdk.nashorn.api.scripting.NashornScriptEngine this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0   17     1         source  Ljdk/nashorn/internal/runtime/Source;
            0   17     2      newGlobal  Ljdk/nashorn/internal/objects/Global;
            1   17     3      oldGlobal  Ljdk/nashorn/internal/objects/Global;
            4   17     4  globalChanged  Z
           11   13     5              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     7      10  Class java.lang.Exception
           4     7      13  any
          10    13      13  any
    Exceptions:
      throws javax.script.ScriptException
    MethodParameters:
           Name  Flags
      source     final
      newGlobal  final

  private static boolean isInterfaceImplemented(java.lang.Class<?>, jdk.nashorn.internal.runtime.ScriptObject);
    descriptor: (Ljava/lang/Class;Ljdk/nashorn/internal/runtime/ScriptObject;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.lang.Class iface
        start local 1 // jdk.nashorn.internal.runtime.ScriptObject sobj
         0: .line 546
            aload 0 /* iface */
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 10
      StackMap locals: java.lang.Class jdk.nashorn.internal.runtime.ScriptObject top int int java.lang.reflect.Method[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* method */
        start local 2 // java.lang.reflect.Method method
         2: .line 548
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpne 4
         3: .line 549
            goto 9
         4: .line 553
      StackMap locals: java.lang.Class jdk.nashorn.internal.runtime.ScriptObject java.lang.reflect.Method int int java.lang.reflect.Method[]
      StackMap stack:
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
            ifne 6
         5: .line 554
            goto 9
         6: .line 557
      StackMap locals:
      StackMap stack:
            aload 1 /* sobj */
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 6 /* obj */
        start local 6 // java.lang.Object obj
         7: .line 558
            aload 6 /* obj */
            instanceof jdk.nashorn.internal.runtime.ScriptFunction
            ifne 9
         8: .line 559
            iconst_0
            ireturn
        end local 6 // java.lang.Object obj
        end local 2 // java.lang.reflect.Method method
         9: .line 546
      StackMap locals: java.lang.Class jdk.nashorn.internal.runtime.ScriptObject top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        10: iload 3
            iload 4
            if_icmplt 1
        11: .line 562
            iconst_1
            ireturn
        end local 1 // jdk.nashorn.internal.runtime.ScriptObject sobj
        end local 0 // java.lang.Class iface
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0   iface  Ljava/lang/Class<*>;
            0   12     1    sobj  Ljdk/nashorn/internal/runtime/ScriptObject;
            2    9     2  method  Ljava/lang/reflect/Method;
            7    9     6     obj  Ljava/lang/Object;
    Signature: (Ljava/lang/Class<*>;Ljdk/nashorn/internal/runtime/ScriptObject;)Z
    MethodParameters:
       Name  Flags
      iface  final
      sobj   final

  private static boolean isOfContext(jdk.nashorn.internal.objects.Global, jdk.nashorn.internal.runtime.Context);
    descriptor: (Ljdk/nashorn/internal/objects/Global;Ljdk/nashorn/internal/runtime/Context;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.objects.Global global
        start local 1 // jdk.nashorn.internal.runtime.Context context
         0: .line 566
            aload 0 /* global */
            aload 1 /* context */
            invokevirtual jdk.nashorn.internal.objects.Global.isOfContext:(Ljdk/nashorn/internal/runtime/Context;)Z
            ireturn
        end local 1 // jdk.nashorn.internal.runtime.Context context
        end local 0 // jdk.nashorn.internal.objects.Global global
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0   global  Ljdk/nashorn/internal/objects/Global;
            0    1     1  context  Ljdk/nashorn/internal/runtime/Context;
    MethodParameters:
         Name  Flags
      global   final
      context  final
}
SourceFile: "NashornScriptEngine.java"
NestMembers:
  jdk.nashorn.api.scripting.NashornScriptEngine$1  jdk.nashorn.api.scripting.NashornScriptEngine$2  jdk.nashorn.api.scripting.NashornScriptEngine$3
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  jdk.nashorn.api.scripting.NashornScriptEngine$1
  jdk.nashorn.api.scripting.NashornScriptEngine$2
  jdk.nashorn.api.scripting.NashornScriptEngine$3
  public abstract MultiGlobalCompiledScript = jdk.nashorn.internal.runtime.Context$MultiGlobalCompiledScript of jdk.nashorn.internal.runtime.Context
  public ThrowErrorManager = jdk.nashorn.internal.runtime.Context$ThrowErrorManager of jdk.nashorn.internal.runtime.Context