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 76
            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 89
            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 90
            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 107
            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 108
            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 84
            new java.security.Permissions
            dup
            invokespecial java.security.Permissions.<init>:()V
            astore 1 /* perms */
        start local 1 // java.security.Permissions perms
         1: .line 85
            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 86
            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 113
            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 114
      StackMap locals:
      StackMap stack: java.util.MissingResourceException
            pop
         3: .line 115
            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 119
            aload 0 /* this */
            invokespecial javax.script.AbstractScriptEngine.<init>:()V
         1: .line 120
            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 121
      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 122
            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 123
            aload 5 /* options */
            aload 2 /* args */
            invokevirtual jdk.nashorn.internal.runtime.options.Options.process:([Ljava/lang/String;)V
         5: .line 126
            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 128
            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 140
            getstatic jdk.nashorn.api.scripting.NashornScriptEngine.CREATE_CONTEXT_ACC_CTXT:Ljava/security/AccessControlContext;
         8: .line 128
            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 142
            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._no_deprecation_warning:Z
            ifne 11
        10: .line 143
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Warning: Nashorn engine is planned to be removed from a future JDK release"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 147
      StackMap locals: jdk.nashorn.internal.runtime.options.Options jdk.nashorn.internal.runtime.ErrorManager
      StackMap stack:
            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
        12: .line 150
            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;
        13: .line 152
            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
        14: .line 153
            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   15     0         this  Ljdk/nashorn/api/scripting/NashornScriptEngine;
            0   15     1      factory  Ljdk/nashorn/api/scripting/NashornScriptEngineFactory;
            0   15     2         args  [Ljava/lang/String;
            0   15     3    appLoader  Ljava/lang/ClassLoader;
            0   15     4  classFilter  Ljdk/nashorn/api/scripting/ClassFilter;
            4   15     5      options  Ljdk/nashorn/internal/runtime/options/Options;
            6   15     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 157
            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 162
            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 167
            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 172
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine._global_per_engine:Z
            ifeq 2
         1: .line 175
            new javax.script.SimpleBindings
            dup
            invokespecial javax.script.SimpleBindings.<init>:()V
            areturn
         2: .line 177
      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 184
            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 189
            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 197
            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 203
            aload 1 /* thiz */
            ifnonnull 2
         1: .line 204
            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 206
      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 211
            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 216
            aload 1 /* thiz */
            ifnonnull 2
         1: .line 217
            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 219
      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 226
            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 227
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         3: .line 228
            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 233
            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 237
            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 238
            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 242
            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 244
      StackMap locals:
      StackMap stack:
            aload 2 /* clazz */
            ifnull 2
            aload 2 /* clazz */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 3
         2: .line 245
      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 249
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 3 /* sm */
        start local 3 // java.lang.SecurityManager sm
         4: .line 250
            aload 3 /* sm */
            ifnull 8
         5: .line 251
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifne 7
         6: .line 252
            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 254
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 2 /* clazz */
            invokestatic jdk.nashorn.internal.runtime.Context.checkPackageAccess:(Ljava/lang/Class;)V
         8: .line 257
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* realSelf */
        start local 4 // jdk.nashorn.internal.runtime.ScriptObject realSelf
         9: .line 258
            aconst_null
            astore 5 /* realGlobal */
        start local 5 // jdk.nashorn.internal.objects.Global realGlobal
        10: .line 259
            aload 1 /* thiz */
            ifnonnull 13
        11: .line 261
            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 262
            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 263
            aload 1 /* thiz */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            astore 6 /* mirror */
        start local 6 // jdk.nashorn.api.scripting.ScriptObjectMirror mirror
        15: .line 264
            aload 6 /* mirror */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.getScriptObject:()Ljdk/nashorn/internal/runtime/ScriptObject;
            astore 4 /* realSelf */
        16: .line 265
            aload 6 /* mirror */
            invokevirtual jdk.nashorn.api.scripting.ScriptObjectMirror.getHomeGlobal:()Ljdk/nashorn/internal/objects/Global;
            astore 5 /* realGlobal */
        17: .line 266
            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 267
            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 271
      StackMap locals:
      StackMap stack:
            aload 4 /* realSelf */
            ifnonnull 21
        20: .line 272
            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 276
      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 277
            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 279
            iload 7 /* globalChanged */
            ifeq 27
        26: .line 280
            aload 5 /* realGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        27: .line 283
      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 289
            iload 7 /* globalChanged */
            ifeq 30
        29: .line 290
            aload 6 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        30: .line 284
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        31: .line 286
      StackMap locals:
      StackMap stack:
            aload 2 /* clazz */
            aload 4 /* realSelf */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* clazz */
        32: .line 287
            invokestatic java.lang.invoke.MethodHandles.publicLookup:()Ljava/lang/invoke/MethodHandles$Lookup;
        33: .line 286
            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 287
            aload 4 /* realSelf */
            invokevirtual java.lang.invoke.MethodHandle.invoke:(Ljdk/nashorn/internal/runtime/ScriptObject;)Ljava/lang/Object;
        35: .line 286
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 9
        36: .line 289
            iload 7 /* globalChanged */
            ifeq 38
        37: .line 290
            aload 6 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        38: .line 286
      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 288
      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 289
            iload 7 /* globalChanged */
            ifeq 42
        41: .line 290
            aload 6 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        42: .line 292
      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 293
      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 294
            aload 6 /* e */
            athrow
        end local 6 // java.lang.Throwable e
        45: .line 295
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
        46: .line 296
            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 302
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine._global_per_engine:Z
            ifeq 2
         1: .line 304
            aload 0 /* this */
            getfield jdk.nashorn.api.scripting.NashornScriptEngine.global:Ljdk/nashorn/internal/objects/Global;
            areturn
         2: .line 307
      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 309
            aload 2 /* bindings */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 7
         4: .line 310
            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 311
            aload 3 /* glob */
            ifnull 7
         6: .line 312
            aload 3 /* glob */
            areturn
        end local 3 // jdk.nashorn.internal.objects.Global glob
         7: .line 317
      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 318
            aload 3 /* scope */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 12
         9: .line 319
            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 320
            aload 4 /* glob */
            ifnull 12
        11: .line 321
            aload 4 /* glob */
            areturn
        end local 4 // jdk.nashorn.internal.objects.Global glob
        12: .line 327
      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 328
            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 331
            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 332
            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 337
            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 338
            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 339
            aload 2 /* sobj */
            checkcast jdk.nashorn.internal.objects.Global
            areturn
         3: .line 342
      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 347
            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 348
            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 353
            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 365
            getstatic jdk.nashorn.api.scripting.NashornScriptEngine.CREATE_GLOBAL_ACC_CTXT:Ljava/security/AccessControlContext;
         2: .line 353
            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 367
            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 369
            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 373
            aload 2 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 374
            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 376
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* invokeGlobal */
        start local 4 // jdk.nashorn.internal.objects.Global invokeGlobal
         3: .line 377
            aconst_null
            astore 5 /* selfMirror */
        start local 5 // jdk.nashorn.api.scripting.ScriptObjectMirror selfMirror
         4: .line 378
            aload 1 /* selfObject */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 10
         5: .line 379
            aload 1 /* selfObject */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            astore 5 /* selfMirror */
         6: .line 380
            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 381
            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 383
      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 384
            goto 14
      StackMap locals:
      StackMap stack:
        10: aload 1 /* selfObject */
            ifnonnull 14
        11: .line 386
            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 387
            aload 6 /* ctxtGlobal */
            astore 4 /* invokeGlobal */
        13: .line 388
            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 391
      StackMap locals:
      StackMap stack:
            aload 5 /* selfMirror */
            ifnull 23
        15: .line 393
            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 394
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
        18: .line 395
            aload 6 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            astore 7 /* cause */
        start local 7 // java.lang.Throwable cause
        19: .line 396
            aload 7 /* cause */
            instanceof java.lang.NoSuchMethodException
            ifeq 21
        20: .line 397
            aload 7 /* cause */
            checkcast java.lang.NoSuchMethodException
            athrow
        21: .line 399
      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 400
            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 405
      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 409
            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 413
            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 417
            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 418
            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 420
            iload 5 /* globalChanged */
            ifeq 6
         5: .line 421
            aload 3 /* ctxtGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         6: .line 424
      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 425
            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 426
            aload 3 /* ctxtGlobal */
            aload 2 /* ctxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setScriptContext:(Ljavax/script/ScriptContext;)V
         9: .line 428
            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 430
            aload 3 /* ctxtGlobal */
            aload 7 /* oldCtxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setScriptContext:(Ljavax/script/ScriptContext;)V
        11: .line 436
            iload 5 /* globalChanged */
            ifeq 13
        12: .line 437
            aload 4 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        13: .line 428
      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 429
      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 430
            aload 3 /* ctxtGlobal */
            aload 7 /* oldCtxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setScriptContext:(Ljavax/script/ScriptContext;)V
        16: .line 431
            aload 8
            athrow
        end local 7 // javax.script.ScriptContext oldCtxt
        end local 6 // jdk.nashorn.internal.runtime.ScriptFunction script
        17: .line 432
      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 433
            aload 6 /* e */
            aload 3 /* ctxtGlobal */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException:(Ljava/lang/Exception;Ljdk/nashorn/internal/objects/Global;)V
        19: .line 434
            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 435
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        21: .line 436
            iload 5 /* globalChanged */
            ifeq 23
        22: .line 437
            aload 4 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        23: .line 439
      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 443
            aload 1 /* script */
            ifnonnull 2
         1: .line 444
            aconst_null
            areturn
         2: .line 446
      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 447
            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 449
            iload 5 /* globalChanged */
            ifeq 8
         7: .line 450
            aload 3 /* ctxtGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         8: .line 453
      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 454
            aload 3 /* ctxtGlobal */
            aload 2 /* ctxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setScriptContext:(Ljavax/script/ScriptContext;)V
        10: .line 456
            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 458
            aload 3 /* ctxtGlobal */
            aload 6 /* oldCtxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setScriptContext:(Ljavax/script/ScriptContext;)V
        12: .line 464
            iload 5 /* globalChanged */
            ifeq 14
        13: .line 465
            aload 4 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        14: .line 456
      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 457
      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 458
            aload 3 /* ctxtGlobal */
            aload 6 /* oldCtxt */
            invokevirtual jdk.nashorn.internal.objects.Global.setScriptContext:(Ljavax/script/ScriptContext;)V
        17: .line 459
            aload 7
            athrow
        end local 6 // javax.script.ScriptContext oldCtxt
        18: .line 460
      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 461
            aload 6 /* e */
            aload 3 /* ctxtGlobal */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException:(Ljava/lang/Exception;Ljdk/nashorn/internal/objects/Global;)V
        20: .line 462
            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 463
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        22: .line 464
            iload 5 /* globalChanged */
            ifeq 24
        23: .line 465
            aload 4 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        24: .line 467
      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 471
            aload 0 /* e */
            instanceof javax.script.ScriptException
            ifeq 2
         1: .line 472
            aload 0 /* e */
            checkcast javax.script.ScriptException
            athrow
         2: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* e */
            instanceof jdk.nashorn.api.scripting.NashornException
            ifeq 11
         3: .line 474
            aload 0 /* e */
            checkcast jdk.nashorn.api.scripting.NashornException
            astore 2 /* ne */
        start local 2 // jdk.nashorn.api.scripting.NashornException ne
         4: .line 475
            new javax.script.ScriptException
            dup
         5: .line 476
            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 477
            aload 2 /* ne */
            invokevirtual jdk.nashorn.api.scripting.NashornException.getLineNumber:()I
            aload 2 /* ne */
            invokevirtual jdk.nashorn.api.scripting.NashornException.getColumnNumber:()I
         7: .line 475
            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 478
            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 479
            aload 3 /* se */
            aload 0 /* e */
            invokevirtual javax.script.ScriptException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        10: .line 480
            aload 3 /* se */
            athrow
        end local 3 // javax.script.ScriptException se
        end local 2 // jdk.nashorn.api.scripting.NashornException ne
        11: .line 481
      StackMap locals:
      StackMap stack:
            aload 0 /* e */
            instanceof java.lang.RuntimeException
            ifeq 13
        12: .line 482
            aload 0 /* e */
            checkcast java.lang.RuntimeException
            athrow
        13: .line 485
      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 492
            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 493
            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 494
            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 496
            iload 6 /* globalChanged */
            ifeq 7
         6: .line 497
            aload 5 /* newGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         7: .line 500
      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 501
            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 502
            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 503
            aload 7 /* e */
            aload 5 /* newGlobal */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException:(Ljava/lang/Exception;Ljdk/nashorn/internal/objects/Global;)V
        12: .line 504
            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 505
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        14: .line 506
            iload 6 /* globalChanged */
            ifeq 16
        15: .line 507
            aload 4 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        16: .line 509
      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 506
      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 507
            aload 4 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        19: .line 511
      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 531
            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 535
            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 536
            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 538
            iload 4 /* globalChanged */
            ifeq 6
         5: .line 539
            aload 2 /* newGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         6: .line 542
      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 547
            iload 4 /* globalChanged */
            ifeq 9
         8: .line 548
            aload 3 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
         9: .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 top jdk.nashorn.internal.runtime.ScriptFunction
      StackMap stack:
            aload 7
            areturn
        10: .line 543
      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 544
            aload 5 /* e */
            aload 2 /* newGlobal */
            invokestatic jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException:(Ljava/lang/Exception;Ljdk/nashorn/internal/objects/Global;)V
        12: .line 545
            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 546
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        14: .line 547
            iload 4 /* globalChanged */
            ifeq 16
        15: .line 548
            aload 3 /* oldGlobal */
            invokestatic jdk.nashorn.internal.runtime.Context.setGlobal:(Ljdk/nashorn/internal/objects/Global;)V
        16: .line 550
      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 554
            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 556
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpne 4
         3: .line 557
            goto 9
         4: .line 561
      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 562
            goto 9
         6: .line 565
      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 566
            aload 6 /* obj */
            instanceof jdk.nashorn.internal.runtime.ScriptFunction
            ifne 9
         8: .line 567
            iconst_0
            ireturn
        end local 6 // java.lang.Object obj
        end local 2 // java.lang.reflect.Method method
         9: .line 554
      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 570
            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 574
            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
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "11", forRemoval = true)