public final class org.apache.lucene.expressions.js.JavascriptCompiler
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.lucene.expressions.js.JavascriptCompiler
  super_class: java.lang.Object
{
  private static final int CLASSFILE_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 52

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

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

  static final org.objectweb.asm.Type EXPRESSION_TYPE;
    descriptor: Lorg/objectweb/asm/Type;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final org.objectweb.asm.Type FUNCTION_VALUES_TYPE;
    descriptor: Lorg/objectweb/asm/Type;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static final org.objectweb.asm.commons.Method EXPRESSION_CTOR;
    descriptor: Lorg/objectweb/asm/commons/Method;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.objectweb.asm.commons.Method EVALUATE_METHOD;
    descriptor: Lorg/objectweb/asm/commons/Method;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final org.objectweb.asm.commons.Method DOUBLE_VAL_METHOD;
    descriptor: Lorg/objectweb/asm/commons/Method;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static final int MAX_SOURCE_LENGTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16384

  final java.lang.String sourceText;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final java.util.Map<java.lang.String, java.lang.reflect.Method> functions;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/reflect/Method;>;

  public static final java.util.Map<java.lang.String, java.lang.reflect.Method> DEFAULT_FUNCTIONS;
    descriptor: Ljava/util/Map;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/reflect/Method;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=10, args_size=0
         0: .line 92
            new java.lang.StringBuilder
            dup
            ldc Lorg/apache/lucene/expressions/js/JavascriptCompiler;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "$CompiledExpression"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic org.apache.lucene.expressions.js.JavascriptCompiler.COMPILED_EXPRESSION_CLASS:Ljava/lang/String;
         1: .line 93
            getstatic org.apache.lucene.expressions.js.JavascriptCompiler.COMPILED_EXPRESSION_CLASS:Ljava/lang/String;
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            putstatic org.apache.lucene.expressions.js.JavascriptCompiler.COMPILED_EXPRESSION_INTERNAL:Ljava/lang/String;
         2: .line 95
            ldc Lorg/apache/lucene/expressions/Expression;
            invokestatic org.objectweb.asm.Type.getType:(Ljava/lang/Class;)Lorg/objectweb/asm/Type;
            putstatic org.apache.lucene.expressions.js.JavascriptCompiler.EXPRESSION_TYPE:Lorg/objectweb/asm/Type;
         3: .line 96
            ldc Lorg/apache/lucene/search/DoubleValues;
            invokestatic org.objectweb.asm.Type.getType:(Ljava/lang/Class;)Lorg/objectweb/asm/Type;
            putstatic org.apache.lucene.expressions.js.JavascriptCompiler.FUNCTION_VALUES_TYPE:Lorg/objectweb/asm/Type;
         4: .line 99
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            ldc "<init>"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc [Ljava/lang/String;
            aastore
            invokestatic org.apache.lucene.expressions.js.JavascriptCompiler.getAsmMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Lorg/objectweb/asm/commons/Method;
            putstatic org.apache.lucene.expressions.js.JavascriptCompiler.EXPRESSION_CTOR:Lorg/objectweb/asm/commons/Method;
         5: .line 100
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            ldc "evaluate"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc [Lorg/apache/lucene/search/DoubleValues;
            aastore
            invokestatic org.apache.lucene.expressions.js.JavascriptCompiler.getAsmMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Lorg/objectweb/asm/commons/Method;
            putstatic org.apache.lucene.expressions.js.JavascriptCompiler.EVALUATE_METHOD:Lorg/objectweb/asm/commons/Method;
         6: .line 102
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            ldc "doubleValue"
            iconst_0
            anewarray java.lang.Class
            invokestatic org.apache.lucene.expressions.js.JavascriptCompiler.getAsmMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Lorg/objectweb/asm/commons/Method;
            putstatic org.apache.lucene.expressions.js.JavascriptCompiler.DOUBLE_VAL_METHOD:Lorg/objectweb/asm/commons/Method;
         7: .line 685
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 0 /* map */
        start local 0 // java.util.Map map
         8: .line 687
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 1 /* props */
        start local 1 // java.util.Properties props
         9: .line 688
            aconst_null
            astore 2
            aconst_null
            astore 3
        10: ldc Lorg/apache/lucene/expressions/js/JavascriptCompiler;
        11: .line 689
            new java.lang.StringBuilder
            dup
            ldc Lorg/apache/lucene/expressions/js/JavascriptCompiler;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".properties"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
        12: .line 688
            invokestatic org.apache.lucene.util.IOUtils.getDecodingReader:(Ljava/lang/Class;Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/io/Reader;
            astore 4 /* in */
        start local 4 // java.io.Reader in
        13: .line 690
            aload 1 /* props */
            aload 4 /* in */
            invokevirtual java.util.Properties.load:(Ljava/io/Reader;)V
        14: .line 691
            aload 4 /* in */
            ifnull 20
            aload 4 /* in */
            invokevirtual java.io.Reader.close:()V
            goto 20
      StackMap locals: java.util.Map java.util.Properties java.lang.Throwable java.lang.Throwable java.io.Reader
      StackMap stack: java.lang.Throwable
        15: astore 2
            aload 4 /* in */
            ifnull 16
            aload 4 /* in */
            invokevirtual java.io.Reader.close:()V
        end local 4 // java.io.Reader in
      StackMap locals:
      StackMap stack:
        16: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 3
            aload 2
            ifnonnull 18
            aload 3
            astore 2
            goto 19
      StackMap locals:
      StackMap stack:
        18: aload 2
            aload 3
            if_acmpeq 19
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        19: aload 2
            athrow
        20: .line 692
      StackMap locals:
      StackMap stack:
            aload 1 /* props */
            invokevirtual java.util.Properties.stringPropertyNames:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 33
      StackMap locals: java.util.Map java.util.Properties top java.util.Iterator
      StackMap stack:
        21: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* call */
        start local 2 // java.lang.String call
        22: .line 693
            aload 1 /* props */
            aload 2 /* call */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 4 /* vals */
        start local 4 // java.lang.String[] vals
        23: .line 694
            aload 4 /* vals */
            arraylength
            iconst_3
            if_icmpeq 25
        24: .line 695
            new java.lang.Error
            dup
            ldc "Syntax error while reading Javascript functions from resource"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 697
      StackMap locals: java.util.Map java.util.Properties java.lang.String java.util.Iterator java.lang.String[]
      StackMap stack:
            aload 4 /* vals */
            iconst_0
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 5 /* clazz */
        start local 5 // java.lang.Class clazz
        26: .line 698
            aload 4 /* vals */
            iconst_1
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 6 /* methodName */
        start local 6 // java.lang.String methodName
        27: .line 699
            aload 4 /* vals */
            iconst_2
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 7 /* arity */
        start local 7 // int arity
        28: .line 700
            iload 7 /* arity */
            anewarray java.lang.Class
            astore 8 /* args */
        start local 8 // java.lang.Class[] args
        29: .line 701
            aload 8 /* args */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
        30: .line 702
            aload 5 /* clazz */
            aload 6 /* methodName */
            aload 8 /* args */
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 9 /* method */
        start local 9 // java.lang.reflect.Method method
        31: .line 703
            aload 9 /* method */
            invokestatic org.apache.lucene.expressions.js.JavascriptCompiler.checkFunction:(Ljava/lang/reflect/Method;)V
        32: .line 704
            aload 0 /* map */
            aload 2 /* call */
            aload 9 /* method */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // java.lang.reflect.Method method
        end local 8 // java.lang.Class[] args
        end local 7 // int arity
        end local 6 // java.lang.String methodName
        end local 5 // java.lang.Class clazz
        end local 4 // java.lang.String[] vals
        end local 2 // java.lang.String call
        33: .line 692
      StackMap locals: java.util.Map java.util.Properties top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        end local 1 // java.util.Properties props
        34: .line 706
            goto 37
      StackMap locals: java.util.Map
      StackMap stack: java.lang.Exception
        35: astore 1 /* e */
        start local 1 // java.lang.Exception e
        36: .line 707
            new java.lang.Error
            dup
            ldc "Cannot resolve function"
            aload 1 /* e */
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
        37: .line 709
      StackMap locals:
      StackMap stack:
            aload 0 /* map */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putstatic org.apache.lucene.expressions.js.JavascriptCompiler.DEFAULT_FUNCTIONS:Ljava/util/Map;
        end local 0 // java.util.Map map
        38: .line 710
            return
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            8   38     0         map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/reflect/Method;>;
            9   34     1       props  Ljava/util/Properties;
           13   16     4          in  Ljava/io/Reader;
           22   33     2        call  Ljava/lang/String;
           23   33     4        vals  [Ljava/lang/String;
           26   33     5       clazz  Ljava/lang/Class<*>;
           27   33     6  methodName  Ljava/lang/String;
           28   33     7       arity  I
           29   33     8        args  [Ljava/lang/Class;
           31   33     9      method  Ljava/lang/reflect/Method;
           36   37     1           e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          13    14      15  any
          10    17      17  any
           8    34      35  Class java.lang.ReflectiveOperationException
           8    34      35  Class java.io.IOException

  private static org.objectweb.asm.commons.Method getAsmMethod(java.lang.Class<?>, java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Lorg/objectweb/asm/commons/Method;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.Class rtype
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class[] ptypes
         0: .line 106
            new org.objectweb.asm.commons.Method
            dup
            aload 1 /* name */
            aload 0 /* rtype */
            aload 2 /* ptypes */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.toMethodDescriptorString:()Ljava/lang/String;
            invokespecial org.objectweb.asm.commons.Method.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.Class[] ptypes
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class rtype
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0   rtype  Ljava/lang/Class<*>;
            0    1     1    name  Ljava/lang/String;
            0    1     2  ptypes  [Ljava/lang/Class;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;[Ljava/lang/Class<*>;)Lorg/objectweb/asm/commons/Method;
    MethodParameters:
        Name  Flags
      rtype   
      name    
      ptypes  

  public static org.apache.lucene.expressions.Expression compile(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/lucene/expressions/Expression;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String sourceText
         0: .line 124
            new org.apache.lucene.expressions.js.JavascriptCompiler
            dup
            aload 0 /* sourceText */
            invokespecial org.apache.lucene.expressions.js.JavascriptCompiler.<init>:(Ljava/lang/String;)V
            ldc Lorg/apache/lucene/expressions/js/JavascriptCompiler;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokevirtual org.apache.lucene.expressions.js.JavascriptCompiler.compileExpression:(Ljava/lang/ClassLoader;)Lorg/apache/lucene/expressions/Expression;
            areturn
        end local 0 // java.lang.String sourceText
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  sourceText  Ljava/lang/String;
    Exceptions:
      throws java.text.ParseException
    MethodParameters:
            Name  Flags
      sourceText  

  public static org.apache.lucene.expressions.Expression compile(java.lang.String, java.util.Map<java.lang.String, java.lang.reflect.Method>, java.lang.ClassLoader);
    descriptor: (Ljava/lang/String;Ljava/util/Map;Ljava/lang/ClassLoader;)Lorg/apache/lucene/expressions/Expression;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.lang.String sourceText
        start local 1 // java.util.Map functions
        start local 2 // java.lang.ClassLoader parent
         0: .line 141
            aload 2 /* parent */
            ifnonnull 2
         1: .line 142
            new java.lang.NullPointerException
            dup
            ldc "A parent ClassLoader must be given."
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 144
      StackMap locals:
      StackMap stack:
            aload 1 /* functions */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: java.lang.String java.util.Map java.lang.ClassLoader top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            astore 3 /* m */
        start local 3 // java.lang.reflect.Method m
         4: .line 145
            aload 3 /* m */
            aload 2 /* parent */
            invokestatic org.apache.lucene.expressions.js.JavascriptCompiler.checkFunctionClassLoader:(Ljava/lang/reflect/Method;Ljava/lang/ClassLoader;)V
         5: .line 146
            aload 3 /* m */
            invokestatic org.apache.lucene.expressions.js.JavascriptCompiler.checkFunction:(Ljava/lang/reflect/Method;)V
        end local 3 // java.lang.reflect.Method m
         6: .line 144
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 148
            new org.apache.lucene.expressions.js.JavascriptCompiler
            dup
            aload 0 /* sourceText */
            aload 1 /* functions */
            invokespecial org.apache.lucene.expressions.js.JavascriptCompiler.<init>:(Ljava/lang/String;Ljava/util/Map;)V
            aload 2 /* parent */
            invokevirtual org.apache.lucene.expressions.js.JavascriptCompiler.compileExpression:(Ljava/lang/ClassLoader;)Lorg/apache/lucene/expressions/Expression;
            areturn
        end local 2 // java.lang.ClassLoader parent
        end local 1 // java.util.Map functions
        end local 0 // java.lang.String sourceText
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0  sourceText  Ljava/lang/String;
            0    8     1   functions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/reflect/Method;>;
            0    8     2      parent  Ljava/lang/ClassLoader;
            4    6     3           m  Ljava/lang/reflect/Method;
    Exceptions:
      throws java.text.ParseException
    Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/reflect/Method;>;Ljava/lang/ClassLoader;)Lorg/apache/lucene/expressions/Expression;
    MethodParameters:
            Name  Flags
      sourceText  
      functions   
      parent      

  private static void unusedTestCompile();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 158
            aconst_null
            astore 0 /* f */
        start local 0 // org.apache.lucene.search.DoubleValues f
         1: .line 159
            aload 0 /* f */
            invokevirtual org.apache.lucene.search.DoubleValues.doubleValue:()D
            pop2
         2: .line 160
            return
        end local 0 // org.apache.lucene.search.DoubleValues f
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    3     0     f  Lorg/apache/lucene/search/DoubleValues;
    Exceptions:
      throws java.io.IOException

  private void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.lucene.expressions.js.JavascriptCompiler this
        start local 1 // java.lang.String sourceText
         0: .line 167
            aload 0 /* this */
            aload 1 /* sourceText */
            getstatic org.apache.lucene.expressions.js.JavascriptCompiler.DEFAULT_FUNCTIONS:Ljava/util/Map;
            invokespecial org.apache.lucene.expressions.js.JavascriptCompiler.<init>:(Ljava/lang/String;Ljava/util/Map;)V
         1: .line 168
            return
        end local 1 // java.lang.String sourceText
        end local 0 // org.apache.lucene.expressions.js.JavascriptCompiler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/lucene/expressions/js/JavascriptCompiler;
            0    2     1  sourceText  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      sourceText  

  private void <init>(java.lang.String, java.util.Map<java.lang.String, java.lang.reflect.Method>);
    descriptor: (Ljava/lang/String;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.lucene.expressions.js.JavascriptCompiler this
        start local 1 // java.lang.String sourceText
        start local 2 // java.util.Map functions
         0: .line 174
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 175
            aload 1 /* sourceText */
            ifnonnull 3
         2: .line 176
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         3: .line 178
      StackMap locals: org.apache.lucene.expressions.js.JavascriptCompiler java.lang.String java.util.Map
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sourceText */
            putfield org.apache.lucene.expressions.js.JavascriptCompiler.sourceText:Ljava/lang/String;
         4: .line 179
            aload 0 /* this */
            aload 2 /* functions */
            putfield org.apache.lucene.expressions.js.JavascriptCompiler.functions:Ljava/util/Map;
         5: .line 180
            return
        end local 2 // java.util.Map functions
        end local 1 // java.lang.String sourceText
        end local 0 // org.apache.lucene.expressions.js.JavascriptCompiler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/apache/lucene/expressions/js/JavascriptCompiler;
            0    6     1  sourceText  Ljava/lang/String;
            0    6     2   functions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/reflect/Method;>;
    Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/reflect/Method;>;)V
    MethodParameters:
            Name  Flags
      sourceText  
      functions   

  private org.apache.lucene.expressions.Expression compileExpression(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)Lorg/apache/lucene/expressions/Expression;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // org.apache.lucene.expressions.js.JavascriptCompiler this
        start local 1 // java.lang.ClassLoader parent
         0: .line 189
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 2 /* externalsMap */
        start local 2 // java.util.Map externalsMap
         1: .line 190
            new org.objectweb.asm.ClassWriter
            dup
            iconst_3
            invokespecial org.objectweb.asm.ClassWriter.<init>:(I)V
            astore 3 /* classWriter */
        start local 3 // org.objectweb.asm.ClassWriter classWriter
         2: .line 193
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.lucene.expressions.js.JavascriptCompiler.getAntlrParseTree:()Lorg/antlr/v4/runtime/tree/ParseTree;
            aload 3 /* classWriter */
            aload 2 /* externalsMap */
            invokevirtual org.apache.lucene.expressions.js.JavascriptCompiler.generateClass:(Lorg/antlr/v4/runtime/tree/ParseTree;Lorg/objectweb/asm/ClassWriter;Ljava/util/Map;)V
         3: .line 195
            new org.apache.lucene.expressions.js.JavascriptCompiler$Loader
            dup
            aload 1 /* parent */
            invokespecial org.apache.lucene.expressions.js.JavascriptCompiler$Loader.<init>:(Ljava/lang/ClassLoader;)V
         4: .line 196
            getstatic org.apache.lucene.expressions.js.JavascriptCompiler.COMPILED_EXPRESSION_CLASS:Ljava/lang/String;
            aload 3 /* classWriter */
            invokevirtual org.objectweb.asm.ClassWriter.toByteArray:()[B
            invokevirtual org.apache.lucene.expressions.js.JavascriptCompiler$Loader.define:(Ljava/lang/String;[B)Ljava/lang/Class;
         5: .line 195
            astore 4 /* evaluatorClass */
        start local 4 // java.lang.Class evaluatorClass
         6: .line 197
            aload 4 /* evaluatorClass */
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc [Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 5 /* constructor */
        start local 5 // java.lang.reflect.Constructor constructor
         7: .line 199
            aload 5 /* constructor */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.lucene.expressions.js.JavascriptCompiler.sourceText:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* externalsMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 2 /* externalsMap */
            invokeinterface java.util.Map.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.lucene.expressions.Expression
         8: areturn
        end local 5 // java.lang.reflect.Constructor constructor
        end local 4 // java.lang.Class evaluatorClass
         9: .line 200
      StackMap locals: org.apache.lucene.expressions.js.JavascriptCompiler java.lang.ClassLoader java.util.Map org.objectweb.asm.ClassWriter
      StackMap stack: java.lang.RuntimeException
            astore 4 /* re */
        start local 4 // java.lang.RuntimeException re
        10: .line 201
            aload 4 /* re */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            instanceof java.text.ParseException
            ifeq 12
        11: .line 202
            aload 4 /* re */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            checkcast java.text.ParseException
            athrow
        12: .line 204
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 4 /* re */
            athrow
        end local 4 // java.lang.RuntimeException re
        13: .line 205
      StackMap locals: org.apache.lucene.expressions.js.JavascriptCompiler java.lang.ClassLoader java.util.Map org.objectweb.asm.ClassWriter
      StackMap stack: java.lang.ReflectiveOperationException
            astore 4 /* exception */
        start local 4 // java.lang.ReflectiveOperationException exception
        14: .line 206
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "An internal error occurred attempting to compile the expression ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.lucene.expressions.js.JavascriptCompiler.sourceText:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* exception */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.ReflectiveOperationException exception
        end local 3 // org.objectweb.asm.ClassWriter classWriter
        end local 2 // java.util.Map externalsMap
        end local 1 // java.lang.ClassLoader parent
        end local 0 // org.apache.lucene.expressions.js.JavascriptCompiler this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lorg/apache/lucene/expressions/js/JavascriptCompiler;
            0   15     1          parent  Ljava/lang/ClassLoader;
            1   15     2    externalsMap  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
            2   15     3     classWriter  Lorg/objectweb/asm/ClassWriter;
            6    9     4  evaluatorClass  Ljava/lang/Class<+Lorg/apache/lucene/expressions/Expression;>;
            7    9     5     constructor  Ljava/lang/reflect/Constructor<+Lorg/apache/lucene/expressions/Expression;>;
           10   13     4              re  Ljava/lang/RuntimeException;
           14   15     4       exception  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.RuntimeException
           2     8      13  Class java.lang.ReflectiveOperationException
    Exceptions:
      throws java.text.ParseException
    MethodParameters:
        Name  Flags
      parent  

  private org.antlr.v4.runtime.tree.ParseTree getAntlrParseTree();
    descriptor: ()Lorg/antlr/v4/runtime/tree/ParseTree;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.apache.lucene.expressions.js.JavascriptCompiler this
         0: .line 217
            new org.antlr.v4.runtime.ANTLRInputStream
            dup
            aload 0 /* this */
            getfield org.apache.lucene.expressions.js.JavascriptCompiler.sourceText:Ljava/lang/String;
            invokespecial org.antlr.v4.runtime.ANTLRInputStream.<init>:(Ljava/lang/String;)V
            astore 1 /* antlrInputStream */
        start local 1 // org.antlr.v4.runtime.ANTLRInputStream antlrInputStream
         1: .line 218
            new org.apache.lucene.expressions.js.JavascriptErrorHandlingLexer
            dup
            aload 1 /* antlrInputStream */
            invokespecial org.apache.lucene.expressions.js.JavascriptErrorHandlingLexer.<init>:(Lorg/antlr/v4/runtime/CharStream;)V
            astore 2 /* javascriptLexer */
        start local 2 // org.apache.lucene.expressions.js.JavascriptErrorHandlingLexer javascriptLexer
         2: .line 219
            aload 2 /* javascriptLexer */
            invokevirtual org.apache.lucene.expressions.js.JavascriptErrorHandlingLexer.removeErrorListeners:()V
         3: .line 220
            new org.apache.lucene.expressions.js.JavascriptParser
            dup
            new org.antlr.v4.runtime.CommonTokenStream
            dup
            aload 2 /* javascriptLexer */
            invokespecial org.antlr.v4.runtime.CommonTokenStream.<init>:(Lorg/antlr/v4/runtime/TokenSource;)V
            invokespecial org.apache.lucene.expressions.js.JavascriptParser.<init>:(Lorg/antlr/v4/runtime/TokenStream;)V
            astore 3 /* javascriptParser */
        start local 3 // org.apache.lucene.expressions.js.JavascriptParser javascriptParser
         4: .line 221
            aload 3 /* javascriptParser */
            invokevirtual org.apache.lucene.expressions.js.JavascriptParser.removeErrorListeners:()V
         5: .line 222
            aload 3 /* javascriptParser */
            new org.apache.lucene.expressions.js.JavascriptParserErrorStrategy
            dup
            invokespecial org.apache.lucene.expressions.js.JavascriptParserErrorStrategy.<init>:()V
            invokevirtual org.apache.lucene.expressions.js.JavascriptParser.setErrorHandler:(Lorg/antlr/v4/runtime/ANTLRErrorStrategy;)V
         6: .line 223
            aload 3 /* javascriptParser */
            invokevirtual org.apache.lucene.expressions.js.JavascriptParser.compile:()Lorg/apache/lucene/expressions/js/JavascriptParser$CompileContext;
            areturn
        end local 3 // org.apache.lucene.expressions.js.JavascriptParser javascriptParser
        end local 2 // org.apache.lucene.expressions.js.JavascriptErrorHandlingLexer javascriptLexer
        end local 1 // org.antlr.v4.runtime.ANTLRInputStream antlrInputStream
        end local 0 // org.apache.lucene.expressions.js.JavascriptCompiler this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lorg/apache/lucene/expressions/js/JavascriptCompiler;
            1    7     1  antlrInputStream  Lorg/antlr/v4/runtime/ANTLRInputStream;
            2    7     2   javascriptLexer  Lorg/apache/lucene/expressions/js/JavascriptErrorHandlingLexer;
            4    7     3  javascriptParser  Lorg/apache/lucene/expressions/js/JavascriptParser;
    Exceptions:
      throws java.text.ParseException

  private void generateClass(org.antlr.v4.runtime.tree.ParseTree, org.objectweb.asm.ClassWriter, java.util.Map<java.lang.String, java.lang.Integer>);
    descriptor: (Lorg/antlr/v4/runtime/tree/ParseTree;Lorg/objectweb/asm/ClassWriter;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // org.apache.lucene.expressions.js.JavascriptCompiler this
        start local 1 // org.antlr.v4.runtime.tree.ParseTree parseTree
        start local 2 // org.objectweb.asm.ClassWriter classWriter
        start local 3 // java.util.Map externalsMap
         0: .line 230
            aload 2 /* classWriter */
            bipush 52
         1: .line 231
            bipush 49
         2: .line 232
            getstatic org.apache.lucene.expressions.js.JavascriptCompiler.COMPILED_EXPRESSION_INTERNAL:Ljava/lang/String;
         3: .line 233
            aconst_null
            getstatic org.apache.lucene.expressions.js.JavascriptCompiler.EXPRESSION_TYPE:Lorg/objectweb/asm/Type;
            invokevirtual org.objectweb.asm.Type.getInternalName:()Ljava/lang/String;
            aconst_null
         4: .line 230
            invokevirtual org.objectweb.asm.ClassWriter.visit:(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
         5: .line 234
            aload 0 /* this */
            getfield org.apache.lucene.expressions.js.JavascriptCompiler.sourceText:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            sipush 16384
            if_icmpgt 7
         6: .line 235
            aload 0 /* this */
            getfield org.apache.lucene.expressions.js.JavascriptCompiler.sourceText:Ljava/lang/String;
            goto 8
      StackMap locals:
      StackMap stack:
         7: new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.apache.lucene.expressions.js.JavascriptCompiler.sourceText:Ljava/lang/String;
            iconst_0
            sipush 16381
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 234
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* clippedSourceText */
        start local 4 // java.lang.String clippedSourceText
         9: .line 236
            aload 2 /* classWriter */
            aload 4 /* clippedSourceText */
            aconst_null
            invokevirtual org.objectweb.asm.ClassWriter.visitSource:(Ljava/lang/String;Ljava/lang/String;)V
        10: .line 238
            new org.objectweb.asm.commons.GeneratorAdapter
            dup
            iconst_1
        11: .line 239
            getstatic org.apache.lucene.expressions.js.JavascriptCompiler.EXPRESSION_CTOR:Lorg/objectweb/asm/commons/Method;
            aconst_null
            aconst_null
            aload 2 /* classWriter */
        12: .line 238
            invokespecial org.objectweb.asm.commons.GeneratorAdapter.<init>:(ILorg/objectweb/asm/commons/Method;Ljava/lang/String;[Lorg/objectweb/asm/Type;Lorg/objectweb/asm/ClassVisitor;)V
            astore 5 /* constructor */
        start local 5 // org.objectweb.asm.commons.GeneratorAdapter constructor
        13: .line 240
            aload 5 /* constructor */
            invokevirtual org.objectweb.asm.commons.GeneratorAdapter.loadThis:()V
        14: .line 241
            aload 5 /* constructor */
            invokevirtual org.objectweb.asm.commons.GeneratorAdapter.loadArgs:()V
        15: .line 242
            aload 5 /* constructor */
            getstatic org.apache.lucene.expressions.js.JavascriptCompiler.EXPRESSION_TYPE:Lorg/objectweb/asm/Type;
            getstatic org.apache.lucene.expressions.js.JavascriptCompiler.EXPRESSION_CTOR:Lorg/objectweb/asm/commons/Method;
            invokevirtual org.objectweb.asm.commons.GeneratorAdapter.invokeConstructor:(Lorg/objectweb/asm/Type;Lorg/objectweb/asm/commons/Method;)V
        16: .line 243
            aload 5 /* constructor */
            invokevirtual org.objectweb.asm.commons.GeneratorAdapter.returnValue:()V
        17: .line 244
            aload 5 /* constructor */
            invokevirtual org.objectweb.asm.commons.GeneratorAdapter.endMethod:()V
        18: .line 246
            new org.objectweb.asm.commons.GeneratorAdapter
            dup
            iconst_1
        19: .line 247
            getstatic org.apache.lucene.expressions.js.JavascriptCompiler.EVALUATE_METHOD:Lorg/objectweb/asm/commons/Method;
            aconst_null
            aconst_null
            aload 2 /* classWriter */
        20: .line 246
            invokespecial org.objectweb.asm.commons.GeneratorAdapter.<init>:(ILorg/objectweb/asm/commons/Method;Ljava/lang/String;[Lorg/objectweb/asm/Type;Lorg/objectweb/asm/ClassVisitor;)V
            astore 6 /* gen */
        start local 6 // org.objectweb.asm.commons.GeneratorAdapter gen
        21: .line 250
            new org.apache.lucene.expressions.js.JavascriptCompiler$1
            dup
            aload 0 /* this */
            aload 6 /* gen */
            aload 3 /* externalsMap */
            invokespecial org.apache.lucene.expressions.js.JavascriptCompiler$1.<init>:(Lorg/apache/lucene/expressions/js/JavascriptCompiler;Lorg/objectweb/asm/commons/GeneratorAdapter;Ljava/util/Map;)V
        22: .line 629
            aload 1 /* parseTree */
            invokevirtual org.apache.lucene.expressions.js.JavascriptCompiler$1.visit:(Lorg/antlr/v4/runtime/tree/ParseTree;)Ljava/lang/Object;
            pop
        23: .line 631
            aload 6 /* gen */
            invokevirtual org.objectweb.asm.commons.GeneratorAdapter.returnValue:()V
        24: .line 632
            aload 6 /* gen */
            invokevirtual org.objectweb.asm.commons.GeneratorAdapter.endMethod:()V
        25: .line 634
            aload 2 /* classWriter */
            invokevirtual org.objectweb.asm.ClassWriter.visitEnd:()V
        26: .line 635
            return
        end local 6 // org.objectweb.asm.commons.GeneratorAdapter gen
        end local 5 // org.objectweb.asm.commons.GeneratorAdapter constructor
        end local 4 // java.lang.String clippedSourceText
        end local 3 // java.util.Map externalsMap
        end local 2 // org.objectweb.asm.ClassWriter classWriter
        end local 1 // org.antlr.v4.runtime.tree.ParseTree parseTree
        end local 0 // org.apache.lucene.expressions.js.JavascriptCompiler this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lorg/apache/lucene/expressions/js/JavascriptCompiler;
            0   27     1          parseTree  Lorg/antlr/v4/runtime/tree/ParseTree;
            0   27     2        classWriter  Lorg/objectweb/asm/ClassWriter;
            0   27     3       externalsMap  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
            9   27     4  clippedSourceText  Ljava/lang/String;
           13   27     5        constructor  Lorg/objectweb/asm/commons/GeneratorAdapter;
           21   27     6                gen  Lorg/objectweb/asm/commons/GeneratorAdapter;
    Exceptions:
      throws java.text.ParseException
    Signature: (Lorg/antlr/v4/runtime/tree/ParseTree;Lorg/objectweb/asm/ClassWriter;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)V
    MethodParameters:
              Name  Flags
      parseTree     final
      classWriter   final
      externalsMap  final

  static java.lang.String normalizeQuotes(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.String text
         0: .line 638
            new java.lang.StringBuilder
            dup
            aload 0 /* text */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* out */
        start local 1 // java.lang.StringBuilder out
         1: .line 639
            iconst_0
            istore 2 /* inDoubleQuotes */
        start local 2 // boolean inDoubleQuotes
         2: .line 640
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 25
         4: .line 641
      StackMap locals: java.lang.StringBuilder int int
      StackMap stack:
            aload 0 /* text */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
         5: .line 642
            iload 4 /* c */
            bipush 92
            if_icmpne 10
         6: .line 643
            aload 0 /* text */
            iinc 3 /* i */ 1
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
         7: .line 644
            iload 4 /* c */
            bipush 92
            if_icmpne 23
         8: .line 645
            aload 1 /* out */
            bipush 92
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         9: .line 648
            goto 23
      StackMap locals: int
      StackMap stack:
        10: iload 4 /* c */
            bipush 39
            if_icmpne 18
        11: .line 649
            iload 2 /* inDoubleQuotes */
            ifeq 14
        12: .line 651
            aload 1 /* out */
            bipush 92
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        13: .line 652
            goto 23
        14: .line 653
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            iload 3 /* i */
            invokestatic org.apache.lucene.expressions.js.JavascriptCompiler.findSingleQuoteStringEnd:(Ljava/lang/String;I)I
            istore 5 /* j */
        start local 5 // int j
        15: .line 654
            aload 1 /* out */
            aload 0 /* text */
            iload 3 /* i */
            iload 5 /* j */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
            pop
        16: .line 655
            iload 5 /* j */
            istore 3 /* i */
        end local 5 // int j
        17: .line 657
            goto 23
      StackMap locals:
      StackMap stack:
        18: iload 4 /* c */
            bipush 34
            if_icmpne 23
        19: .line 658
            bipush 39
            istore 4 /* c */
        20: .line 659
            iload 2 /* inDoubleQuotes */
            ifeq 21
            iconst_0
            goto 22
      StackMap locals:
      StackMap stack:
        21: iconst_1
      StackMap locals:
      StackMap stack: int
        22: istore 2 /* inDoubleQuotes */
        23: .line 661
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            iload 4 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 4 // char c
        24: .line 640
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 3 /* i */
            aload 0 /* text */
            invokevirtual java.lang.String.length:()I
            if_icmplt 4
        end local 3 // int i
        26: .line 663
            aload 1 /* out */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // boolean inDoubleQuotes
        end local 1 // java.lang.StringBuilder out
        end local 0 // java.lang.String text
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   27     0            text  Ljava/lang/String;
            1   27     1             out  Ljava/lang/StringBuilder;
            2   27     2  inDoubleQuotes  Z
            3   26     3               i  I
            5   24     4               c  C
           15   17     5               j  I
    MethodParameters:
      Name  Flags
      text  

  static int findSingleQuoteStringEnd(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String text
        start local 1 // int start
         0: .line 667
            iinc 1 /* start */ 1
         1: .line 668
            goto 5
         2: .line 669
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            iload 1 /* start */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 92
            if_icmpne 4
         3: .line 670
            iinc 1 /* start */ 1
         4: .line 672
      StackMap locals:
      StackMap stack:
            iinc 1 /* start */ 1
         5: .line 668
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            iload 1 /* start */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 39
            if_icmpne 2
         6: .line 674
            iload 1 /* start */
            ireturn
        end local 1 // int start
        end local 0 // java.lang.String text
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   text  Ljava/lang/String;
            0    7     1  start  I
    MethodParameters:
       Name  Flags
      text   
      start  

  private static void checkFunction(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.reflect.Method method
         0: .line 717
            invokestatic java.lang.invoke.MethodHandles.publicLookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            aload 0 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.unreflect:(Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 1 /* type */
        start local 1 // java.lang.invoke.MethodType type
         1: .line 718
            goto 4
        end local 1 // java.lang.invoke.MethodType type
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
         2: pop
         3: .line 719
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not accessible (declaring class or method not public)."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // java.lang.invoke.MethodType type
         4: .line 722
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifne 6
         5: .line 723
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not static."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 725
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* arg */
        start local 2 // int arg
         7: aload 1 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 3 /* arity */
        start local 3 // int arity
         8: goto 12
         9: .line 726
      StackMap locals: int int
      StackMap stack:
            aload 1 /* type */
            iload 2 /* arg */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpeq 11
        10: .line 727
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " must take only double parameters."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 725
      StackMap locals:
      StackMap stack:
            iinc 2 /* arg */ 1
      StackMap locals:
      StackMap stack:
        12: iload 2 /* arg */
            iload 3 /* arity */
            if_icmplt 9
        end local 3 // int arity
        end local 2 // int arg
        13: .line 730
            aload 1 /* type */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpeq 15
        14: .line 731
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not return a double."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 733
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.reflect.Method method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0  method  Ljava/lang/reflect/Method;
            1    2     1    type  Ljava/lang/invoke/MethodType;
            4   16     1    type  Ljava/lang/invoke/MethodType;
            7   13     2     arg  I
            8   13     3   arity  I
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalAccessException
    MethodParameters:
        Name  Flags
      method  

  private static void checkFunctionClassLoader(java.lang.reflect.Method, java.lang.ClassLoader);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/ClassLoader;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.reflect.Method method
        start local 1 // java.lang.ClassLoader parent
         0: .line 740
            iconst_0
            istore 2 /* ok */
        start local 2 // boolean ok
         1: .line 742
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            astore 3 /* clazz */
        start local 3 // java.lang.Class clazz
         2: .line 743
            aload 3 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            iconst_0
            aload 1 /* parent */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            aload 3 /* clazz */
            if_acmpne 3
            iconst_1
            goto 4
      StackMap locals: int java.lang.Class
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 2 /* ok */
        end local 3 // java.lang.Class clazz
         5: .line 744
            goto 8
      StackMap locals: java.lang.reflect.Method java.lang.ClassLoader int
      StackMap stack: java.lang.ClassNotFoundException
         6: pop
         7: .line 745
            iconst_0
            istore 2 /* ok */
         8: .line 747
      StackMap locals:
      StackMap stack:
            iload 2 /* ok */
            ifne 10
         9: .line 748
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not declared by a class which is accessible by the given parent ClassLoader."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 750
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean ok
        end local 1 // java.lang.ClassLoader parent
        end local 0 // java.lang.reflect.Method method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0  method  Ljava/lang/reflect/Method;
            0   11     1  parent  Ljava/lang/ClassLoader;
            1   11     2      ok  Z
            2    5     3   clazz  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.ClassNotFoundException
    MethodParameters:
        Name  Flags
      method  
      parent  
}
SourceFile: "JavascriptCompiler.java"
NestMembers:
  org.apache.lucene.expressions.js.JavascriptCompiler$1  org.apache.lucene.expressions.js.JavascriptCompiler$Loader
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  org.apache.lucene.expressions.js.JavascriptCompiler$1
  final Loader = org.apache.lucene.expressions.js.JavascriptCompiler$Loader of org.apache.lucene.expressions.js.JavascriptCompiler
  public CompileContext = org.apache.lucene.expressions.js.JavascriptParser$CompileContext of org.apache.lucene.expressions.js.JavascriptParser