public final class jdk.nashorn.api.scripting.ScriptUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.api.scripting.ScriptUtils
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.ScriptUtils this
         0: .line 43
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.nashorn.api.scripting.ScriptUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/api/scripting/ScriptUtils;

  public static java.lang.String parse(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String code
        start local 1 // java.lang.String name
        start local 2 // boolean includeLoc
         0: .line 55
            aload 0 /* code */
            aload 1 /* name */
            iload 2 /* includeLoc */
            invokestatic jdk.nashorn.internal.runtime.ScriptRuntime.parse:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
            areturn
        end local 2 // boolean includeLoc
        end local 1 // java.lang.String name
        end local 0 // java.lang.String code
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        code  Ljava/lang/String;
            0    1     1        name  Ljava/lang/String;
            0    1     2  includeLoc  Z
    MethodParameters:
            Name  Flags
      code        final
      name        final
      includeLoc  final

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

  public static java.lang.Object makeSynchronizedFunction(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Object func
        start local 1 // java.lang.Object sync
         0: .line 80
            aload 0 /* func */
            invokestatic jdk.nashorn.api.scripting.ScriptUtils.unwrap:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* unwrapped */
        start local 2 // java.lang.Object unwrapped
         1: .line 81
            aload 2 /* unwrapped */
            instanceof jdk.nashorn.internal.runtime.ScriptFunction
            ifeq 3
         2: .line 82
            aload 2 /* unwrapped */
            checkcast jdk.nashorn.internal.runtime.ScriptFunction
            aload 1 /* sync */
            invokestatic jdk.nashorn.api.scripting.ScriptUtils.unwrap:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual jdk.nashorn.internal.runtime.ScriptFunction.createSynchronized:(Ljava/lang/Object;)Ljdk/nashorn/internal/runtime/ScriptFunction;
            areturn
         3: .line 85
      StackMap locals: java.lang.Object
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        end local 2 // java.lang.Object unwrapped
        end local 1 // java.lang.Object sync
        end local 0 // java.lang.Object func
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       func  Ljava/lang/Object;
            0    4     1       sync  Ljava/lang/Object;
            1    4     2  unwrapped  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      func  final
      sync  final

  public static jdk.nashorn.api.scripting.ScriptObjectMirror wrap(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljdk/nashorn/api/scripting/ScriptObjectMirror;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 96
            aload 0 /* obj */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 2
         1: .line 97
            aload 0 /* obj */
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            areturn
         2: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            instanceof jdk.nashorn.internal.runtime.ScriptObject
            ifeq 5
         3: .line 101
            aload 0 /* obj */
            checkcast jdk.nashorn.internal.runtime.ScriptObject
            astore 1 /* sobj */
        start local 1 // jdk.nashorn.internal.runtime.ScriptObject sobj
         4: .line 102
            aload 1 /* sobj */
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.wrap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.nashorn.api.scripting.ScriptObjectMirror
            areturn
        end local 1 // jdk.nashorn.internal.runtime.ScriptObject sobj
         5: .line 105
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   obj  Ljava/lang/Object;
            4    5     1  sobj  Ljdk/nashorn/internal/runtime/ScriptObject;
    MethodParameters:
      Name  Flags
      obj   final

  public static java.lang.Object unwrap(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 115
            aload 0 /* obj */
            instanceof jdk.nashorn.api.scripting.ScriptObjectMirror
            ifeq 2
         1: .line 116
            aload 0 /* obj */
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.unwrap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         2: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            areturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   final

  public static java.lang.Object[] wrapArray(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] args
         0: .line 129
            aload 0 /* args */
            ifnull 1
            aload 0 /* args */
            arraylength
            ifne 2
         1: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            areturn
         2: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.wrapArray:([Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 0 // java.lang.Object[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  args  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      args  final

  public static java.lang.Object[] unwrapArray(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] args
         0: .line 143
            aload 0 /* args */
            ifnull 1
            aload 0 /* args */
            arraylength
            ifne 2
         1: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            areturn
         2: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            invokestatic jdk.nashorn.internal.runtime.Context.getGlobal:()Ljdk/nashorn/internal/objects/Global;
            invokestatic jdk.nashorn.api.scripting.ScriptObjectMirror.unwrapArray:([Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 0 // java.lang.Object[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  args  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      args  final

  public static java.lang.Object convert(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // java.lang.Object obj
        start local 1 // java.lang.Object type
         0: .line 159
            aload 0 /* obj */
            ifnonnull 2
         1: .line 160
            aconst_null
            areturn
         2: .line 164
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            instanceof java.lang.Class
            ifeq 5
         3: .line 165
            aload 1 /* type */
            checkcast java.lang.Class
            astore 2 /* clazz */
        start local 2 // java.lang.Class clazz
         4: .line 166
            goto 9
        end local 2 // java.lang.Class clazz
      StackMap locals:
      StackMap stack:
         5: aload 1 /* type */
            instanceof jdk.dynalink.beans.StaticClass
            ifeq 8
         6: .line 167
            aload 1 /* type */
            checkcast jdk.dynalink.beans.StaticClass
            invokevirtual jdk.dynalink.beans.StaticClass.getRepresentedClass:()Ljava/lang/Class;
            astore 2 /* clazz */
        start local 2 // java.lang.Class clazz
         7: .line 168
            goto 9
        end local 2 // java.lang.Class clazz
         8: .line 169
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "type expected"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 2 // java.lang.Class clazz
         9: .line 172
      StackMap locals: java.lang.Class
      StackMap stack:
            invokestatic jdk.nashorn.internal.runtime.linker.Bootstrap.getLinkerServices:()Ljdk/dynalink/linker/LinkerServices;
            astore 3 /* linker */
        start local 3 // jdk.dynalink.linker.LinkerServices linker
        10: .line 173
            aload 0 /* obj */
            invokestatic jdk.nashorn.api.scripting.ScriptUtils.unwrap:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* objToConvert */
        start local 4 // java.lang.Object objToConvert
        11: .line 174
            aload 3 /* linker */
            aload 4 /* objToConvert */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* clazz */
            invokeinterface jdk.dynalink.linker.LinkerServices.getTypeConverter:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 5 /* converter */
        start local 5 // java.lang.invoke.MethodHandle converter
        12: .line 175
            aload 5 /* converter */
            ifnonnull 14
        13: .line 177
            new java.lang.UnsupportedOperationException
            dup
            ldc "conversion not supported"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 181
      StackMap locals: jdk.dynalink.linker.LinkerServices java.lang.Object java.lang.invoke.MethodHandle
      StackMap stack:
            aload 5 /* converter */
            aload 4 /* objToConvert */
            invokevirtual java.lang.invoke.MethodHandle.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
        15: areturn
        16: .line 182
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* e */
        start local 6 // java.lang.Throwable e
        17: .line 183
            aload 6 /* e */
            athrow
        end local 6 // java.lang.Throwable e
        18: .line 184
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
        19: .line 185
            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 // java.lang.invoke.MethodHandle converter
        end local 4 // java.lang.Object objToConvert
        end local 3 // jdk.dynalink.linker.LinkerServices linker
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.Object type
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0           obj  Ljava/lang/Object;
            0   20     1          type  Ljava/lang/Object;
            4    5     2         clazz  Ljava/lang/Class<*>;
            7    8     2         clazz  Ljava/lang/Class<*>;
            9   20     2         clazz  Ljava/lang/Class<*>;
           10   20     3        linker  Ljdk/dynalink/linker/LinkerServices;
           11   20     4  objToConvert  Ljava/lang/Object;
           12   20     5     converter  Ljava/lang/invoke/MethodHandle;
           17   18     6             e  Ljava/lang/Throwable;
           19   20     6             t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          14    15      16  Class java.lang.RuntimeException
          14    15      16  Class java.lang.Error
          14    15      18  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      obj   final
      type  final
}
SourceFile: "ScriptUtils.java"