public class com.oracle.truffle.js.snapshot.Recording
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.snapshot.Recording
  super_class: java.lang.Object
{
  private static final boolean VERBOSE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean BATCHES_ENABLED;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean LAZY_FUNCTIONS;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean SORT_BY_ID;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean CONST_IN_VAR;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean SOURCE_SECTIONS;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean FIXUP_SOURCE_SECTIONS;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean FIXUP_TAGS;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean TEST_DECODE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean LAMBDA;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

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

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

  private final com.oracle.truffle.js.snapshot.Recording$VarIdTable table;
    descriptor: Lcom/oracle/truffle/js/snapshot/Recording$VarIdTable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.Integer, com.oracle.truffle.js.snapshot.Recording$Inst> defs;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Integer;Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;

  private final java.util.ArrayList<com.oracle.truffle.js.snapshot.Recording$Inst> insts;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;

  private final java.util.ArrayDeque<com.oracle.truffle.js.snapshot.Recording$MethodCall> callStack;
    descriptor: Ljava/util/ArrayDeque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayDeque<Lcom/oracle/truffle/js/snapshot/Recording$MethodCall;>;

  private final java.util.Set<com.oracle.truffle.api.frame.FrameDescriptor> frameDescriptorSet;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lcom/oracle/truffle/api/frame/FrameDescriptor;>;

  private final java.util.Set<com.oracle.truffle.js.runtime.builtins.JSFunctionData> functionDataSet;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;>;

  private final java.util.ArrayDeque<java.util.function.Function<java.lang.Boolean, java.lang.Boolean>> earlyFixups;
    descriptor: Ljava/util/ArrayDeque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayDeque<Ljava/util/function/Function<Ljava/lang/Boolean;Ljava/lang/Boolean;>;>;

  private final java.util.ArrayDeque<java.util.function.Function<java.lang.Boolean, java.lang.Boolean>> lateFixups;
    descriptor: Ljava/util/ArrayDeque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayDeque<Ljava/util/function/Function<Ljava/lang/Boolean;Ljava/lang/Boolean;>;>;

  private final java.util.Map<com.oracle.truffle.js.snapshot.Recording$Inst, java.util.Collection<com.oracle.truffle.js.snapshot.Recording$Inst>> usageMap;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/Collection<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;>;

  private final java.util.List<com.oracle.truffle.js.snapshot.Recording$InstBatch> instBatches;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$InstBatch;>;

  private com.oracle.truffle.api.source.Source source;
    descriptor: Lcom/oracle/truffle/api/source/Source;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 115
            ldc Lcom/oracle/truffle/js/snapshot/Recording;
            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 com.oracle.truffle.js.snapshot.Recording.$assertionsDisabled:Z
         3: .line 128
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static boolean isAssignable(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Class toType
        start local 1 // java.lang.Class fromType
         0: .line 318
            aload 0 /* toType */
            aload 1 /* fromType */
            if_acmpeq 2
            aload 0 /* toType */
            ldc Ljava/lang/Object;
            if_acmpne 1
            aload 1 /* fromType */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* toType */
            aload 1 /* fromType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 2
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 1 // java.lang.Class fromType
        end local 0 // java.lang.Class toType
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0    toType  Ljava/lang/Class<*>;
            0    3     1  fromType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Z
    MethodParameters:
          Name  Flags
      toType    
      fromType  

  static int[] toIdArray(com.oracle.truffle.js.snapshot.Recording$Inst[]);
    descriptor: ([Lcom/oracle/truffle/js/snapshot/Recording$Inst;)[I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst[] args
         0: .line 322
            aload 0 /* args */
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic applyAsInt()Ljava/util/function/ToIntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)I
                  com/oracle/truffle/js/snapshot/Recording.lambda$0(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)I (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)I
            invokeinterface java.util.stream.Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
            invokeinterface java.util.stream.IntStream.toArray:()[I
            areturn
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  args  [Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    MethodParameters:
      Name  Flags
      args  

  static int[] toIdArray(java.util.List<com.oracle.truffle.js.snapshot.Recording$Inst>);
    descriptor: (Ljava/util/List;)[I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List args
         0: .line 326
            aload 0 /* args */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic applyAsInt()Ljava/util/function/ToIntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)I
                  com/oracle/truffle/js/snapshot/Recording.lambda$1(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)I (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)I
            invokeinterface java.util.stream.Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
            invokeinterface java.util.stream.IntStream.toArray:()[I
            areturn
        end local 0 // java.util.List args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  args  Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;)[I
    MethodParameters:
      Name  Flags
      args  

  static java.lang.String typeName(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.Class cls
         0: .line 425
            aload 0 /* cls */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            bipush 36
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 1 /* fq */
        start local 1 // java.lang.String fq
         1: .line 426
            ldc "java.lang."
            astore 2 /* prefix */
        start local 2 // java.lang.String prefix
         2: .line 427
            aload 1 /* fq */
            aload 2 /* prefix */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 428
            aload 1 /* fq */
            aload 2 /* prefix */
            invokevirtual java.lang.String.length:()I
            aload 1 /* fq */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* fq */
         4: .line 430
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* fq */
            areturn
        end local 2 // java.lang.String prefix
        end local 1 // java.lang.String fq
        end local 0 // java.lang.Class cls
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0     cls  Ljava/lang/Class<*>;
            1    5     1      fq  Ljava/lang/String;
            2    5     2  prefix  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      cls   

  static java.lang.String typeName(java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.reflect.Type type
         0: .line 434
            aload 0 /* type */
            instanceof java.lang.Class
            ifeq 2
         1: .line 435
            aload 0 /* type */
            checkcast java.lang.Class
            invokestatic com.oracle.truffle.js.snapshot.Recording.typeName:(Ljava/lang/Class;)Ljava/lang/String;
            areturn
         2: .line 436
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 6
         3: .line 437
            new java.lang.StringBuilder
            dup
            aload 0 /* type */
            checkcast java.lang.reflect.ParameterizedType
            invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
            invokestatic com.oracle.truffle.js.snapshot.Recording.typeName:(Ljava/lang/reflect/Type;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 438
            aload 0 /* type */
            checkcast java.lang.reflect.ParameterizedType
            invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$2(Ljava/lang/reflect/Type;)Ljava/lang/String; (6)
                  (Ljava/lang/reflect/Type;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            ldc ","
            ldc "<"
            ldc ">"
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 437
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         6: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            instanceof java.lang.reflect.GenericArrayType
            ifeq 8
         7: .line 440
            new java.lang.StringBuilder
            dup
            aload 0 /* type */
            checkcast java.lang.reflect.GenericArrayType
            invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
            invokestatic com.oracle.truffle.js.snapshot.Recording.typeName:(Ljava/lang/reflect/Type;)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;
            areturn
         8: .line 442
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokeinterface java.lang.reflect.Type.getTypeName:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.reflect.Type type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  type  Ljava/lang/reflect/Type;
    MethodParameters:
      Name  Flags
      type  

  public <T> com.oracle.truffle.js.snapshot.Recording$Inst getOrPut(T, java.util.function.Function<T, com.oracle.truffle.js.snapshot.Recording$Inst>);
    descriptor: (Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.lang.Object arg
        start local 2 // java.util.function.Function makeInst
         0: .line 1101
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.table:Lcom/oracle/truffle/js/snapshot/Recording$VarIdTable;
            aload 1 /* arg */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$VarIdTable.contains:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1102
            aload 0 /* this */
            aload 1 /* arg */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getInst:(Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
         2: .line 1104
      StackMap locals:
      StackMap stack:
            aload 2 /* makeInst */
            aload 1 /* arg */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            astore 3 /* inst */
        start local 3 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         3: .line 1105
            aload 3 /* inst */
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.table:Lcom/oracle/truffle/js/snapshot/Recording$VarIdTable;
            aload 1 /* arg */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$VarIdTable.put:(Ljava/lang/Object;)I
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.assignId:(I)V
         4: .line 1106
            aload 0 /* this */
            aload 3 /* inst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.append:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
         5: .line 1107
            aload 3 /* inst */
            areturn
        end local 3 // com.oracle.truffle.js.snapshot.Recording$Inst inst
        end local 2 // java.util.function.Function makeInst
        end local 1 // java.lang.Object arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    6     1       arg  TT;
            0    6     2  makeInst  Ljava/util/function/Function<TT;Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
            3    6     3      inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    Signature: <T:Ljava/lang/Object;>(TT;Ljava/util/function/Function<TT;Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    MethodParameters:
          Name  Flags
      arg       
      makeInst  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
         0: .line 1111
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 130
            aload 0 /* this */
            new com.oracle.truffle.js.snapshot.Recording$VarIdTable
            dup
            invokespecial com.oracle.truffle.js.snapshot.Recording$VarIdTable.<init>:()V
            putfield com.oracle.truffle.js.snapshot.Recording.table:Lcom/oracle/truffle/js/snapshot/Recording$VarIdTable;
         2: .line 131
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.js.snapshot.Recording.defs:Ljava/util/Map;
         3: .line 132
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
         4: .line 133
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            putfield com.oracle.truffle.js.snapshot.Recording.callStack:Ljava/util/ArrayDeque;
         5: .line 134
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putfield com.oracle.truffle.js.snapshot.Recording.frameDescriptorSet:Ljava/util/Set;
         6: .line 135
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putfield com.oracle.truffle.js.snapshot.Recording.functionDataSet:Ljava/util/Set;
         7: .line 136
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            putfield com.oracle.truffle.js.snapshot.Recording.earlyFixups:Ljava/util/ArrayDeque;
         8: .line 137
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            putfield com.oracle.truffle.js.snapshot.Recording.lateFixups:Ljava/util/ArrayDeque;
         9: .line 139
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.js.snapshot.Recording.usageMap:Ljava/util/Map;
        10: .line 140
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.js.snapshot.Recording.instBatches:Ljava/util/List;
        11: .line 1112
            return
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/oracle/truffle/js/snapshot/Recording;

  public void recordCall(java.lang.reflect.Method, java.lang.Object[]);
    descriptor: (Ljava/lang/reflect/Method;[Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.Object[] args
         0: .line 1115
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.js.snapshot.Recording.processFixUps:(Z)V
         1: .line 1116
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.callStack:Ljava/util/ArrayDeque;
            new com.oracle.truffle.js.snapshot.Recording$MethodCall
            dup
            aload 1 /* method */
            aload 2 /* args */
            invokespecial com.oracle.truffle.js.snapshot.Recording$MethodCall.<init>:(Ljava/lang/reflect/Method;[Ljava/lang/Object;)V
            invokevirtual java.util.ArrayDeque.push:(Ljava/lang/Object;)V
         2: .line 1117
            return
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.reflect.Method method
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    3     1  method  Ljava/lang/reflect/Method;
            0    3     2    args  [Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      method  
      args    

  private com.oracle.truffle.js.snapshot.Recording$Inst[] encodeParameterArray([], java.lang.Class<?>[], java.lang.reflect.Type[]);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/reflect/Type;)[Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.lang.Object[] args
        start local 2 // java.lang.Class[] paramTypes
        start local 3 // java.lang.reflect.Type[] genericTypes
         0: .line 1120
            aload 1 /* args */
            arraylength
            anewarray com.oracle.truffle.js.snapshot.Recording$Inst
            astore 4 /* encoding */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst[] encoding
         1: .line 1121
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 7
         3: .line 1122
      StackMap locals: com.oracle.truffle.js.snapshot.Recording$Inst[] int
      StackMap stack:
            aload 4 /* encoding */
            iload 5 /* i */
            aload 0 /* this */
            aload 1 /* args */
            iload 5 /* i */
            aaload
            aload 2 /* paramTypes */
            iload 5 /* i */
            aaload
            aload 3 /* genericTypes */
            ifnull 4
            aload 3 /* genericTypes */
            iload 5 /* i */
            aaload
            goto 5
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.lang.Object[] java.lang.Class[] java.lang.reflect.Type[] com.oracle.truffle.js.snapshot.Recording$Inst[] int
      StackMap stack: com.oracle.truffle.js.snapshot.Recording$Inst[] int com.oracle.truffle.js.snapshot.Recording java.lang.Object java.lang.Class
         4: aconst_null
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.lang.Object[] java.lang.Class[] java.lang.reflect.Type[] com.oracle.truffle.js.snapshot.Recording$Inst[] int
      StackMap stack: com.oracle.truffle.js.snapshot.Recording$Inst[] int com.oracle.truffle.js.snapshot.Recording java.lang.Object java.lang.Class java.lang.reflect.Type
         5: invokevirtual com.oracle.truffle.js.snapshot.Recording.encode:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            aastore
         6: .line 1121
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 3
        end local 5 // int i
         8: .line 1124
            aload 4 /* encoding */
            areturn
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst[] encoding
        end local 3 // java.lang.reflect.Type[] genericTypes
        end local 2 // java.lang.Class[] paramTypes
        end local 1 // java.lang.Object[] args
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    9     1          args  [Ljava/lang/Object;
            0    9     2    paramTypes  [Ljava/lang/Class;
            0    9     3  genericTypes  [Ljava/lang/reflect/Type;
            1    9     4      encoding  [Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            2    8     5             i  I
    Signature: ([Ljava/lang/Object;[Ljava/lang/Class<*>;[Ljava/lang/reflect/Type;)[Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    MethodParameters:
              Name  Flags
      args          
      paramTypes    
      genericTypes  

  private com.oracle.truffle.js.snapshot.Recording$Inst[] encodeArray(, java.lang.Class<?>, java.lang.reflect.Type);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;)[Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.lang.Object args
        start local 2 // java.lang.Class declaredType
        start local 3 // java.lang.reflect.Type genericType
         0: .line 1128
            getstatic com.oracle.truffle.js.snapshot.Recording.$assertionsDisabled:Z
            ifne 1
            aload 2 /* declaredType */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1129
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.snapshot.Recording.$assertionsDisabled:Z
            ifne 2
            aload 1 /* args */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1130
      StackMap locals:
      StackMap stack:
            aload 2 /* declaredType */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            astore 4 /* elementType */
        start local 4 // java.lang.Class elementType
         3: .line 1131
            aload 3 /* genericType */
            instanceof java.lang.reflect.GenericArrayType
            ifeq 4
            aload 3 /* genericType */
            checkcast java.lang.reflect.GenericArrayType
            invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
            goto 5
      StackMap locals: java.lang.Class
      StackMap stack:
         4: aconst_null
      StackMap locals:
      StackMap stack: java.lang.reflect.Type
         5: astore 5 /* elementGenericType */
        start local 5 // java.lang.reflect.Type elementGenericType
         6: .line 1132
            aload 1 /* args */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            istore 6 /* length */
        start local 6 // int length
         7: .line 1133
            iload 6 /* length */
            anewarray com.oracle.truffle.js.snapshot.Recording$Inst
            astore 7 /* encoding */
        start local 7 // com.oracle.truffle.js.snapshot.Recording$Inst[] encoding
         8: .line 1134
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         9: goto 12
        10: .line 1135
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.lang.Object java.lang.Class java.lang.reflect.Type java.lang.Class java.lang.reflect.Type int com.oracle.truffle.js.snapshot.Recording$Inst[] int
      StackMap stack:
            aload 7 /* encoding */
            iload 8 /* i */
            aload 0 /* this */
            aload 1 /* args */
            iload 8 /* i */
            invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
            aload 4 /* elementType */
            aload 5 /* elementGenericType */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.encode:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            aastore
        11: .line 1134
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 8 /* i */
            iload 6 /* length */
            if_icmplt 10
        end local 8 // int i
        13: .line 1137
            aload 7 /* encoding */
            areturn
        end local 7 // com.oracle.truffle.js.snapshot.Recording$Inst[] encoding
        end local 6 // int length
        end local 5 // java.lang.reflect.Type elementGenericType
        end local 4 // java.lang.Class elementType
        end local 3 // java.lang.reflect.Type genericType
        end local 2 // java.lang.Class declaredType
        end local 1 // java.lang.Object args
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   14     0                this  Lcom/oracle/truffle/js/snapshot/Recording;
            0   14     1                args  Ljava/lang/Object;
            0   14     2        declaredType  Ljava/lang/Class<*>;
            0   14     3         genericType  Ljava/lang/reflect/Type;
            3   14     4         elementType  Ljava/lang/Class<*>;
            6   14     5  elementGenericType  Ljava/lang/reflect/Type;
            7   14     6              length  I
            8   14     7            encoding  [Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            9   13     8                   i  I
    Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;)[Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    MethodParameters:
              Name  Flags
      args          
      declaredType  
      genericType   

  private java.util.ArrayList<com.oracle.truffle.js.snapshot.Recording$Inst> encodeList(java.util.ArrayList<?>, java.lang.reflect.Type);
    descriptor: (Ljava/util/ArrayList;Ljava/lang/reflect/Type;)Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.util.ArrayList args
        start local 2 // java.lang.reflect.Type genericType
         0: .line 1141
            aload 2 /* genericType */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 1
            aload 2 /* genericType */
            checkcast java.lang.reflect.ParameterizedType
            invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
            iconst_0
            aaload
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.reflect.Type
         2: astore 3 /* elementGenericType */
        start local 3 // java.lang.reflect.Type elementGenericType
         3: .line 1142
            aload 3 /* elementGenericType */
            invokestatic com.oracle.truffle.js.snapshot.Recording.getRawType:(Ljava/lang/reflect/Type;)Ljava/lang/Class;
            astore 4 /* elementType */
        start local 4 // java.lang.Class elementType
         4: .line 1143
            new java.util.ArrayList
            dup
            aload 1 /* args */
            invokevirtual java.util.ArrayList.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* encoding */
        start local 5 // java.util.ArrayList encoding
         5: .line 1144
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 9
         7: .line 1145
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.ArrayList java.lang.reflect.Type java.lang.reflect.Type java.lang.Class java.util.ArrayList int
      StackMap stack:
            aload 5 /* encoding */
            iload 6 /* i */
            aload 0 /* this */
            aload 1 /* args */
            iload 6 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            aload 4 /* elementType */
            aload 3 /* elementGenericType */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.encode:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
         8: .line 1144
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* i */
            aload 1 /* args */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 7
        end local 6 // int i
        10: .line 1147
            aload 5 /* encoding */
            areturn
        end local 5 // java.util.ArrayList encoding
        end local 4 // java.lang.Class elementType
        end local 3 // java.lang.reflect.Type elementGenericType
        end local 2 // java.lang.reflect.Type genericType
        end local 1 // java.util.ArrayList args
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0                this  Lcom/oracle/truffle/js/snapshot/Recording;
            0   11     1                args  Ljava/util/ArrayList<*>;
            0   11     2         genericType  Ljava/lang/reflect/Type;
            3   11     3  elementGenericType  Ljava/lang/reflect/Type;
            4   11     4         elementType  Ljava/lang/Class<*>;
            5   11     5            encoding  Ljava/util/ArrayList<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
            6   10     6                   i  I
    Signature: (Ljava/util/ArrayList<*>;Ljava/lang/reflect/Type;)Ljava/util/ArrayList<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
    MethodParameters:
             Name  Flags
      args         
      genericType  

  private static java.lang.Class<?> getRawType(java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.reflect.Type genericType
         0: .line 1151
            aload 0 /* genericType */
            ifnonnull 2
         1: .line 1152
            aconst_null
            areturn
         2: .line 1153
      StackMap locals:
      StackMap stack:
            aload 0 /* genericType */
            instanceof java.lang.Class
            ifeq 4
         3: .line 1154
            aload 0 /* genericType */
            checkcast java.lang.Class
            areturn
         4: .line 1155
      StackMap locals:
      StackMap stack:
            aload 0 /* genericType */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 6
         5: .line 1156
            aload 0 /* genericType */
            checkcast java.lang.reflect.ParameterizedType
            invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
            checkcast java.lang.Class
            areturn
         6: .line 1158
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        end local 0 // java.lang.reflect.Type genericType
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0  genericType  Ljava/lang/reflect/Type;
    Signature: (Ljava/lang/reflect/Type;)Ljava/lang/Class<*>;
    MethodParameters:
             Name  Flags
      genericType  

  private com.oracle.truffle.js.snapshot.Recording$Inst getInst(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.lang.Object arg
         0: .line 1163
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.table:Lcom/oracle/truffle/js/snapshot/Recording$VarIdTable;
            aload 1 /* arg */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$VarIdTable.getId:(Ljava/lang/Object;)I
            istore 2 /* id */
        start local 2 // int id
         1: .line 1164
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.defs:Ljava/util/Map;
            iload 2 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            areturn
        end local 2 // int id
        end local 1 // java.lang.Object arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    2     1   arg  Ljava/lang/Object;
            1    2     2    id  I
    MethodParameters:
      Name  Flags
      arg   

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpConst(, java.lang.Class<?>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.lang.Object arg
        start local 2 // java.lang.Class declaredType
         0: .line 1168
            aload 0 /* this */
            aload 1 /* arg */
            aload 1 /* arg */
            aload 2 /* declaredType */
            invokedynamic apply(Ljava/lang/Object;Ljava/lang/Class;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$3(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (6)
                  (Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getOrPut:(Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 2 // java.lang.Class declaredType
        end local 1 // java.lang.Object arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1           arg  Ljava/lang/Object;
            0    1     2  declaredType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    MethodParameters:
              Name  Flags
      arg           
      declaredType  

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpNode(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.api.nodes.Node arg
         0: .line 1172
            aload 0 /* this */
            aload 1 /* arg */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getInst:(Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 1 // com.oracle.truffle.api.nodes.Node arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1   arg  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      arg   

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpContext(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.js.runtime.JSContext arg
         0: .line 1176
            aload 0 /* this */
            aload 1 /* arg */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$4(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (6)
                  (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getOrPut:(Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 1 // com.oracle.truffle.js.runtime.JSContext arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1   arg  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
      Name  Flags
      arg   

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpCollectArray(com.oracle.truffle.js.snapshot.Recording$Inst[], java.lang.Class<?>);
    descriptor: ([Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/lang/Class;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst[] arg
        start local 2 // java.lang.Class arrayClass
         0: .line 1180
            getstatic com.oracle.truffle.js.snapshot.Recording.$assertionsDisabled:Z
            ifne 1
            aload 2 /* arrayClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* arg */
            aload 2 /* arrayClass */
            invokedynamic apply(Ljava/lang/Class;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$5(Ljava/lang/Class;[Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (6)
                  ([Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getOrPut:(Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 2 // java.lang.Class arrayClass
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst[] arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    2     1         arg  [Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            0    2     2  arrayClass  Ljava/lang/Class<*>;
    Signature: ([Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/lang/Class<*>;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    MethodParameters:
            Name  Flags
      arg         
      arrayClass  

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpCollectList(java.util.List<com.oracle.truffle.js.snapshot.Recording$Inst>, java.lang.reflect.Type);
    descriptor: (Ljava/util/List;Ljava/lang/reflect/Type;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.util.List arg
        start local 2 // java.lang.reflect.Type genericType
         0: .line 1185
            aload 0 /* this */
            aload 1 /* arg */
            aload 2 /* genericType */
            invokedynamic apply(Ljava/lang/reflect/Type;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$6(Ljava/lang/reflect/Type;Ljava/util/List;)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (6)
                  (Ljava/util/List;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getOrPut:(Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 2 // java.lang.reflect.Type genericType
        end local 1 // java.util.List arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1          arg  Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
            0    1     2  genericType  Ljava/lang/reflect/Type;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;Ljava/lang/reflect/Type;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    MethodParameters:
             Name  Flags
      arg          
      genericType  

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpCallTarget(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.api.CallTarget arg
         0: .line 1189
            aload 0 /* this */
            aload 1 /* arg */
            aload 0 /* this */
            invokedynamic apply(Lcom/oracle/truffle/js/snapshot/Recording;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$7(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (7)
                  (Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getOrPut:(Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 1 // com.oracle.truffle.api.CallTarget arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1   arg  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
      Name  Flags
      arg   

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpPlaceholder(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.lang.Object arg
         0: .line 1193
            aload 0 /* this */
            aload 1 /* arg */
            aload 1 /* arg */
            invokedynamic apply(Ljava/lang/Object;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$8(Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (6)
                  (Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getOrPut:(Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 1 // java.lang.Object arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1   arg  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      arg   

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpFrameSlot(com.oracle.truffle.api.frame.FrameSlot);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.api.frame.FrameSlot arg
         0: .line 1197
            aload 0 /* this */
            aload 1 /* arg */
            aload 0 /* this */
            invokedynamic apply(Lcom/oracle/truffle/js/snapshot/Recording;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$9(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (7)
                  (Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getOrPut:(Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 1 // com.oracle.truffle.api.frame.FrameSlot arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1   arg  Lcom/oracle/truffle/api/frame/FrameSlot;
    MethodParameters:
      Name  Flags
      arg   

  private com.oracle.truffle.api.frame.FrameDescriptor getFrameDescriptor(com.oracle.truffle.api.frame.FrameSlot);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/api/frame/FrameDescriptor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.api.frame.FrameSlot slot
         0: .line 1201
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.frameDescriptorSet:Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            aload 1 /* slot */
            invokedynamic test(Lcom/oracle/truffle/api/frame/FrameSlot;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$10(Lcom/oracle/truffle/api/frame/FrameSlot;Lcom/oracle/truffle/api/frame/FrameDescriptor;)Z (6)
                  (Lcom/oracle/truffle/api/frame/FrameDescriptor;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
         1: .line 1202
            aload 1 /* slot */
            invokedynamic get(Lcom/oracle/truffle/api/frame/FrameSlot;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$11(Lcom/oracle/truffle/api/frame/FrameSlot;)Ljava/util/NoSuchElementException; (6)
                  ()Ljava/util/NoSuchElementException;
         2: .line 1201
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.frame.FrameDescriptor
            areturn
        end local 1 // com.oracle.truffle.api.frame.FrameSlot slot
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    3     1  slot  Lcom/oracle/truffle/api/frame/FrameSlot;
    MethodParameters:
      Name  Flags
      slot  

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpFrameDescriptor(com.oracle.truffle.api.frame.FrameDescriptor);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.api.frame.FrameDescriptor arg
         0: .line 1206
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.frameDescriptorSet:Ljava/util/Set;
            aload 1 /* arg */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 1207
            aload 0 /* this */
            aload 1 /* arg */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$12(Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (6)
                  (Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getOrPut:(Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 1 // com.oracle.truffle.api.frame.FrameDescriptor arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    2     1   arg  Lcom/oracle/truffle/api/frame/FrameDescriptor;
    MethodParameters:
      Name  Flags
      arg   

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpFunctionData(com.oracle.truffle.js.runtime.builtins.JSFunctionData);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData arg
         0: .line 1211
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.functionDataSet:Ljava/util/Set;
            aload 1 /* arg */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 1212
            aload 0 /* this */
            aload 1 /* arg */
            aload 0 /* this */
            invokedynamic apply(Lcom/oracle/truffle/js/snapshot/Recording;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$13(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (7)
                  (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getOrPut:(Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    2     1   arg  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    MethodParameters:
      Name  Flags
      arg   

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpBreakTarget(com.oracle.truffle.js.nodes.control.BreakTarget);
    descriptor: (Lcom/oracle/truffle/js/nodes/control/BreakTarget;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.js.nodes.control.BreakTarget arg
         0: .line 1216
            aload 0 /* this */
            aload 1 /* arg */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$14(Lcom/oracle/truffle/js/nodes/control/BreakTarget;)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (6)
                  (Lcom/oracle/truffle/js/nodes/control/BreakTarget;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getOrPut:(Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 1 // com.oracle.truffle.js.nodes.control.BreakTarget arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1   arg  Lcom/oracle/truffle/js/nodes/control/BreakTarget;
    MethodParameters:
      Name  Flags
      arg   

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpSource(com.oracle.truffle.api.source.Source);
    descriptor: (Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.api.source.Source arg
         0: .line 1220
            aload 0 /* this */
            aload 1 /* arg */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$15(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (6)
                  (Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getOrPut:(Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 1 // com.oracle.truffle.api.source.Source arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1   arg  Lcom/oracle/truffle/api/source/Source;
    MethodParameters:
      Name  Flags
      arg   

  private com.oracle.truffle.js.snapshot.Recording$Inst dumpSourceSection(com.oracle.truffle.api.source.SourceSection);
    descriptor: (Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.api.source.SourceSection arg
         0: .line 1224
            aload 0 /* this */
            aload 1 /* arg */
            aload 0 /* this */
            aload 1 /* arg */
            invokedynamic apply(Lcom/oracle/truffle/js/snapshot/Recording;Lcom/oracle/truffle/api/source/SourceSection;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$16(Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (7)
                  (Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getOrPut:(Ljava/lang/Object;Ljava/util/function/Function;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 1 // com.oracle.truffle.api.source.SourceSection arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1   arg  Lcom/oracle/truffle/api/source/SourceSection;
    MethodParameters:
      Name  Flags
      arg   

  private com.oracle.truffle.js.snapshot.Recording$Inst encode(, java.lang.Class<?>, java.lang.reflect.Type);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.lang.Object arg
        start local 2 // java.lang.Class declaredType
        start local 3 // java.lang.reflect.Type genericType
         0: .line 1229
            aload 1 /* arg */
            ifnull 1
            aload 1 /* arg */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isJSPrimitive:(Ljava/lang/Object;)Z
            ifne 1
            aload 1 /* arg */
            invokestatic com.oracle.truffle.js.runtime.objects.Dead.instance:()Lcom/oracle/truffle/js/runtime/objects/Dead;
            if_acmpne 3
         1: .line 1230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* arg */
            aload 1 /* arg */
            aload 2 /* declaredType */
            invokestatic com.oracle.truffle.js.snapshot.Recording.unboxedType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Class;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpConst:(Ljava/lang/Object;Ljava/lang/Class;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
         2: .line 1231
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
      StackMap locals:
      StackMap stack:
         3: aload 1 /* arg */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isEnum:()Z
            ifeq 6
         4: .line 1232
            aload 0 /* this */
            aload 1 /* arg */
            aload 2 /* declaredType */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpConst:(Ljava/lang/Object;Ljava/lang/Class;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
         5: .line 1233
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
      StackMap locals:
      StackMap stack:
         6: aload 1 /* arg */
            instanceof com.oracle.truffle.api.nodes.Node
            ifeq 9
         7: .line 1234
            aload 0 /* this */
            aload 1 /* arg */
            checkcast com.oracle.truffle.api.nodes.Node
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
         8: .line 1235
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
      StackMap locals:
      StackMap stack:
         9: aload 1 /* arg */
            instanceof com.oracle.truffle.js.runtime.JSContext
            ifeq 12
        10: .line 1236
            aload 0 /* this */
            aload 1 /* arg */
            checkcast com.oracle.truffle.js.runtime.JSContext
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpContext:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        11: .line 1237
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
      StackMap locals:
      StackMap stack:
        12: aload 1 /* arg */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 15
        13: .line 1238
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* arg */
            aload 1 /* arg */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* genericType */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.encodeArray:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;)[Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            aload 1 /* arg */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpCollectArray:([Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/lang/Class;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        14: .line 1239
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
      StackMap locals:
      StackMap stack:
        15: aload 1 /* arg */
            instanceof java.util.ArrayList
            ifeq 18
        16: .line 1240
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* arg */
            checkcast java.util.ArrayList
            aload 3 /* genericType */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.encodeList:(Ljava/util/ArrayList;Ljava/lang/reflect/Type;)Ljava/util/ArrayList;
            aload 3 /* genericType */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpCollectList:(Ljava/util/List;Ljava/lang/reflect/Type;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        17: .line 1241
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
      StackMap locals:
      StackMap stack:
        18: aload 1 /* arg */
            instanceof com.oracle.truffle.api.CallTarget
            ifeq 21
        19: .line 1242
            aload 0 /* this */
            aload 1 /* arg */
            checkcast com.oracle.truffle.api.CallTarget
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpCallTarget:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        20: .line 1243
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
      StackMap locals:
      StackMap stack:
        21: aload 1 /* arg */
            instanceof com.oracle.truffle.js.nodes.control.BreakTarget
            ifeq 24
        22: .line 1244
            aload 0 /* this */
            aload 1 /* arg */
            checkcast com.oracle.truffle.js.nodes.control.BreakTarget
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpBreakTarget:(Lcom/oracle/truffle/js/nodes/control/BreakTarget;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        23: .line 1245
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
      StackMap locals:
      StackMap stack:
        24: aload 1 /* arg */
            instanceof com.oracle.truffle.api.frame.FrameDescriptor
            ifeq 27
        25: .line 1246
            aload 0 /* this */
            aload 1 /* arg */
            checkcast com.oracle.truffle.api.frame.FrameDescriptor
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpFrameDescriptor:(Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        26: .line 1247
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
      StackMap locals:
      StackMap stack:
        27: aload 1 /* arg */
            instanceof com.oracle.truffle.api.frame.FrameSlot
            ifeq 30
        28: .line 1248
            aload 0 /* this */
            aload 1 /* arg */
            checkcast com.oracle.truffle.api.frame.FrameSlot
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpFrameSlot:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        29: .line 1249
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
      StackMap locals:
      StackMap stack:
        30: aload 1 /* arg */
            instanceof com.oracle.truffle.js.runtime.builtins.JSFunctionData
            ifeq 33
        31: .line 1250
            aload 0 /* this */
            aload 1 /* arg */
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionData
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpFunctionData:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        32: .line 1251
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
      StackMap locals:
      StackMap stack:
        33: aload 1 /* arg */
            instanceof com.oracle.truffle.api.source.SourceSection
            ifeq 36
        34: .line 1252
            aload 0 /* this */
            aload 1 /* arg */
            checkcast com.oracle.truffle.api.source.SourceSection
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpSourceSection:(Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        35: .line 1253
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
      StackMap locals:
      StackMap stack:
        36: aload 1 /* arg */
            instanceof com.oracle.truffle.js.parser.env.Environment
            ifeq 39
        37: .line 1254
            aload 0 /* this */
            aload 1 /* arg */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpPlaceholder:(Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* enc */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        38: .line 1255
            goto 40
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        39: .line 1256
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized argument: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        40: .line 1258
      StackMap locals: com.oracle.truffle.js.snapshot.Recording$Inst
      StackMap stack:
            aload 4 /* enc */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            areturn
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst enc
        end local 3 // java.lang.reflect.Type genericType
        end local 2 // java.lang.Class declaredType
        end local 1 // java.lang.Object arg
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   41     0          this  Lcom/oracle/truffle/js/snapshot/Recording;
            0   41     1           arg  Ljava/lang/Object;
            0   41     2  declaredType  Ljava/lang/Class<*>;
            0   41     3   genericType  Ljava/lang/reflect/Type;
            2    3     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            5    6     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            8    9     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           11   12     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           14   15     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           17   18     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           20   21     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           23   24     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           26   27     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           29   30     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           32   33     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           35   36     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           38   39     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           40   41     4           enc  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    MethodParameters:
              Name  Flags
      arg           
      declaredType  
      genericType   

  private static java.lang.Class<?> unboxedType(, java.lang.Class<?>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.lang.Object arg
        start local 1 // java.lang.Class declaredType
         0: .line 1262
            aload 0 /* arg */
            instanceof java.lang.Boolean
            ifeq 2
         1: .line 1263
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            areturn
         2: .line 1264
      StackMap locals:
      StackMap stack:
            aload 0 /* arg */
            instanceof java.lang.Integer
            ifeq 4
         3: .line 1265
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
         4: .line 1266
      StackMap locals:
      StackMap stack:
            aload 0 /* arg */
            instanceof java.lang.Double
            ifeq 6
         5: .line 1267
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            areturn
         6: .line 1268
      StackMap locals:
      StackMap stack:
            aload 0 /* arg */
            instanceof java.lang.Long
            ifeq 8
         7: .line 1269
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            areturn
         8: .line 1271
      StackMap locals:
      StackMap stack:
            aload 1 /* declaredType */
            areturn
        end local 1 // java.lang.Class declaredType
        end local 0 // java.lang.Object arg
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0           arg  Ljava/lang/Object;
            0    9     1  declaredType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
    MethodParameters:
              Name  Flags
      arg           
      declaredType  

  public <T> T recordReturn(java.lang.reflect.Method, );
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.Object result
         0: .line 1275
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.callStack:Ljava/util/ArrayDeque;
            invokevirtual java.util.ArrayDeque.pop:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$MethodCall
            astore 3 /* methodCall */
        start local 3 // com.oracle.truffle.js.snapshot.Recording$MethodCall methodCall
         1: .line 1276
            getstatic com.oracle.truffle.js.snapshot.Recording.$assertionsDisabled:Z
            ifne 2
            aload 3 /* methodCall */
            getfield com.oracle.truffle.js.snapshot.Recording$MethodCall.method:Ljava/lang/reflect/Method;
            aload 1 /* method */
            if_acmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1277
      StackMap locals: com.oracle.truffle.js.snapshot.Recording$MethodCall
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.table:Lcom/oracle/truffle/js/snapshot/Recording$VarIdTable;
            aload 2 /* result */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$VarIdTable.contains:(Ljava/lang/Object;)Z
            ifne 8
         3: .line 1278
            aload 0 /* this */
            aload 3 /* methodCall */
            getfield com.oracle.truffle.js.snapshot.Recording$MethodCall.args:[Ljava/lang/Object;
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.encodeParameterArray:([Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/reflect/Type;)[Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 4 /* encoded */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst[] encoded
         4: .line 1279
            new com.oracle.truffle.js.snapshot.Recording$NodeInst
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.table:Lcom/oracle/truffle/js/snapshot/Recording$VarIdTable;
            aload 2 /* result */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$VarIdTable.put:(Ljava/lang/Object;)I
            aload 1 /* method */
            aload 4 /* encoded */
            aload 2 /* result */
            invokespecial com.oracle.truffle.js.snapshot.Recording$NodeInst.<init>:(ILjava/lang/reflect/Method;[Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/lang/Object;)V
            astore 5 /* nodeInst */
        start local 5 // com.oracle.truffle.js.snapshot.Recording$NodeInst nodeInst
         5: .line 1280
            aload 0 /* this */
            aload 5 /* nodeInst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.append:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
         6: .line 1281
            aload 0 /* this */
            aload 5 /* nodeInst */
            aload 2 /* result */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.addNodeFixUps:(Lcom/oracle/truffle/js/snapshot/Recording$NodeInst;Ljava/lang/Object;)V
        end local 5 // com.oracle.truffle.js.snapshot.Recording$NodeInst nodeInst
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst[] encoded
         7: .line 1282
            goto 9
         8: .line 1283
      StackMap locals:
      StackMap stack:
            ldc "noop: %s => %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aload 2 /* result */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getInst:(Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            aastore
            invokestatic com.oracle.truffle.js.snapshot.Recording.logv:(Ljava/lang/String;[Ljava/lang/Object;)V
         9: .line 1285
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 3 // com.oracle.truffle.js.snapshot.Recording$MethodCall methodCall
        end local 2 // java.lang.Object result
        end local 1 // java.lang.reflect.Method method
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/oracle/truffle/js/snapshot/Recording;
            0   10     1      method  Ljava/lang/reflect/Method;
            0   10     2      result  TT;
            1   10     3  methodCall  Lcom/oracle/truffle/js/snapshot/Recording$MethodCall;
            4    7     4     encoded  [Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            5    7     5    nodeInst  Lcom/oracle/truffle/js/snapshot/Recording$NodeInst;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/reflect/Method;TT;)TT;
    MethodParameters:
        Name  Flags
      method  
      result  

  private void append(com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         0: .line 1289
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.defs:Ljava/util/Map;
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* inst */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1290
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.inVar:()Z
            ifeq 3
         2: .line 1291
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            aload 1 /* inst */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         3: .line 1293
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst inst
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    4     1  inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    MethodParameters:
      Name  Flags
      inst  

  private void addNodeFixUps(com.oracle.truffle.js.snapshot.Recording$NodeInst, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$NodeInst;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.js.snapshot.Recording$NodeInst nodeInst
        start local 2 // java.lang.Object result
         0: .line 1296
            aload 2 /* result */
            instanceof com.oracle.truffle.js.runtime.builtins.JSFunctionData
            ifeq 5
         1: .line 1297
            aload 2 /* result */
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionData
            astore 3 /* functionData */
        start local 3 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         2: .line 1298
            aload 3 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getName:()Ljava/lang/String;
            astore 4 /* originalName */
        start local 4 // java.lang.String originalName
         3: .line 1299
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* functionData */
            aload 4 /* originalName */
            aload 1 /* nodeInst */
            invokedynamic apply(Lcom/oracle/truffle/js/snapshot/Recording;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Ljava/lang/String;Lcom/oracle/truffle/js/snapshot/Recording$NodeInst;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$17(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Ljava/lang/String;Lcom/oracle/truffle/js/snapshot/Recording$NodeInst;Ljava/lang/Boolean;)Ljava/lang/Boolean; (7)
                  (Ljava/lang/Boolean;)Ljava/lang/Boolean;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.addFixUp:(Ljava/util/function/Function;)V
        end local 4 // java.lang.String originalName
        end local 3 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         4: .line 1307
            goto 7
      StackMap locals:
      StackMap stack:
         5: aload 2 /* result */
            instanceof com.oracle.truffle.api.frame.FrameDescriptor
            ifeq 7
         6: .line 1308
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.frameDescriptorSet:Ljava/util/Set;
            aload 2 /* result */
            checkcast com.oracle.truffle.api.frame.FrameDescriptor
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 1317
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            instanceof com.oracle.truffle.js.nodes.JavaScriptNode
            ifeq 11
         8: .line 1318
            aload 2 /* result */
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            astore 3 /* jsnode */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode jsnode
         9: .line 1320
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* jsnode */
            aload 1 /* nodeInst */
            invokedynamic apply(Lcom/oracle/truffle/js/snapshot/Recording;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/snapshot/Recording$NodeInst;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$18(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/snapshot/Recording$NodeInst;Ljava/lang/Boolean;)Ljava/lang/Boolean; (7)
                  (Ljava/lang/Boolean;)Ljava/lang/Boolean;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.addFixUp:(Ljava/util/function/Function;)V
        10: .line 1330
            aload 0 /* this */
            new com.oracle.truffle.js.snapshot.Recording$1
            dup
            aload 0 /* this */
            aload 3 /* jsnode */
            aload 1 /* nodeInst */
            invokespecial com.oracle.truffle.js.snapshot.Recording$1.<init>:(Lcom/oracle/truffle/js/snapshot/Recording;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/snapshot/Recording$NodeInst;)V
            invokevirtual com.oracle.truffle.js.snapshot.Recording.addFixUp:(Ljava/util/function/Function;)V
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode jsnode
        11: .line 1356
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object result
        end local 1 // com.oracle.truffle.js.snapshot.Recording$NodeInst nodeInst
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lcom/oracle/truffle/js/snapshot/Recording;
            0   12     1      nodeInst  Lcom/oracle/truffle/js/snapshot/Recording$NodeInst;
            0   12     2        result  Ljava/lang/Object;
            2    4     3  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            3    4     4  originalName  Ljava/lang/String;
            9   11     3        jsnode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
          Name  Flags
      nodeInst  
      result    

  private void addFixUp(java.util.function.Function<java.lang.Boolean, java.lang.Boolean>);
    descriptor: (Ljava/util/function/Function;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.util.function.Function fixup
         0: .line 1359
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.earlyFixups:Ljava/util/ArrayDeque;
            aload 1 /* fixup */
            invokevirtual java.util.ArrayDeque.add:(Ljava/lang/Object;)Z
            pop
         1: .line 1360
            return
        end local 1 // java.util.function.Function fixup
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    2     1  fixup  Ljava/util/function/Function<Ljava/lang/Boolean;Ljava/lang/Boolean;>;
    Signature: (Ljava/util/function/Function<Ljava/lang/Boolean;Ljava/lang/Boolean;>;)V
    MethodParameters:
       Name  Flags
      fixup  

  private void processFixUps(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // boolean earlyFixup
         0: .line 1363
            iload 1 /* earlyFixup */
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.earlyFixups:Ljava/util/ArrayDeque;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.lateFixups:Ljava/util/ArrayDeque;
      StackMap locals:
      StackMap stack: java.util.ArrayDeque
         2: astore 2 /* fixups */
        start local 2 // java.util.ArrayDeque fixups
         3: .line 1364
            aload 2 /* fixups */
            invokevirtual java.util.ArrayDeque.isEmpty:()Z
            ifne 5
         4: .line 1365
            aload 2 /* fixups */
            iload 1 /* earlyFixup */
            invokedynamic test(Z)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$19(ZLjava/util/function/Function;)Z (6)
                  (Ljava/util/function/Function;)Z
            invokevirtual java.util.ArrayDeque.removeIf:(Ljava/util/function/Predicate;)Z
            pop
         5: .line 1367
      StackMap locals: java.util.ArrayDeque
      StackMap stack:
            iload 1 /* earlyFixup */
            ifeq 9
         6: .line 1368
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.lateFixups:Ljava/util/ArrayDeque;
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.earlyFixups:Ljava/util/ArrayDeque;
            invokevirtual java.util.ArrayDeque.addAll:(Ljava/util/Collection;)Z
            pop
         7: .line 1369
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.earlyFixups:Ljava/util/ArrayDeque;
            invokevirtual java.util.ArrayDeque.clear:()V
         8: .line 1370
            goto 10
         9: .line 1371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.lateFixups:Ljava/util/ArrayDeque;
            invokevirtual java.util.ArrayDeque.clear:()V
        10: .line 1373
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.ArrayDeque fixups
        end local 1 // boolean earlyFixup
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lcom/oracle/truffle/js/snapshot/Recording;
            0   11     1  earlyFixup  Z
            3   11     2      fixups  Ljava/util/ArrayDeque<Ljava/util/function/Function<Ljava/lang/Boolean;Ljava/lang/Boolean;>;>;
    MethodParameters:
            Name  Flags
      earlyFixup  

  private void dce();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
         0: .line 1376
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            astore 1 /* visited */
        start local 1 // java.util.BitSet visited
         1: .line 1377
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 1378
      StackMap locals: java.util.BitSet int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            astore 3 /* root */
        start local 3 // com.oracle.truffle.js.snapshot.Recording$Inst root
         4: .line 1379
            aload 3 /* root */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.isRoot:()Z
            ifeq 6
         5: .line 1380
            aload 3 /* root */
            aload 1 /* visited */
            invokestatic com.oracle.truffle.js.snapshot.Recording.reachableSet:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;)V
        end local 3 // com.oracle.truffle.js.snapshot.Recording$Inst root
         6: .line 1377
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            ifge 3
        end local 2 // int i
         8: .line 1391
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            aload 1 /* visited */
            invokedynamic test(Ljava/util/BitSet;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$21(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            invokevirtual java.util.ArrayList.removeIf:(Ljava/util/function/Predicate;)Z
            pop
         9: .line 1392
            return
        end local 1 // java.util.BitSet visited
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/oracle/truffle/js/snapshot/Recording;
            1   10     1  visited  Ljava/util/BitSet;
            2    8     2        i  I
            4    6     3     root  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  public void finish(com.oracle.truffle.api.nodes.RootNode);
    descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.api.nodes.RootNode rootNode
         0: .line 1395
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.truffle.js.snapshot.Recording.processFixUps:(Z)V
         1: .line 1396
            aload 0 /* this */
            new com.oracle.truffle.js.snapshot.Recording$ReturnInst
            dup
            aload 0 /* this */
            aload 1 /* rootNode */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getInst:(Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokespecial com.oracle.truffle.js.snapshot.Recording$ReturnInst.<init>:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            invokevirtual com.oracle.truffle.js.snapshot.Recording.append:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
         2: .line 1397
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dce:()V
         3: .line 1400
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.buildBatches:()V
         4: .line 1403
            aload 0 /* this */
            aload 1 /* rootNode */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            putfield com.oracle.truffle.js.snapshot.Recording.source:Lcom/oracle/truffle/api/source/Source;
         5: .line 1404
            return
        end local 1 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    6     1  rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
    MethodParameters:
          Name  Flags
      rootNode  

  private void buildUsageMap();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
         0: .line 1407
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/snapshot/Recording;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$22(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V (7)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            invokevirtual java.util.ArrayList.forEach:(Ljava/util/function/Consumer;)V
         1: .line 1408
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: com.oracle.truffle.js.snapshot.Recording top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            astore 1 /* inst */
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         3: .line 1409
            aload 1 /* inst */
            aload 0 /* this */
            aload 1 /* inst */
            invokedynamic accept(Lcom/oracle/truffle/js/snapshot/Recording;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$23(Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V (7)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.forEachInput:(Ljava/util/function/Consumer;)V
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         4: .line 1408
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1416
            return
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            3    4     1  inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private void assignIndices();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
         0: .line 1419
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 4
         2: .line 1420
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            iload 1 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            iload 1 /* i */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.setIndex:(I)V
         3: .line 1419
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 1 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 2
        end local 1 // int i
         5: .line 1422
            return
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            1    5     1     i  I

  private void buildBatches();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=18, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
         0: .line 1456
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.buildUsageMap:()V
         1: .line 1457
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.assignIndices:()V
         2: .line 1459
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 1 /* batches */
        start local 1 // java.util.Map batches
         3: .line 1461
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            astore 2 /* returnInst */
        start local 2 // com.oracle.truffle.js.snapshot.Recording$Inst returnInst
         4: .line 1462
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 3 /* worklist */
        start local 3 // java.util.Deque worklist
         5: .line 1463
            aload 3 /* worklist */
            new com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem
            dup
            aload 0 /* this */
            aload 2 /* returnInst */
            invokespecial com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem.<init>:(Lcom/oracle/truffle/js/snapshot/Recording;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
            pop
         6: .line 1464
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* startInstsVisited */
        start local 4 // java.util.Set startInstsVisited
         7: .line 1465
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* extractedMethodMap */
        start local 5 // java.util.Map extractedMethodMap
         8: .line 1467
            iconst_0
            istore 6 /* count */
        start local 6 // int count
         9: .line 1468
            goto 38
        10: .line 1469
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map com.oracle.truffle.js.snapshot.Recording$Inst java.util.Deque java.util.Set java.util.Map int
      StackMap stack:
            aload 3 /* worklist */
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem
            astore 7 /* batchBoundary */
        start local 7 // com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem batchBoundary
        11: .line 1470
            aload 7 /* batchBoundary */
            getfield com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem.startInst:Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 8 /* startInst */
        start local 8 // com.oracle.truffle.js.snapshot.Recording$Inst startInst
        12: .line 1471
            aload 7 /* batchBoundary */
            getfield com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem.outerExtractedSet:Ljava/util/BitSet;
            astore 9 /* outerExtractedSet */
        start local 9 // java.util.BitSet outerExtractedSet
        13: .line 1472
            aload 4 /* startInstsVisited */
            aload 8 /* startInst */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifne 15
        14: .line 1473
            goto 38
        15: .line 1476
      StackMap locals: com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem com.oracle.truffle.js.snapshot.Recording$Inst java.util.BitSet
      StackMap stack:
            ldc "starting batch '%s' at: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* startInst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 8 /* startInst */
            aastore
            invokestatic com.oracle.truffle.js.snapshot.Recording.logv:(Ljava/lang/String;[Ljava/lang/Object;)V
        16: .line 1480
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* boundaryValues */
        start local 10 // java.util.List boundaryValues
        17: .line 1481
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            astore 11 /* visited */
        start local 11 // java.util.BitSet visited
        18: .line 1482
            aload 8 /* startInst */
            aload 11 /* visited */
            aload 8 /* startInst */
            aload 9 /* outerExtractedSet */
            invokedynamic visitInst(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;)Lcom/oracle/truffle/js/snapshot/Recording$Inst$Visitor;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$24(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.accept:(Lcom/oracle/truffle/js/snapshot/Recording$Inst$Visitor;)V
        19: .line 1509
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            astore 13 /* usageSet */
        start local 13 // java.util.BitSet usageSet
        20: .line 1510
            aload 13 /* usageSet */
            aload 8 /* startInst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getIndex:()I
            invokevirtual java.util.BitSet.set:(I)V
        21: .line 1511
            aload 13 /* usageSet */
            aload 11 /* visited */
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
        22: .line 1512
            aload 13 /* usageSet */
            aload 8 /* startInst */
            invokestatic com.oracle.truffle.js.snapshot.Recording.addInputsToSet:(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
        23: .line 1513
            aload 0 /* this */
            aload 13 /* usageSet */
            aload 8 /* startInst */
            aload 9 /* outerExtractedSet */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.addFixUpsToSet:(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;)V
        24: .line 1514
            aload 0 /* this */
            aload 13 /* usageSet */
            aload 8 /* startInst */
            aload 9 /* outerExtractedSet */
            invokedynamic getAsBoolean(Lcom/oracle/truffle/js/snapshot/Recording;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;)Ljava/util/function/BooleanSupplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$27(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;)Z (7)
                  ()Z
            invokestatic com.oracle.truffle.js.snapshot.Recording.fixpoint:(Ljava/util/function/BooleanSupplier;)V
        25: .line 1541
            aload 13 /* usageSet */
            invokevirtual java.util.BitSet.stream:()Ljava/util/stream/IntStream;
            aload 0 /* this */
            aload 9 /* outerExtractedSet */
            aload 8 /* startInst */
            aload 10 /* boundaryValues */
            invokedynamic accept(Lcom/oracle/truffle/js/snapshot/Recording;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/List;)Ljava/util/function/IntConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$32(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/List;I)V (7)
                  (I)V
            invokeinterface java.util.stream.IntStream.forEach:(Ljava/util/function/IntConsumer;)V
        26: .line 1556
            aload 13 /* usageSet */
            invokevirtual java.util.BitSet.stream:()Ljava/util/stream/IntStream;
            aload 9 /* outerExtractedSet */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic test(Ljava/util/BitSet;)Ljava/util/function/IntPredicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Z
                  java/util/BitSet.get(I)Z (5)
                  (I)Z
            invokeinterface java.util.stream.IntStream.filter:(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Ljava/util/ArrayList;)Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  java/util/ArrayList.get(I)Ljava/lang/Object; (5)
                  (I)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokeinterface java.util.stream.IntStream.mapToObj:(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$35(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$36(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            aload 13 /* usageSet */
            invokedynamic accept(Ljava/util/BitSet;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$37(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        27: .line 1561
            aload 10 /* boundaryValues */
            aload 0 /* this */
            aload 13 /* usageSet */
            aload 7 /* batchBoundary */
            aload 5 /* extractedMethodMap */
            invokedynamic accept(Lcom/oracle/truffle/js/snapshot/Recording;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$1BatchWorkItem;Ljava/util/Map;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$38(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$1BatchWorkItem;Ljava/util/Map;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V (7)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        28: .line 1581
            aload 13 /* usageSet */
            invokevirtual java.util.BitSet.stream:()Ljava/util/stream/IntStream;
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Ljava/util/ArrayList;)Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  java/util/ArrayList.get(I)Ljava/lang/Object; (5)
                  (I)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokeinterface java.util.stream.IntStream.mapToObj:(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;
            aload 13 /* usageSet */
            invokedynamic test(Ljava/util/BitSet;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$41(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        29: .line 1582
            aload 0 /* this */
            aload 3 /* worklist */
            aload 9 /* outerExtractedSet */
            aload 13 /* usageSet */
            aload 7 /* batchBoundary */
            invokedynamic accept(Lcom/oracle/truffle/js/snapshot/Recording;Ljava/util/Deque;Ljava/util/BitSet;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$1BatchWorkItem;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$42(Ljava/util/Deque;Ljava/util/BitSet;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$1BatchWorkItem;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V (7)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
        30: .line 1581
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        31: .line 1583
            aload 1 /* batches */
            aload 8 /* startInst */
            aload 13 /* usageSet */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        32: .line 1585
            aload 8 /* startInst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getName:()Ljava/lang/String;
            astore 17 /* nameSuffix */
        start local 17 // java.lang.String nameSuffix
        33: .line 1586
            aload 17 /* nameSuffix */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 34
            ldc ""
            goto 35
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map com.oracle.truffle.js.snapshot.Recording$Inst java.util.Deque java.util.Set java.util.Map int com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem com.oracle.truffle.js.snapshot.Recording$Inst java.util.BitSet java.util.List java.util.BitSet top java.util.BitSet top top top java.lang.String
      StackMap stack:
        34: new java.lang.StringBuilder
            dup
            ldc "_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 17 /* nameSuffix */
            invokestatic com.oracle.truffle.js.snapshot.Recording.mangleName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        35: astore 17 /* nameSuffix */
        36: .line 1587
            aload 5 /* extractedMethodMap */
            aload 8 /* startInst */
            new com.oracle.truffle.js.snapshot.Recording$1CallInfo
            dup
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "function"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* count */
            iinc 6 /* count */ 1
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            aload 17 /* nameSuffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 10 /* boundaryValues */
            ldc Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
            invokespecial com.oracle.truffle.js.snapshot.Recording$1CallInfo.<init>:(Lcom/oracle/truffle/js/snapshot/Recording;Ljava/lang/String;Ljava/util/List;Ljava/lang/Class;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        37: .line 1588
            aload 7 /* batchBoundary */
            aload 13 /* usageSet */
            putfield com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem.extractedSet:Ljava/util/BitSet;
        end local 17 // java.lang.String nameSuffix
        end local 13 // java.util.BitSet usageSet
        end local 11 // java.util.BitSet visited
        end local 10 // java.util.List boundaryValues
        end local 9 // java.util.BitSet outerExtractedSet
        end local 8 // com.oracle.truffle.js.snapshot.Recording$Inst startInst
        end local 7 // com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem batchBoundary
        38: .line 1468
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map com.oracle.truffle.js.snapshot.Recording$Inst java.util.Deque java.util.Set java.util.Map int
      StackMap stack:
            aload 3 /* worklist */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 10
        39: .line 1591
            ldc "XXX found %d batches"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* batches */
            invokeinterface java.util.Map.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic com.oracle.truffle.js.snapshot.Recording.logv:(Ljava/lang/String;[Ljava/lang/Object;)V
        40: .line 1594
            aload 5 /* extractedMethodMap */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$43(Lcom/oracle/truffle/js/snapshot/Recording$1CallInfo;)V (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$1CallInfo;)V
            invokeinterface java.util.Collection.forEach:(Ljava/util/function/Consumer;)V
        41: .line 1596
            aload 1 /* batches */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 59
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map com.oracle.truffle.js.snapshot.Recording$Inst java.util.Deque java.util.Set java.util.Map int top java.util.Iterator
      StackMap stack:
        42: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 7 /* batch */
        start local 7 // java.util.Map$Entry batch
        43: .line 1597
            aload 7 /* batch */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            astore 9 /* ret */
        start local 9 // com.oracle.truffle.js.snapshot.Recording$Inst ret
        44: .line 1598
            aload 7 /* batch */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.BitSet
            astore 10 /* extractedSet */
        start local 10 // java.util.BitSet extractedSet
        45: .line 1599
            aload 10 /* extractedSet */
            invokevirtual java.util.BitSet.stream:()Ljava/util/stream/IntStream;
            aload 0 /* this */
            aload 9 /* ret */
            aload 5 /* extractedMethodMap */
            invokedynamic apply(Lcom/oracle/truffle/js/snapshot/Recording;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/Map;)Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$45(Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/Map;I)Lcom/oracle/truffle/js/snapshot/Recording$Inst; (7)
                  (I)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokeinterface java.util.stream.IntStream.mapToObj:(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;
        46: .line 1609
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  java/util/ArrayList.<init>()V (8)
                  ()Ljava/util/ArrayList;
            invokestatic java.util.stream.Collectors.toCollection:(Ljava/util/function/Supplier;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
        47: .line 1599
            astore 11 /* batchInsts */
        start local 11 // java.util.List batchInsts
        48: .line 1610
            aload 9 /* ret */
            instanceof com.oracle.truffle.js.snapshot.Recording$ReturnInst
            ifne 50
        49: .line 1611
            aload 11 /* batchInsts */
            new com.oracle.truffle.js.snapshot.Recording$ReturnInst
            dup
            aload 9 /* ret */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokespecial com.oracle.truffle.js.snapshot.Recording$ReturnInst.<init>:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        50: .line 1614
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map com.oracle.truffle.js.snapshot.Recording$Inst java.util.Deque java.util.Set java.util.Map int java.util.Map$Entry java.util.Iterator com.oracle.truffle.js.snapshot.Recording$Inst java.util.BitSet java.util.List
      StackMap stack:
            aload 5 /* extractedMethodMap */
            aload 9 /* ret */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$1CallInfo
            astore 12 /* callInfo */
        start local 12 // com.oracle.truffle.js.snapshot.Recording$1CallInfo callInfo
        51: .line 1615
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.instBatches:Ljava/util/List;
        52: new com.oracle.truffle.js.snapshot.Recording$InstBatch
            dup
            aload 11 /* batchInsts */
            aload 9 /* ret */
            instanceof com.oracle.truffle.js.snapshot.Recording$ReturnInst
            ifeq 53
            ldc "apply"
            goto 54
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map com.oracle.truffle.js.snapshot.Recording$Inst java.util.Deque java.util.Set java.util.Map int java.util.Map$Entry java.util.Iterator com.oracle.truffle.js.snapshot.Recording$Inst java.util.BitSet java.util.List com.oracle.truffle.js.snapshot.Recording$1CallInfo
      StackMap stack: java.util.List new 52 new 52 java.util.List
        53: aload 12 /* callInfo */
            getfield com.oracle.truffle.js.snapshot.Recording$1CallInfo.name:Ljava/lang/String;
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map com.oracle.truffle.js.snapshot.Recording$Inst java.util.Deque java.util.Set java.util.Map int java.util.Map$Entry java.util.Iterator com.oracle.truffle.js.snapshot.Recording$Inst java.util.BitSet java.util.List com.oracle.truffle.js.snapshot.Recording$1CallInfo
      StackMap stack: java.util.List new 52 new 52 java.util.List java.lang.String
        54: aload 12 /* callInfo */
            getfield com.oracle.truffle.js.snapshot.Recording$1CallInfo.args:Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording$ParamInst.<init>(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V (8)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Lcom/oracle/truffle/js/snapshot/Recording$ParamInst;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
        55: .line 1616
            aload 9 /* ret */
            instanceof com.oracle.truffle.js.snapshot.Recording$ReturnInst
            ifeq 56
            ldc Ljava/lang/Object;
            goto 57
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map com.oracle.truffle.js.snapshot.Recording$Inst java.util.Deque java.util.Set java.util.Map int java.util.Map$Entry java.util.Iterator com.oracle.truffle.js.snapshot.Recording$Inst java.util.BitSet java.util.List com.oracle.truffle.js.snapshot.Recording$1CallInfo
      StackMap stack: java.util.List new 52 new 52 java.util.List java.lang.String java.util.List
        56: aload 12 /* callInfo */
            getfield com.oracle.truffle.js.snapshot.Recording$1CallInfo.returnType:Ljava/lang/Class;
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map com.oracle.truffle.js.snapshot.Recording$Inst java.util.Deque java.util.Set java.util.Map int java.util.Map$Entry java.util.Iterator com.oracle.truffle.js.snapshot.Recording$Inst java.util.BitSet java.util.List com.oracle.truffle.js.snapshot.Recording$1CallInfo
      StackMap stack: java.util.List new 52 new 52 java.util.List java.lang.String java.util.List java.lang.Class
        57: invokespecial com.oracle.truffle.js.snapshot.Recording$InstBatch.<init>:(Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/lang/Class;)V
        58: .line 1615
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // com.oracle.truffle.js.snapshot.Recording$1CallInfo callInfo
        end local 11 // java.util.List batchInsts
        end local 10 // java.util.BitSet extractedSet
        end local 9 // com.oracle.truffle.js.snapshot.Recording$Inst ret
        end local 7 // java.util.Map$Entry batch
        59: .line 1596
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map com.oracle.truffle.js.snapshot.Recording$Inst java.util.Deque java.util.Set java.util.Map int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 42
        60: .line 1622
            return
        end local 6 // int count
        end local 5 // java.util.Map extractedMethodMap
        end local 4 // java.util.Set startInstsVisited
        end local 3 // java.util.Deque worklist
        end local 2 // com.oracle.truffle.js.snapshot.Recording$Inst returnInst
        end local 1 // java.util.Map batches
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   61     0                this  Lcom/oracle/truffle/js/snapshot/Recording;
            3   61     1             batches  Ljava/util/Map<Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;>;
            4   61     2          returnInst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            5   61     3            worklist  Ljava/util/Deque<Lcom/oracle/truffle/js/snapshot/Recording$1BatchWorkItem;>;
            7   61     4   startInstsVisited  Ljava/util/Set<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
            8   61     5  extractedMethodMap  Ljava/util/Map<Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$1CallInfo;>;
            9   61     6               count  I
           11   38     7       batchBoundary  Lcom/oracle/truffle/js/snapshot/Recording$1BatchWorkItem;
           12   38     8           startInst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           13   38     9   outerExtractedSet  Ljava/util/BitSet;
           17   38    10      boundaryValues  Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
           18   38    11             visited  Ljava/util/BitSet;
           20   38    13            usageSet  Ljava/util/BitSet;
           33   38    17          nameSuffix  Ljava/lang/String;
           43   59     7               batch  Ljava/util/Map$Entry<Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;>;
           44   59     9                 ret  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
           45   59    10        extractedSet  Ljava/util/BitSet;
           48   59    11          batchInsts  Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
           51   59    12            callInfo  Lcom/oracle/truffle/js/snapshot/Recording$1CallInfo;

  private com.oracle.truffle.js.snapshot.Recording$Inst deref(com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst var
         0: .line 1625
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.defs:Ljava/util/Map;
            aload 1 /* var */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            areturn
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst var
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1   var  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    MethodParameters:
      Name  Flags
      var   

  private static java.lang.String mangleName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String nameSuffix
         0: .line 1629
            aload 0 /* nameSuffix */
            ldc "[^A-Za-z0-9_]"
            ldc "_"
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String nameSuffix
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  nameSuffix  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      nameSuffix  

  private static java.util.BitSet mergeBitSets(java.util.BitSet, java.util.BitSet);
    descriptor: (Ljava/util/BitSet;Ljava/util/BitSet;)Ljava/util/BitSet;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.util.BitSet first
        start local 1 // java.util.BitSet second
         0: .line 1633
            new java.util.BitSet
            dup
            aload 0 /* first */
            invokevirtual java.util.BitSet.length:()I
            aload 1 /* second */
            invokevirtual java.util.BitSet.length:()I
            invokestatic java.lang.Math.max:(II)I
            invokespecial java.util.BitSet.<init>:(I)V
            astore 2 /* merged */
        start local 2 // java.util.BitSet merged
         1: .line 1634
            aload 2 /* merged */
            aload 0 /* first */
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
         2: .line 1635
            aload 2 /* merged */
            aload 1 /* second */
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
         3: .line 1636
            aload 2 /* merged */
            areturn
        end local 2 // java.util.BitSet merged
        end local 1 // java.util.BitSet second
        end local 0 // java.util.BitSet first
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0   first  Ljava/util/BitSet;
            0    4     1  second  Ljava/util/BitSet;
            1    4     2  merged  Ljava/util/BitSet;
    MethodParameters:
        Name  Flags
      first   
      second  

  private static boolean isContained(com.oracle.truffle.js.snapshot.Recording$Inst, java.util.BitSet);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst in
        start local 1 // java.util.BitSet usageSet
         0: .line 1640
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_1
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            astore 2 /* result */
        start local 2 // java.util.concurrent.atomic.AtomicBoolean result
         1: .line 1641
            aload 0 /* in */
            aload 2 /* result */
            aload 1 /* usageSet */
            invokedynamic accept(Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/BitSet;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$49(Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.forEachInput:(Ljava/util/function/Consumer;)V
         2: .line 1652
            aload 2 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ireturn
        end local 2 // java.util.concurrent.atomic.AtomicBoolean result
        end local 1 // java.util.BitSet usageSet
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst in
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0        in  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            0    3     1  usageSet  Ljava/util/BitSet;
            1    3     2    result  Ljava/util/concurrent/atomic/AtomicBoolean;
    MethodParameters:
          Name  Flags
      in        
      usageSet  

  private void duplicateCheck(java.util.Map<com.oracle.truffle.js.snapshot.Recording$Inst, java.util.BitSet>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.util.Map batches
         0: .line 1656
            aload 1 /* batches */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 16
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* batch1 */
        start local 2 // java.util.Map$Entry batch1
         2: .line 1657
            aload 2 /* batch1 */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.BitSet
            astore 4 /* extractedSet1 */
        start local 4 // java.util.BitSet extractedSet1
         3: .line 1658
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            astore 5 /* others */
        start local 5 // java.util.BitSet others
         4: .line 1659
            aload 1 /* batches */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 10
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map java.util.Map$Entry java.util.Iterator java.util.BitSet java.util.BitSet top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* batch2 */
        start local 6 // java.util.Map$Entry batch2
         6: .line 1660
            aload 6 /* batch2 */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.BitSet
            astore 8 /* extractedSet2 */
        start local 8 // java.util.BitSet extractedSet2
         7: .line 1661
            aload 4 /* extractedSet1 */
            aload 8 /* extractedSet2 */
            if_acmpne 9
         8: .line 1662
            goto 10
         9: .line 1664
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map java.util.Map$Entry java.util.Iterator java.util.BitSet java.util.BitSet java.util.Map$Entry java.util.Iterator java.util.BitSet
      StackMap stack:
            aload 5 /* others */
            aload 8 /* extractedSet2 */
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
        end local 8 // java.util.BitSet extractedSet2
        end local 6 // java.util.Map$Entry batch2
        10: .line 1659
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map java.util.Map$Entry java.util.Iterator java.util.BitSet java.util.BitSet top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        11: .line 1666
            aload 4 /* extractedSet1 */
            aload 5 /* others */
            invokevirtual java.util.BitSet.intersects:(Ljava/util/BitSet;)Z
            ifeq 16
        12: .line 1667
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            astore 6 /* intersection */
        start local 6 // java.util.BitSet intersection
        13: .line 1668
            aload 6 /* intersection */
            aload 4 /* extractedSet1 */
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
        14: .line 1669
            aload 6 /* intersection */
            aload 5 /* others */
            invokevirtual java.util.BitSet.and:(Ljava/util/BitSet;)V
        15: .line 1670
            aload 6 /* intersection */
            invokevirtual java.util.BitSet.stream:()Ljava/util/stream/IntStream;
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Ljava/util/ArrayList;)Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  java/util/ArrayList.get(I)Ljava/lang/Object; (5)
                  (I)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokeinterface java.util.stream.IntStream.mapToObj:(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;
            aload 1 /* batches */
            invokedynamic test(Ljava/util/Map;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$51(Ljava/util/Map;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$52(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$53(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            invokeinterface java.util.stream.Stream.forEachOrdered:(Ljava/util/function/Consumer;)V
        end local 6 // java.util.BitSet intersection
        end local 5 // java.util.BitSet others
        end local 4 // java.util.BitSet extractedSet1
        end local 2 // java.util.Map$Entry batch1
        16: .line 1656
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.util.Map top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        17: .line 1673
            return
        end local 1 // java.util.Map batches
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lcom/oracle/truffle/js/snapshot/Recording;
            0   18     1        batches  Ljava/util/Map<Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;>;
            2   16     2         batch1  Ljava/util/Map$Entry<Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;>;
            3   16     4  extractedSet1  Ljava/util/BitSet;
            4   16     5         others  Ljava/util/BitSet;
            6   10     6         batch2  Ljava/util/Map$Entry<Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;>;
            7   10     8  extractedSet2  Ljava/util/BitSet;
           13   16     6   intersection  Ljava/util/BitSet;
    Signature: (Ljava/util/Map<Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;>;)V
    MethodParameters:
         Name  Flags
      batches  

  private static void fixpoint(java.util.function.BooleanSupplier);
    descriptor: (Ljava/util/function/BooleanSupplier;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.function.BooleanSupplier run
         0: .line 1678
      StackMap locals:
      StackMap stack:
            aload 0 /* run */
            invokeinterface java.util.function.BooleanSupplier.getAsBoolean:()Z
            ifne 0
         1: .line 1679
            return
        end local 0 // java.util.function.BooleanSupplier run
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   run  Ljava/util/function/BooleanSupplier;
    MethodParameters:
      Name  Flags
      run   

  private void addInputsToSet(java.util.BitSet);
    descriptor: (Ljava/util/BitSet;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.util.BitSet usageSet
         0: .line 1682
            aload 1 /* usageSet */
            invokevirtual java.util.BitSet.stream:()Ljava/util/stream/IntStream;
            aload 0 /* this */
            aload 1 /* usageSet */
            invokedynamic accept(Lcom/oracle/truffle/js/snapshot/Recording;Ljava/util/BitSet;)Ljava/util/function/IntConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$54(Ljava/util/BitSet;I)V (7)
                  (I)V
            invokeinterface java.util.stream.IntStream.forEach:(Ljava/util/function/IntConsumer;)V
         1: .line 1691
            return
        end local 1 // java.util.BitSet usageSet
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    2     1  usageSet  Ljava/util/BitSet;
    MethodParameters:
          Name  Flags
      usageSet  

  private static void addInputsToSet(java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.BitSet usageSet
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         0: .line 1694
            aload 1 /* inst */
            aload 0 /* usageSet */
            invokedynamic accept(Ljava/util/BitSet;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$55(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.forEachInput:(Ljava/util/function/Consumer;)V
         1: .line 1703
            return
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst inst
        end local 0 // java.util.BitSet usageSet
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  usageSet  Ljava/util/BitSet;
            0    2     1      inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    MethodParameters:
          Name  Flags
      usageSet  
      inst      

  private static boolean isBatchBoundary(com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         0: .line 1706
            aload 0 /* inst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getDeclaredType:()Ljava/lang/Class;
            ldc Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst inst
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    MethodParameters:
      Name  Flags
      inst  

  private void addFixUpsToSet(java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst, java.util.BitSet);
    descriptor: (Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.util.BitSet usageSet
        start local 2 // com.oracle.truffle.js.snapshot.Recording$Inst startInst
        start local 3 // java.util.BitSet outerExtractedSet
         0: .line 1710
            aload 1 /* usageSet */
            invokevirtual java.util.BitSet.stream:()Ljava/util/stream/IntStream;
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Ljava/util/ArrayList;)Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  java/util/ArrayList.get(I)Ljava/lang/Object; (5)
                  (I)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokeinterface java.util.stream.IntStream.mapToObj:(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;
            aload 0 /* this */
            aload 2 /* startInst */
            aload 1 /* usageSet */
            aload 3 /* outerExtractedSet */
            invokedynamic accept(Lcom/oracle/truffle/js/snapshot/Recording;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;Ljava/util/BitSet;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$57(Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V (7)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         1: .line 1725
            return
        end local 3 // java.util.BitSet outerExtractedSet
        end local 2 // com.oracle.truffle.js.snapshot.Recording$Inst startInst
        end local 1 // java.util.BitSet usageSet
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    2     1           usageSet  Ljava/util/BitSet;
            0    2     2          startInst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            0    2     3  outerExtractedSet  Ljava/util/BitSet;
    MethodParameters:
                   Name  Flags
      usageSet           
      startInst          
      outerExtractedSet  

  private static void reachableSet(com.oracle.truffle.js.snapshot.Recording$Inst, java.util.BitSet);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst root
        start local 1 // java.util.BitSet reachable
         0: .line 1728
            aload 0 /* root */
            aload 1 /* reachable */
            invokedynamic visitInst(Ljava/util/BitSet;)Lcom/oracle/truffle/js/snapshot/Recording$Inst$Visitor;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$62(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.accept:(Lcom/oracle/truffle/js/snapshot/Recording$Inst$Visitor;)V
         1: .line 1736
            return
        end local 1 // java.util.BitSet reachable
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst root
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       root  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            0    2     1  reachable  Ljava/util/BitSet;
    MethodParameters:
           Name  Flags
      root       
      reachable  

  public static com.oracle.truffle.js.snapshot.Recording recordSource(com.oracle.truffle.api.source.Source, com.oracle.truffle.js.runtime.JSContext, boolean, java.lang.String, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/js/runtime/JSContext;ZLjava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/js/snapshot/Recording;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // com.oracle.truffle.api.source.Source source
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // boolean strict
        start local 3 // java.lang.String prefix
        start local 4 // java.lang.String suffix
         0: .line 1739
            new com.oracle.truffle.js.snapshot.Recording
            dup
            invokespecial com.oracle.truffle.js.snapshot.Recording.<init>:()V
            astore 5 /* rec */
        start local 5 // com.oracle.truffle.js.snapshot.Recording rec
         1: .line 1740
            aload 5 /* rec */
            aload 1 /* context */
            invokestatic com.oracle.truffle.js.nodes.NodeFactory.getInstance:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokestatic com.oracle.truffle.js.snapshot.RecordingProxy.createRecordingNodeFactory:(Lcom/oracle/truffle/js/snapshot/Recording;Lcom/oracle/truffle/js/nodes/NodeFactory;)Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* context */
            aload 0 /* source */
            iload 2 /* strict */
            aload 3 /* prefix */
            aload 4 /* suffix */
            invokestatic com.oracle.truffle.js.parser.JavaScriptTranslator.translateScript:(Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;ZLjava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            astore 6 /* program */
        start local 6 // com.oracle.truffle.js.nodes.ScriptNode program
         2: .line 1741
            aload 5 /* rec */
            aload 6 /* program */
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.finish:(Lcom/oracle/truffle/api/nodes/RootNode;)V
         3: .line 1742
            aload 5 /* rec */
            areturn
        end local 6 // com.oracle.truffle.js.nodes.ScriptNode program
        end local 5 // com.oracle.truffle.js.snapshot.Recording rec
        end local 4 // java.lang.String suffix
        end local 3 // java.lang.String prefix
        end local 2 // boolean strict
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.api.source.Source source
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0   source  Lcom/oracle/truffle/api/source/Source;
            0    4     1  context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    4     2   strict  Z
            0    4     3   prefix  Ljava/lang/String;
            0    4     4   suffix  Ljava/lang/String;
            1    4     5      rec  Lcom/oracle/truffle/js/snapshot/Recording;
            2    4     6  program  Lcom/oracle/truffle/js/nodes/ScriptNode;
    MethodParameters:
         Name  Flags
      source   
      context  
      strict   
      prefix   
      suffix   

  public void saveToStream(java.lang.String, java.io.OutputStream, boolean);
    descriptor: (Ljava/lang/String;Ljava/io/OutputStream;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.lang.String fileName
        start local 2 // java.io.OutputStream outs
        start local 3 // boolean binary
         0: .line 1746
            ldc "dumping %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* fileName */
            aastore
            invokestatic com.oracle.truffle.js.snapshot.Recording.logv:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 1747
            iload 3 /* binary */
            ifeq 4
         2: .line 1748
            aload 0 /* this */
            aload 2 /* outs */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.saveAsBinary:(Ljava/io/OutputStream;)Ljava/nio/ByteBuffer;
            pop
         3: .line 1749
            goto 5
         4: .line 1750
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fileName */
            aload 2 /* outs */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.saveAsJava:(Ljava/lang/String;Ljava/io/OutputStream;)V
         5: .line 1752
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean binary
        end local 2 // java.io.OutputStream outs
        end local 1 // java.lang.String fileName
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    6     1  fileName  Ljava/lang/String;
            0    6     2      outs  Ljava/io/OutputStream;
            0    6     3    binary  Z
    MethodParameters:
          Name  Flags
      fileName  
      outs      
      binary    

  private java.nio.ByteBuffer saveAsBinary(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.io.OutputStream outs
         0: .line 1755
            new com.oracle.truffle.js.codec.BinaryEncoder
            dup
            invokespecial com.oracle.truffle.js.codec.BinaryEncoder.<init>:()V
            astore 2 /* sink */
        start local 2 // com.oracle.truffle.js.codec.BinaryEncoder sink
         1: .line 1756
            new com.oracle.truffle.js.snapshot.JSNodeEncoder
            dup
            aload 2 /* sink */
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.source:Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.getCharacters:()Ljava/lang/CharSequence;
            invokespecial com.oracle.truffle.js.snapshot.JSNodeEncoder.<init>:(Lcom/oracle/truffle/js/codec/BinaryEncoder;Ljava/lang/CharSequence;)V
            astore 3 /* encoder */
        start local 3 // com.oracle.truffle.js.snapshot.JSNodeEncoder encoder
         2: .line 1758
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.instBatches:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 8
         3: .line 1759
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.instBatches:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.io.OutputStream com.oracle.truffle.js.codec.BinaryEncoder com.oracle.truffle.js.snapshot.JSNodeEncoder top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$InstBatch
            astore 4 /* instBatch */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$InstBatch instBatch
         5: .line 1760
            aload 3 /* encoder */
            aload 4 /* instBatch */
            getfield com.oracle.truffle.js.snapshot.Recording$InstBatch.name:Ljava/lang/String;
            aload 4 /* instBatch */
            getfield com.oracle.truffle.js.snapshot.Recording$InstBatch.insts:Ljava/util/List;
            aload 4 /* instBatch */
            getfield com.oracle.truffle.js.snapshot.Recording$InstBatch.inputs:Ljava/util/List;
            invokestatic com.oracle.truffle.js.snapshot.Recording.encodeMethod:(Lcom/oracle/truffle/js/snapshot/JSNodeEncoder;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
        end local 4 // com.oracle.truffle.js.snapshot.Recording$InstBatch instBatch
         6: .line 1759
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 1762
            goto 9
         8: .line 1763
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.io.OutputStream com.oracle.truffle.js.codec.BinaryEncoder com.oracle.truffle.js.snapshot.JSNodeEncoder
      StackMap stack:
            aload 3 /* encoder */
            ldc "apply"
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokestatic com.oracle.truffle.js.snapshot.Recording.encodeMethod:(Lcom/oracle/truffle/js/snapshot/JSNodeEncoder;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
         9: .line 1766
      StackMap locals:
      StackMap stack:
            aload 1 /* outs */
            aload 2 /* sink */
            invokevirtual com.oracle.truffle.js.codec.BinaryEncoder.getBuffer:()Ljava/nio/ByteBuffer;
            invokestatic com.oracle.truffle.js.snapshot.Recording.byteBufferToByteArray:(Ljava/nio/ByteBuffer;)[B
            invokevirtual java.io.OutputStream.write:([B)V
        10: .line 1767
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
        11: astore 4 /* e */
        start local 4 // java.io.IOException e
        12: .line 1768
            new java.io.UncheckedIOException
            dup
            aload 4 /* e */
            invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
            athrow
        end local 4 // java.io.IOException e
        13: .line 1772
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* sink */
            invokevirtual com.oracle.truffle.js.codec.BinaryEncoder.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.testDecode:(Ljava/nio/ByteBuffer;)V
        14: .line 1775
            aload 2 /* sink */
            invokevirtual com.oracle.truffle.js.codec.BinaryEncoder.getBuffer:()Ljava/nio/ByteBuffer;
            areturn
        end local 3 // com.oracle.truffle.js.snapshot.JSNodeEncoder encoder
        end local 2 // com.oracle.truffle.js.codec.BinaryEncoder sink
        end local 1 // java.io.OutputStream outs
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lcom/oracle/truffle/js/snapshot/Recording;
            0   15     1       outs  Ljava/io/OutputStream;
            1   15     2       sink  Lcom/oracle/truffle/js/codec/BinaryEncoder;
            2   15     3    encoder  Lcom/oracle/truffle/js/snapshot/JSNodeEncoder;
            5    6     4  instBatch  Lcom/oracle/truffle/js/snapshot/Recording$InstBatch;
           12   13     4          e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           9    10      11  Class java.io.IOException
    MethodParameters:
      Name  Flags
      outs  

  private static byte[] byteBufferToByteArray(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.nio.ByteBuffer buffer
         0: .line 1779
            aload 0 /* buffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            newarray 8
            astore 1 /* bytes */
        start local 1 // byte[] bytes
         1: .line 1780
            aload 0 /* buffer */
            aload 1 /* bytes */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
         2: .line 1781
            aload 1 /* bytes */
            areturn
        end local 1 // byte[] bytes
        end local 0 // java.nio.ByteBuffer buffer
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  buffer  Ljava/nio/ByteBuffer;
            1    3     1   bytes  [B
    MethodParameters:
        Name  Flags
      buffer  

  private void saveAsJava(java.lang.String, java.io.OutputStream);
    descriptor: (Ljava/lang/String;Ljava/io/OutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.lang.String fileName
        start local 2 // java.io.OutputStream outs
         0: .line 1785
            aload 1 /* fileName */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 3 /* extSep */
        start local 3 // int extSep
         1: .line 1786
            aload 1 /* fileName */
            iconst_0
            iload 3 /* extSep */
            iflt 2
            iload 3 /* extSep */
            goto 3
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.lang.String java.io.OutputStream int
      StackMap stack: java.lang.String int
         2: aload 1 /* fileName */
            invokevirtual java.lang.String.length:()I
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.lang.String java.io.OutputStream int
      StackMap stack: java.lang.String int int
         3: invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic com.oracle.truffle.js.snapshot.Recording.mangleFileName:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* unqualifiedClassName */
        start local 4 // java.lang.String unqualifiedClassName
         4: .line 1787
            ldc ""
            astore 5 /* packageName */
        start local 5 // java.lang.String packageName
         5: .line 1788
            aconst_null
            astore 6
            aconst_null
            astore 7
         6: new java.io.PrintStream
            dup
            aload 2 /* outs */
            iconst_0
            ldc "UTF-8"
            invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;ZLjava/lang/String;)V
            astore 8 /* out */
        start local 8 // java.io.PrintStream out
         7: .line 1789
            aload 0 /* this */
            aload 1 /* fileName */
            aload 5 /* packageName */
            aload 4 /* unqualifiedClassName */
            aload 8 /* out */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.saveAsJavaImpl:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/PrintStream;)V
         8: .line 1790
            aload 8 /* out */
            ifnull 16
            aload 8 /* out */
            invokevirtual java.io.PrintStream.close:()V
            goto 16
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.lang.String java.io.OutputStream int java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.io.PrintStream
      StackMap stack: java.lang.Throwable
         9: astore 6
            aload 8 /* out */
            ifnull 10
            aload 8 /* out */
            invokevirtual java.io.PrintStream.close:()V
        end local 8 // java.io.PrintStream out
      StackMap locals:
      StackMap stack:
        10: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 7
            aload 6
            ifnonnull 12
            aload 7
            astore 6
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 6
            aload 7
            if_acmpeq 13
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        13: aload 6
            athrow
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.lang.String java.io.OutputStream int java.lang.String java.lang.String
      StackMap stack: java.io.UnsupportedEncodingException
        14: astore 6 /* e */
        start local 6 // java.io.UnsupportedEncodingException e
        15: .line 1791
            new java.io.UncheckedIOException
            dup
            aload 6 /* e */
            invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
            athrow
        end local 6 // java.io.UnsupportedEncodingException e
        16: .line 1793
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.lang.String packageName
        end local 4 // java.lang.String unqualifiedClassName
        end local 3 // int extSep
        end local 2 // java.io.OutputStream outs
        end local 1 // java.lang.String fileName
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   17     0                  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0   17     1              fileName  Ljava/lang/String;
            0   17     2                  outs  Ljava/io/OutputStream;
            1   17     3                extSep  I
            4   17     4  unqualifiedClassName  Ljava/lang/String;
            5   17     5           packageName  Ljava/lang/String;
            7   10     8                   out  Ljava/io/PrintStream;
           15   16     6                     e  Ljava/io/UnsupportedEncodingException;
      Exception table:
        from    to  target  type
           7     8       9  any
           6    11      11  any
           5    14      14  Class java.io.UnsupportedEncodingException
    MethodParameters:
          Name  Flags
      fileName  
      outs      

  private void saveAsJavaImpl(java.lang.String, java.lang.String, java.lang.String, java.io.PrintStream);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/PrintStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.lang.String fileName
        start local 2 // java.lang.String packageName
        start local 3 // java.lang.String unqualifiedClassName
        start local 4 // java.io.PrintStream out
         0: .line 1796
            aload 4 /* out */
            ldc "// Checkstyle: stop"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 1797
            aload 4 /* out */
            new java.lang.StringBuilder
            dup
            ldc "// Autogenerated from "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* fileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 1798
            aload 2 /* packageName */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 4
         3: .line 1799
            aload 4 /* out */
            new java.lang.StringBuilder
            dup
            ldc "package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* packageName */
            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;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1801
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            invokevirtual java.io.PrintStream.println:()V
         5: .line 1802
            aload 4 /* out */
            ldc "@SuppressWarnings(\"all\")"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 1803
            aload 4 /* out */
            new java.lang.StringBuilder
            dup
            ldc "public class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* unqualifiedClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " implements "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc Lcom/oracle/truffle/js/parser/SnapshotProvider;
            invokestatic com.oracle.truffle.js.snapshot.Recording.typeName:(Ljava/lang/Class;)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;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 1804
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.instBatches:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 13
         8: .line 1805
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.instBatches:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 11
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.lang.String java.lang.String java.lang.String java.io.PrintStream top java.util.Iterator
      StackMap stack:
         9: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$InstBatch
            astore 5 /* instBatch */
        start local 5 // com.oracle.truffle.js.snapshot.Recording$InstBatch instBatch
        10: .line 1806
            aload 4 /* out */
            aload 5 /* instBatch */
            getfield com.oracle.truffle.js.snapshot.Recording$InstBatch.name:Ljava/lang/String;
            aload 5 /* instBatch */
            getfield com.oracle.truffle.js.snapshot.Recording$InstBatch.outputType:Ljava/lang/Class;
            aload 5 /* instBatch */
            getfield com.oracle.truffle.js.snapshot.Recording$InstBatch.insts:Ljava/util/List;
            aload 5 /* instBatch */
            getfield com.oracle.truffle.js.snapshot.Recording$InstBatch.inputs:Ljava/util/List;
            invokestatic com.oracle.truffle.js.snapshot.Recording.printMethod:(Ljava/io/PrintStream;Ljava/lang/String;Ljava/lang/Class;Ljava/util/List;Ljava/util/List;)V
        end local 5 // com.oracle.truffle.js.snapshot.Recording$InstBatch instBatch
        11: .line 1805
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 1808
            goto 14
        13: .line 1809
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.lang.String java.lang.String java.lang.String java.io.PrintStream
      StackMap stack:
            aload 4 /* out */
            ldc "apply"
            ldc Ljava/lang/Object;
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokestatic com.oracle.truffle.js.snapshot.Recording.printMethod:(Ljava/io/PrintStream;Ljava/lang/String;Ljava/lang/Class;Ljava/util/List;Ljava/util/List;)V
        14: .line 1811
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            ldc "}"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 1813
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.frameDescriptorSet:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 18
      StackMap locals: com.oracle.truffle.js.snapshot.Recording java.lang.String java.lang.String java.lang.String java.io.PrintStream top java.util.Iterator
      StackMap stack:
        16: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.frame.FrameDescriptor
            astore 5 /* fd */
        start local 5 // com.oracle.truffle.api.frame.FrameDescriptor fd
        17: .line 1814
            aload 4 /* out */
            new java.lang.StringBuilder
            dup
            ldc "//"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* fd */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // com.oracle.truffle.api.frame.FrameDescriptor fd
        18: .line 1813
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        19: .line 1816
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.functionDataSet:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 22
      StackMap locals:
      StackMap stack:
        20: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionData
            astore 5 /* fd */
        start local 5 // com.oracle.truffle.js.runtime.builtins.JSFunctionData fd
        21: .line 1817
            aload 4 /* out */
            new java.lang.StringBuilder
            dup
            ldc "//"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* fd */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // com.oracle.truffle.js.runtime.builtins.JSFunctionData fd
        22: .line 1816
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        23: .line 1819
            return
        end local 4 // java.io.PrintStream out
        end local 3 // java.lang.String unqualifiedClassName
        end local 2 // java.lang.String packageName
        end local 1 // java.lang.String fileName
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   24     0                  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0   24     1              fileName  Ljava/lang/String;
            0   24     2           packageName  Ljava/lang/String;
            0   24     3  unqualifiedClassName  Ljava/lang/String;
            0   24     4                   out  Ljava/io/PrintStream;
           10   11     5             instBatch  Lcom/oracle/truffle/js/snapshot/Recording$InstBatch;
           17   18     5                    fd  Lcom/oracle/truffle/api/frame/FrameDescriptor;
           21   22     5                    fd  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    MethodParameters:
                      Name  Flags
      fileName              
      packageName           
      unqualifiedClassName  
      out                   

  private static void printMethod(java.io.PrintStream, java.lang.String, java.lang.Class<?>, java.util.List<com.oracle.truffle.js.snapshot.Recording$Inst>, java.util.List<com.oracle.truffle.js.snapshot.Recording$Inst>);
    descriptor: (Ljava/io/PrintStream;Ljava/lang/String;Ljava/lang/Class;Ljava/util/List;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // java.io.PrintStream out
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class returnType
        start local 3 // java.util.List insts
        start local 4 // java.util.List params
         0: .line 1822
            aload 0 /* out */
            invokevirtual java.io.PrintStream.println:()V
         1: .line 1823
            aload 0 /* out */
            new java.lang.StringBuilder
            dup
            ldc "public "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* returnType */
            invokestatic com.oracle.truffle.js.snapshot.Recording.typeName:(Ljava/lang/Class;)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;
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1824
            ldc Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokestatic com.oracle.truffle.js.snapshot.Recording.typeName:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " nodeFactory, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1825
            ldc Lcom/oracle/truffle/js/runtime/JSContext;
            invokestatic com.oracle.truffle.js.snapshot.Recording.typeName:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " context, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 1826
            ldc Lcom/oracle/truffle/api/source/Source;
            invokestatic com.oracle.truffle.js.snapshot.Recording.typeName:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " source"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1827
            aload 4 /* params */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 6
            ldc ""
            goto 7
      StackMap locals: java.io.PrintStream java.lang.String java.lang.Class java.util.List java.util.List
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
         6: ldc ", "
      StackMap locals: java.io.PrintStream java.lang.String java.lang.Class java.util.List java.util.List
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
         7: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 1828
            aload 4 /* params */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$63(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Ljava/lang/String; (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            ldc ", "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.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;
         9: .line 1823
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 1832
            aload 3 /* insts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 13
      StackMap locals: java.io.PrintStream java.lang.String java.lang.Class java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        11: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            astore 5 /* inst */
        start local 5 // com.oracle.truffle.js.snapshot.Recording$Inst inst
        12: .line 1833
            aload 0 /* out */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 5 /* inst */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // com.oracle.truffle.js.snapshot.Recording$Inst inst
        13: .line 1832
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 1835
            aload 0 /* out */
            ldc "}"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 1836
            return
        end local 4 // java.util.List params
        end local 3 // java.util.List insts
        end local 2 // java.lang.Class returnType
        end local 1 // java.lang.String name
        end local 0 // java.io.PrintStream out
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0         out  Ljava/io/PrintStream;
            0   16     1        name  Ljava/lang/String;
            0   16     2  returnType  Ljava/lang/Class<*>;
            0   16     3       insts  Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
            0   16     4      params  Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
           12   13     5        inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    Signature: (Ljava/io/PrintStream;Ljava/lang/String;Ljava/lang/Class<*>;Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;)V
    MethodParameters:
            Name  Flags
      out         
      name        
      returnType  
      insts       
      params      

  private static void encodeMethod(com.oracle.truffle.js.snapshot.JSNodeEncoder, java.lang.String, java.util.List<com.oracle.truffle.js.snapshot.Recording$Inst>, java.util.List<com.oracle.truffle.js.snapshot.Recording$Inst>);
    descriptor: (Lcom/oracle/truffle/js/snapshot/JSNodeEncoder;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.oracle.truffle.js.snapshot.JSNodeEncoder encoder
        start local 1 // java.lang.String name
        start local 2 // java.util.List methodInsts
        start local 3 // java.util.List params
         0: .line 1839
            aload 0 /* encoder */
            aload 1 /* name */
            invokevirtual com.oracle.truffle.js.snapshot.JSNodeEncoder.beginMethod:(Ljava/lang/String;)V
         1: .line 1840
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 6
         3: .line 1841
      StackMap locals: int
      StackMap stack:
            aload 3 /* params */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            astore 5 /* param */
        start local 5 // com.oracle.truffle.js.snapshot.Recording$Inst param
         4: .line 1842
            aload 0 /* encoder */
            aload 5 /* param */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            iload 4 /* i */
            invokevirtual com.oracle.truffle.js.snapshot.JSNodeEncoder.encodeLoadArg:(II)V
        end local 5 // com.oracle.truffle.js.snapshot.Recording$Inst param
         5: .line 1840
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            aload 3 /* params */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 4 // int i
         7: .line 1844
            aload 2 /* methodInsts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: com.oracle.truffle.js.snapshot.JSNodeEncoder java.lang.String java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         8: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            astore 4 /* inst */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         9: .line 1845
            aload 4 /* inst */
            aload 0 /* encoder */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.encodeTo:(Lcom/oracle/truffle/js/snapshot/JSNodeEncoder;)V
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst inst
        10: .line 1844
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 1847
            aload 0 /* encoder */
            invokevirtual com.oracle.truffle.js.snapshot.JSNodeEncoder.endMethod:()V
        12: .line 1848
            return
        end local 3 // java.util.List params
        end local 2 // java.util.List methodInsts
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.snapshot.JSNodeEncoder encoder
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0      encoder  Lcom/oracle/truffle/js/snapshot/JSNodeEncoder;
            0   13     1         name  Ljava/lang/String;
            0   13     2  methodInsts  Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
            0   13     3       params  Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
            2    7     4            i  I
            4    5     5        param  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            9   10     4         inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    Signature: (Lcom/oracle/truffle/js/snapshot/JSNodeEncoder;Ljava/lang/String;Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;)V
    MethodParameters:
             Name  Flags
      encoder      
      name         
      methodInsts  
      params       

  private void testDecode(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 1851
            new com.oracle.truffle.js.parser.BinarySnapshotProvider
            dup
            aload 1 /* buffer */
            invokespecial com.oracle.truffle.js.parser.BinarySnapshotProvider.<init>:(Ljava/nio/ByteBuffer;)V
            astore 2 /* snapshot */
        start local 2 // com.oracle.truffle.js.parser.BinarySnapshotProvider snapshot
         1: .line 1852
            invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.getCurrentJSRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.js.runtime.JSContext context
         2: .line 1853
            aload 2 /* snapshot */
            invokestatic com.oracle.truffle.js.nodes.NodeFactory.getDefaultInstance:()Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* context */
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.source:Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.js.parser.BinarySnapshotProvider.apply:(Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;)Ljava/lang/Object;
            pop
         3: .line 1854
            return
        end local 3 // com.oracle.truffle.js.runtime.JSContext context
        end local 2 // com.oracle.truffle.js.parser.BinarySnapshotProvider snapshot
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    4     1    buffer  Ljava/nio/ByteBuffer;
            1    4     2  snapshot  Lcom/oracle/truffle/js/parser/BinarySnapshotProvider;
            2    4     3   context  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
        Name  Flags
      buffer  

  private static void sortInstsById(java.util.List<com.oracle.truffle.js.snapshot.Recording$Inst>);
    descriptor: (Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List insts
         0: .line 1857
            aload 0 /* insts */
            invokedynamic compare()Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  com/oracle/truffle/js/snapshot/Recording.lambda$64(Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)I (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)I
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
         1: .line 1869
            return
        end local 0 // java.util.List insts
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  insts  Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;)V
    MethodParameters:
       Name  Flags
      insts  

  static java.lang.String packageName(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 1872
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            iconst_0
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
       Name  Flags
      clazz  

  private static java.lang.String mangleFileName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.String fileName
         0: .line 1879
            aconst_null
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 1880
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 9
         3: .line 1881
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* fileName */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* ch */
        start local 3 // char ch
         4: .line 1882
            iload 3 /* ch */
            invokestatic com.oracle.truffle.js.snapshot.Recording.isAsciiWordChar:(C)Z
            ifne 8
         5: .line 1883
            aload 1 /* sb */
            ifnonnull 7
         6: .line 1884
            new java.lang.StringBuilder
            dup
            aload 0 /* fileName */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* sb */
         7: .line 1886
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            iload 2 /* i */
            bipush 95
            invokevirtual java.lang.StringBuilder.setCharAt:(IC)V
        end local 3 // char ch
         8: .line 1880
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            aload 0 /* fileName */
            invokevirtual java.lang.String.length:()I
            if_icmplt 3
        end local 2 // int i
        10: .line 1889
            aload 1 /* sb */
            ifnonnull 11
            aload 0 /* fileName */
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        12: areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String fileName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0  fileName  Ljava/lang/String;
            1   13     1        sb  Ljava/lang/StringBuilder;
            2   10     2         i  I
            4    8     3        ch  C
    MethodParameters:
          Name  Flags
      fileName  

  private static boolean isAsciiWordChar(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char ch
         0: .line 1893
            iload 0 /* ch */
            bipush 65
            if_icmplt 1
            iload 0 /* ch */
            bipush 90
            if_icmple 4
      StackMap locals:
      StackMap stack:
         1: iload 0 /* ch */
            bipush 97
            if_icmplt 2
            iload 0 /* ch */
            bipush 122
            if_icmple 4
      StackMap locals:
      StackMap stack:
         2: iload 0 /* ch */
            bipush 48
            if_icmplt 3
            iload 0 /* ch */
            bipush 57
            if_icmple 4
      StackMap locals:
      StackMap stack:
         3: iload 0 /* ch */
            bipush 95
            if_icmpeq 4
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 0 // char ch
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    ch  C
    MethodParameters:
      Name  Flags
      ch    

  static void logv(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // java.lang.String line
         0: .line 1900
            return
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  line  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      line  

  static void logv(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // java.lang.String format
        start local 1 // java.lang.Object[] args
         0: .line 1906
            return
        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  
      args    

  static void logv(java.util.function.Supplier<java.lang.String>);
    descriptor: (Ljava/util/function/Supplier;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // java.util.function.Supplier line
         0: .line 1912
            return
        end local 0 // java.util.function.Supplier line
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  line  Ljava/util/function/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/function/Supplier<Ljava/lang/String;>;)V
    MethodParameters:
      Name  Flags
      line  

  private static int lambda$0(com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst arg
         0: .line 322
            aload 0 /* arg */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            ireturn
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arg  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static int lambda$1(com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst arg
         0: .line 326
            aload 0 /* arg */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            ireturn
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arg  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static java.lang.String lambda$2(java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.reflect.Type t
         0: .line 438
            aload 0 /* t */
            invokestatic com.oracle.truffle.js.snapshot.Recording.typeName:(Ljava/lang/reflect/Type;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.reflect.Type t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljava/lang/reflect/Type;

  private static com.oracle.truffle.js.snapshot.Recording$Inst lambda$3(java.lang.Object, java.lang.Class, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=3, args_size=3
        start local 2 // java.lang.Object v
         0: .line 1168
            new com.oracle.truffle.js.snapshot.Recording$ConstInst
            dup
            aload 2 /* v */
            aload 0
            ifnonnull 1
            ldc Ljava/lang/Object;
            goto 2
      StackMap locals: java.lang.Object java.lang.Class java.lang.Object
      StackMap stack: new 0 new 0 java.lang.Object
         1: aload 1
      StackMap locals: java.lang.Object java.lang.Class java.lang.Object
      StackMap stack: new 0 new 0 java.lang.Object java.lang.Class
         2: iconst_1
            invokespecial com.oracle.truffle.js.snapshot.Recording$ConstInst.<init>:(Ljava/lang/Object;Ljava/lang/Class;Z)V
            areturn
        end local 2 // java.lang.Object v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     2     v  Ljava/lang/Object;

  private static com.oracle.truffle.js.snapshot.Recording$Inst lambda$4(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSContext v
         0: .line 1176
            new com.oracle.truffle.js.snapshot.Recording$ContextInst
            dup
            invokespecial com.oracle.truffle.js.snapshot.Recording$ContextInst.<init>:()V
            areturn
        end local 0 // com.oracle.truffle.js.runtime.JSContext v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lcom/oracle/truffle/js/runtime/JSContext;

  private static com.oracle.truffle.js.snapshot.Recording$Inst lambda$5(java.lang.Class, com.oracle.truffle.js.snapshot.Recording$Inst[]);
    descriptor: (Ljava/lang/Class;[Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst[] v
         0: .line 1181
            new com.oracle.truffle.js.snapshot.Recording$CollectInst
            dup
            aload 0
            aload 1 /* v */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            aconst_null
            invokespecial com.oracle.truffle.js.snapshot.Recording$CollectInst.<init>:(Ljava/lang/Class;Ljava/util/List;Ljava/lang/reflect/Type;)V
            areturn
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst[] v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     v  [Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static com.oracle.truffle.js.snapshot.Recording$Inst lambda$6(java.lang.reflect.Type, java.util.List);
    descriptor: (Ljava/lang/reflect/Type;Ljava/util/List;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 1 // java.util.List v
         0: .line 1185
            new com.oracle.truffle.js.snapshot.Recording$CollectInst
            dup
            aload 1 /* v */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* v */
            aload 0
            invokespecial com.oracle.truffle.js.snapshot.Recording$CollectInst.<init>:(Ljava/lang/Class;Ljava/util/List;Ljava/lang/reflect/Type;)V
            areturn
        end local 1 // java.util.List v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     v  Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;

  private com.oracle.truffle.js.snapshot.Recording$Inst lambda$7(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.api.CallTarget v
         0: .line 1189
            new com.oracle.truffle.js.snapshot.Recording$CallTargetInst
            dup
            aload 0 /* this */
            aload 1 /* v */
            checkcast com.oracle.truffle.api.RootCallTarget
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokespecial com.oracle.truffle.js.snapshot.Recording$CallTargetInst.<init>:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            areturn
        end local 1 // com.oracle.truffle.api.CallTarget v
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1     v  Lcom/oracle/truffle/api/CallTarget;

  private static com.oracle.truffle.js.snapshot.Recording$Inst lambda$8(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.Object v
         0: .line 1193
            new com.oracle.truffle.js.snapshot.Recording$PlaceholderInst
            dup
            aload 0
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokespecial com.oracle.truffle.js.snapshot.Recording$PlaceholderInst.<init>:(Ljava/lang/Class;)V
            areturn
        end local 1 // java.lang.Object v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     v  Ljava/lang/Object;

  private com.oracle.truffle.js.snapshot.Recording$Inst lambda$9(com.oracle.truffle.api.frame.FrameSlot);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.api.frame.FrameSlot v
         0: .line 1197
            new com.oracle.truffle.js.snapshot.Recording$FrameSlotInst
            dup
            aload 1 /* v */
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* v */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.getFrameDescriptor:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpFrameDescriptor:(Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            aload 0 /* this */
            aload 1 /* v */
            invokevirtual com.oracle.truffle.api.frame.FrameSlot.getIdentifier:()Ljava/lang/Object;
            ldc Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpConst:(Ljava/lang/Object;Ljava/lang/Class;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            aload 1 /* v */
            invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.getFlags:(Lcom/oracle/truffle/api/frame/FrameSlot;)I
            invokespecial com.oracle.truffle.js.snapshot.Recording$FrameSlotInst.<init>:(Lcom/oracle/truffle/api/frame/FrameSlot;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;I)V
            areturn
        end local 1 // com.oracle.truffle.api.frame.FrameSlot v
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1     v  Lcom/oracle/truffle/api/frame/FrameSlot;

  private static boolean lambda$10(com.oracle.truffle.api.frame.FrameSlot, com.oracle.truffle.api.frame.FrameDescriptor);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameSlot;Lcom/oracle/truffle/api/frame/FrameDescriptor;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.truffle.api.frame.FrameDescriptor desc
         0: .line 1201
            aload 1 /* desc */
            aload 0
            invokevirtual com.oracle.truffle.api.frame.FrameSlot.getIdentifier:()Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            aload 0
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // com.oracle.truffle.api.frame.FrameDescriptor desc
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1  desc  Lcom/oracle/truffle/api/frame/FrameDescriptor;

  private static java.util.NoSuchElementException lambda$11(com.oracle.truffle.api.frame.FrameSlot);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameSlot;)Ljava/util/NoSuchElementException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=1, args_size=1
         0: .line 1202
            new java.util.NoSuchElementException
            dup
            new java.lang.StringBuilder
            dup
            ldc "FrameDescriptor not found for slot: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.util.NoSuchElementException.<init>:(Ljava/lang/String;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static com.oracle.truffle.js.snapshot.Recording$Inst lambda$12(com.oracle.truffle.api.frame.FrameDescriptor);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.frame.FrameDescriptor v
         0: .line 1207
            new com.oracle.truffle.js.snapshot.Recording$FrameDescriptorInst
            dup
            invokespecial com.oracle.truffle.js.snapshot.Recording$FrameDescriptorInst.<init>:()V
            areturn
        end local 0 // com.oracle.truffle.api.frame.FrameDescriptor v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lcom/oracle/truffle/api/frame/FrameDescriptor;

  private com.oracle.truffle.js.snapshot.Recording$Inst lambda$13(com.oracle.truffle.js.runtime.builtins.JSFunctionData);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         0: .line 1212
            new com.oracle.truffle.js.snapshot.Recording$FunctionDataInst
            dup
            aload 1 /* functionData */
            aload 0 /* this */
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpContext:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokespecial com.oracle.truffle.js.snapshot.Recording$FunctionDataInst.<init>:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            areturn
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  private static com.oracle.truffle.js.snapshot.Recording$Inst lambda$14(com.oracle.truffle.js.nodes.control.BreakTarget);
    descriptor: (Lcom/oracle/truffle/js/nodes/control/BreakTarget;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.control.BreakTarget v
         0: .line 1216
            new com.oracle.truffle.js.snapshot.Recording$BreakTargetInst
            dup
            aload 0 /* v */
            invokespecial com.oracle.truffle.js.snapshot.Recording$BreakTargetInst.<init>:(Lcom/oracle/truffle/js/nodes/control/BreakTarget;)V
            areturn
        end local 0 // com.oracle.truffle.js.nodes.control.BreakTarget v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lcom/oracle/truffle/js/nodes/control/BreakTarget;

  private static com.oracle.truffle.js.snapshot.Recording$Inst lambda$15(com.oracle.truffle.api.source.Source);
    descriptor: (Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.source.Source v
         0: .line 1220
            new com.oracle.truffle.js.snapshot.Recording$SourceInst
            dup
            invokespecial com.oracle.truffle.js.snapshot.Recording$SourceInst.<init>:()V
            areturn
        end local 0 // com.oracle.truffle.api.source.Source v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lcom/oracle/truffle/api/source/Source;

  private com.oracle.truffle.js.snapshot.Recording$Inst lambda$16(com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.api.source.SourceSection);
    descriptor: (Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 2 // com.oracle.truffle.api.source.SourceSection v
         0: .line 1224
            new com.oracle.truffle.js.snapshot.Recording$SourceSectionInst
            dup
            aload 0 /* this */
            aload 1
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpSource:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            aload 2 /* v */
            invokespecial com.oracle.truffle.js.snapshot.Recording$SourceSectionInst.<init>:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/api/source/SourceSection;)V
            areturn
        end local 2 // com.oracle.truffle.api.source.SourceSection v
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     2     v  Lcom/oracle/truffle/api/source/SourceSection;

  private java.lang.Boolean lambda$17(com.oracle.truffle.js.runtime.builtins.JSFunctionData, java.lang.String, com.oracle.truffle.js.snapshot.Recording$NodeInst, java.lang.Boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Ljava/lang/String;Lcom/oracle/truffle/js/snapshot/Recording$NodeInst;Ljava/lang/Boolean;)Ljava/lang/Boolean;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 4 // java.lang.Boolean earlyFixup
         0: .line 1300
            aload 1
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getName:()Ljava/lang/String;
            astore 5 /* currentName */
        start local 5 // java.lang.String currentName
         1: .line 1301
            aload 2
            aload 5 /* currentName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: java.lang.String
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: istore 6 /* nameChanged */
        start local 6 // boolean nameChanged
         4: .line 1302
            iload 6 /* nameChanged */
            ifeq 6
         5: .line 1303
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            new com.oracle.truffle.js.snapshot.Recording$FixUpFunctionDataNameInst
            dup
            aload 3
            invokevirtual com.oracle.truffle.js.snapshot.Recording$NodeInst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            aload 5 /* currentName */
            invokespecial com.oracle.truffle.js.snapshot.Recording$FixUpFunctionDataNameInst.<init>:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/lang/String;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 1305
      StackMap locals: int
      StackMap stack:
            iload 6 /* nameChanged */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 6 // boolean nameChanged
        end local 5 // java.lang.String currentName
        end local 4 // java.lang.Boolean earlyFixup
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    7     4   earlyFixup  Ljava/lang/Boolean;
            1    7     5  currentName  Ljava/lang/String;
            4    7     6  nameChanged  Z

  private java.lang.Boolean lambda$18(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.snapshot.Recording$NodeInst, java.lang.Boolean);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/snapshot/Recording$NodeInst;Ljava/lang/Boolean;)Ljava/lang/Boolean;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 3 // java.lang.Boolean earlyFixup
         0: .line 1321
            aload 1
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasSourceSection:()Z
            ifeq 4
         1: .line 1322
            aload 1
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 4 /* sourceSection */
        start local 4 // com.oracle.truffle.api.source.SourceSection sourceSection
         2: .line 1323
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            new com.oracle.truffle.js.snapshot.Recording$FixUpNodeSourceSectionInst
            dup
            aload 2
            invokevirtual com.oracle.truffle.js.snapshot.Recording$NodeInst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            aload 0 /* this */
            aload 4 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.js.snapshot.Recording.dumpSource:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            aload 4 /* sourceSection */
            invokespecial com.oracle.truffle.js.snapshot.Recording$FixUpNodeSourceSectionInst.<init>:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/api/source/SourceSection;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         3: .line 1324
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 4 // com.oracle.truffle.api.source.SourceSection sourceSection
         4: .line 1326
      StackMap locals:
      StackMap stack:
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 3 // java.lang.Boolean earlyFixup
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    5     3     earlyFixup  Ljava/lang/Boolean;
            2    4     4  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;

  private static boolean lambda$19(boolean, java.util.function.Function);
    descriptor: (ZLjava/util/function/Function;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.util.function.Function fixup
         0: .line 1365
            aload 1 /* fixup */
            iload 0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 1 // java.util.function.Function fixup
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     1  fixup  Ljava/util/function/Function<Ljava/lang/Boolean;Ljava/lang/Boolean;>;

  private static boolean lambda$21(java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         0: .line 1391
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.isRoot:()Z
            ifne 1
            aload 0
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst inst
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1  inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private void lambda$22(com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst in
         0: .line 1407
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.usageMap:Ljava/util/Map;
            aload 1 /* in */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            return
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst in
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     1    in  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private void lambda$23(com.oracle.truffle.js.snapshot.Recording$Inst, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 2 // com.oracle.truffle.js.snapshot.Recording$Inst in
         0: .line 1410
            aload 2 /* in */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.inVar:()Z
            ifne 2
         1: .line 1411
            return
         2: .line 1413
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.usageMap:Ljava/util/Map;
            aload 2 /* in */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            aload 1
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         3: .line 1414
            return
        end local 2 // com.oracle.truffle.js.snapshot.Recording$Inst in
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    4     2    in  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static boolean lambda$24(java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst, java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=5, args_size=4
        start local 3 // com.oracle.truffle.js.snapshot.Recording$Inst inst1
         0: .line 1483
            aload 3 /* inst1 */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.inVar:()Z
            ifne 2
         1: .line 1484
            iconst_1
            ireturn
         2: .line 1486
      StackMap locals:
      StackMap stack:
            aload 3 /* inst1 */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getIndex:()I
            istore 4 /* index */
        start local 4 // int index
         3: .line 1487
            aload 0
            iload 4 /* index */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 11
         4: .line 1488
            aload 0
            iload 4 /* index */
            invokevirtual java.util.BitSet.set:(I)V
         5: .line 1489
            aload 1
            aload 3 /* inst1 */
            if_acmpeq 10
         6: .line 1490
            aload 3 /* inst1 */
            invokestatic com.oracle.truffle.js.snapshot.Recording.isBatchBoundary:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            ifeq 8
         7: .line 1491
            iconst_0
            ireturn
         8: .line 1492
      StackMap locals: int
      StackMap stack:
            aload 2
            iload 4 /* index */
            invokevirtual java.util.BitSet.get:(I)Z
            ifeq 10
            aload 3 /* inst1 */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.isPrimitiveValue:()Z
            ifne 10
         9: .line 1493
            iconst_0
            ireturn
        10: .line 1496
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        11: .line 1498
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // int index
        end local 3 // com.oracle.truffle.js.snapshot.Recording$Inst inst1
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     3  inst1  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            3   12     4  index  I

  private boolean lambda$27(java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst, java.util.BitSet);
    descriptor: (Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
         0: .line 1515
            aload 1
            invokevirtual java.util.BitSet.cardinality:()I
            istore 4 /* before */
        start local 4 // int before
         1: .line 1516
            aload 0 /* this */
            aload 1
            invokevirtual com.oracle.truffle.js.snapshot.Recording.addInputsToSet:(Ljava/util/BitSet;)V
         2: .line 1517
            aload 0 /* this */
            aload 1
            aload 2
            aload 3
            invokevirtual com.oracle.truffle.js.snapshot.Recording.addFixUpsToSet:(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;)V
         3: .line 1518
            aload 1
            invokevirtual java.util.BitSet.cardinality:()I
            istore 5 /* after */
        start local 5 // int after
         4: .line 1519
            iload 4 /* before */
            iload 5 /* after */
            if_icmpeq 5
            iconst_1
            ireturn
      StackMap locals: int int
      StackMap stack:
         5: iconst_0
            ireturn
        end local 5 // int after
        end local 4 // int before
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/oracle/truffle/js/snapshot/Recording;
            1    6     4  before  I
            4    6     5   after  I

  private void lambda$32(java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst, java.util.List, int);
    descriptor: (Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/List;I)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 4 // int index
         0: .line 1542
            aload 1
            iload 4 /* index */
            invokevirtual java.util.BitSet.get:(I)Z
            ifeq 7
         1: .line 1543
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            iload 4 /* index */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            astore 5 /* inst */
        start local 5 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         2: .line 1544
            aload 5 /* inst */
            aload 2
            if_acmpeq 3
            aload 5 /* inst */
            invokestatic com.oracle.truffle.js.snapshot.Recording.isBatchBoundary:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            ifeq 4
         3: .line 1545
      StackMap locals: com.oracle.truffle.js.snapshot.Recording$Inst
      StackMap stack:
            return
         4: .line 1547
      StackMap locals:
      StackMap stack:
            aload 5 /* inst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.isPrimitiveValue:()Z
            ifne 7
         5: .line 1548
            ldc "already extracted %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* inst */
            aastore
            invokestatic com.oracle.truffle.js.snapshot.Recording.logv:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 1549
            aload 3
            aload 5 /* inst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         7: .line 1552
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int index
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    8     4  index  I
            2    7     5   inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static boolean lambda$35(com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst in
         0: .line 1556
            aload 0 /* in */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.isPrimitiveValue:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    in  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static boolean lambda$36(com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst in
         0: .line 1556
            aload 0 /* in */
            invokestatic com.oracle.truffle.js.snapshot.Recording.isBatchBoundary:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    in  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static void lambda$37(java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst in
         0: .line 1557
            ldc "cleared %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* in */
            aastore
            invokestatic com.oracle.truffle.js.snapshot.Recording.logv:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 1558
            aload 0
            aload 1 /* in */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getIndex:()I
            invokevirtual java.util.BitSet.clear:(I)V
         2: .line 1559
            return
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1    in  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private void lambda$38(java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem, java.util.Map, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$1BatchWorkItem;Ljava/util/Map;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst var
         0: .line 1562
            aload 0 /* this */
            aload 4 /* var */
            invokevirtual com.oracle.truffle.js.snapshot.Recording.deref:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            astore 5 /* in */
        start local 5 // com.oracle.truffle.js.snapshot.Recording$Inst in
         1: .line 1563
            aload 5 /* in */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getIndex:()I
            istore 6 /* index */
        start local 6 // int index
         2: .line 1564
            aload 1
            iload 6 /* index */
            invokevirtual java.util.BitSet.clear:(I)V
         3: .line 1565
            aload 2
            getfield com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem.caller:Lcom/oracle/truffle/js/snapshot/Recording$1BatchWorkItem;
            astore 7 /* caller */
        start local 7 // com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem caller
         4: goto 12
         5: .line 1566
      StackMap locals: com.oracle.truffle.js.snapshot.Recording$Inst int com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem
      StackMap stack:
            aload 7 /* caller */
            getfield com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem.extractedSet:Ljava/util/BitSet;
            iload 6 /* index */
            invokevirtual java.util.BitSet.get:(I)Z
            ifeq 7
         6: .line 1567
            goto 13
         7: .line 1570
      StackMap locals:
      StackMap stack:
            aload 3
            aload 7 /* caller */
            getfield com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem.startInst:Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$1CallInfo
            getfield com.oracle.truffle.js.snapshot.Recording$1CallInfo.args:Ljava/util/List;
            astore 8 /* callerArgs */
        start local 8 // java.util.List callerArgs
         8: .line 1571
            aload 8 /* callerArgs */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 5 /* in */
            invokedynamic test(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$39(Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifne 11
         9: .line 1575
            ldc "forwarding variable through caller: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* in */
            aastore
            invokestatic com.oracle.truffle.js.snapshot.Recording.logv:(Ljava/lang/String;[Ljava/lang/Object;)V
        10: .line 1576
            aload 8 /* callerArgs */
            aload 5 /* in */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.asVar:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.util.List callerArgs
        11: .line 1565
      StackMap locals:
      StackMap stack:
            aload 7 /* caller */
            getfield com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem.caller:Lcom/oracle/truffle/js/snapshot/Recording$1BatchWorkItem;
            astore 7 /* caller */
      StackMap locals:
      StackMap stack:
        12: aload 7 /* caller */
            ifnonnull 5
        end local 7 // com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem caller
        end local 6 // int index
        end local 5 // com.oracle.truffle.js.snapshot.Recording$Inst in
        13: .line 1579
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst var
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lcom/oracle/truffle/js/snapshot/Recording;
            0   14     4         var  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            1   13     5          in  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            2   13     6       index  I
            4   13     7      caller  Lcom/oracle/truffle/js/snapshot/Recording$1BatchWorkItem;
            8   11     8  callerArgs  Ljava/util/List<Lcom/oracle/truffle/js/snapshot/Recording$Inst;>;

  private static boolean lambda$41(java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst in
         0: .line 1581
            aload 1 /* in */
            invokestatic com.oracle.truffle.js.snapshot.Recording.isBatchBoundary:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            ifeq 1
            aload 1 /* in */
            aload 0
            invokestatic com.oracle.truffle.js.snapshot.Recording.isContained:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;)Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1    in  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private void lambda$42(java.util.Deque, java.util.BitSet, java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Ljava/util/Deque;Ljava/util/BitSet;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$1BatchWorkItem;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 5 // com.oracle.truffle.js.snapshot.Recording$Inst nextBoundary
         0: .line 1582
            aload 1
            new com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem
            dup
            aload 0 /* this */
            aload 5 /* nextBoundary */
            aload 2
            aload 3
            invokestatic com.oracle.truffle.js.snapshot.Recording.mergeBitSets:(Ljava/util/BitSet;Ljava/util/BitSet;)Ljava/util/BitSet;
            aload 4
            invokespecial com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem.<init>:(Lcom/oracle/truffle/js/snapshot/Recording;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$1BatchWorkItem;)V
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
            return
        end local 5 // com.oracle.truffle.js.snapshot.Recording$Inst nextBoundary
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    1     5  nextBoundary  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static void lambda$43(com.oracle.truffle.js.snapshot.Recording$1CallInfo);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$1CallInfo;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording$1CallInfo callInfo
         0: .line 1594
            aload 0 /* callInfo */
            getfield com.oracle.truffle.js.snapshot.Recording$1CallInfo.args:Ljava/util/List;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording$Inst.getId()I (5)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Ljava/lang/Integer;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
            return
        end local 0 // com.oracle.truffle.js.snapshot.Recording$1CallInfo callInfo
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  callInfo  Lcom/oracle/truffle/js/snapshot/Recording$1CallInfo;

  private com.oracle.truffle.js.snapshot.Recording$Inst lambda$45(com.oracle.truffle.js.snapshot.Recording$Inst, java.util.Map, int);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/Map;I)Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 3 // int i
         0: .line 1600
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            astore 4 /* inst */
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         1: .line 1601
            aload 4 /* inst */
            aload 1
            if_acmpeq 6
         2: .line 1602
            aload 2
            aload 4 /* inst */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$1CallInfo
            astore 5 /* callInfo */
        start local 5 // com.oracle.truffle.js.snapshot.Recording$1CallInfo callInfo
         3: .line 1603
            aload 5 /* callInfo */
            ifnull 6
         4: .line 1604
            getstatic com.oracle.truffle.js.snapshot.Recording.$assertionsDisabled:Z
            ifne 5
            aload 4 /* inst */
            instanceof com.oracle.truffle.js.snapshot.Recording$ReturnInst
            ifeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 1605
      StackMap locals: com.oracle.truffle.js.snapshot.Recording$Inst com.oracle.truffle.js.snapshot.Recording$1CallInfo
      StackMap stack:
            new com.oracle.truffle.js.snapshot.Recording$CallExtractedInst
            dup
            aload 5 /* callInfo */
            getfield com.oracle.truffle.js.snapshot.Recording$1CallInfo.name:Ljava/lang/String;
            aload 4 /* inst */
            aload 5 /* callInfo */
            getfield com.oracle.truffle.js.snapshot.Recording$1CallInfo.returnType:Ljava/lang/Class;
            aload 5 /* callInfo */
            getfield com.oracle.truffle.js.snapshot.Recording$1CallInfo.args:Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/js/snapshot/Recording.lambda$46(I)[Lcom/oracle/truffle/js/snapshot/Recording$Inst; (6)
                  (I)[Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst[]
            invokespecial com.oracle.truffle.js.snapshot.Recording$CallExtractedInst.<init>:(Ljava/lang/String;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/lang/Class;[Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            astore 4 /* inst */
        end local 5 // com.oracle.truffle.js.snapshot.Recording$1CallInfo callInfo
         6: .line 1608
      StackMap locals:
      StackMap stack:
            aload 4 /* inst */
            areturn
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst inst
        end local 3 // int i
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    7     3         i  I
            1    7     4      inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            3    6     5  callInfo  Lcom/oracle/truffle/js/snapshot/Recording$1CallInfo;

  private static void lambda$49(java.util.concurrent.atomic.AtomicBoolean, java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 2 // com.oracle.truffle.js.snapshot.Recording$Inst input
         0: .line 1642
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 6
         1: .line 1643
            getstatic com.oracle.truffle.js.snapshot.Recording.$assertionsDisabled:Z
            ifne 2
            aload 2 /* input */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.isRoot:()Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1644
      StackMap locals:
      StackMap stack:
            aload 2 /* input */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.inVar:()Z
            ifne 4
         3: .line 1645
            return
         4: .line 1647
      StackMap locals:
      StackMap stack:
            aload 1
            aload 2 /* input */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getIndex:()I
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 6
         5: .line 1648
            aload 0
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
         6: .line 1651
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.js.snapshot.Recording$Inst input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     2  input  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static boolean lambda$51(java.util.Map, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Ljava/util/Map;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst in
         0: .line 1670
            aload 0
            aload 1 /* in */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1    in  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static boolean lambda$52(com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst in
         0: .line 1670
            aload 0 /* in */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.isPrimitiveValue:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    in  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static void lambda$53(com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst in
         0: .line 1670
            new java.lang.StringBuilder
            dup
            ldc "dupe: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* in */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.snapshot.Recording.logv:(Ljava/lang/String;)V
            return
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    in  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private void lambda$54(java.util.BitSet, int);
    descriptor: (Ljava/util/BitSet;I)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 2 // int j
         0: .line 1683
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.insts:Ljava/util/ArrayList;
            iload 2 /* j */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.snapshot.Recording$Inst
            astore 3 /* inst */
        start local 3 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         1: .line 1684
            aload 3 /* inst */
            invokestatic com.oracle.truffle.js.snapshot.Recording.isBatchBoundary:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            ifeq 3
         2: .line 1685
            return
         3: .line 1686
      StackMap locals: com.oracle.truffle.js.snapshot.Recording$Inst
      StackMap stack:
            aload 3 /* inst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getDeclaredType:()Ljava/lang/Class;
            ldc Lcom/oracle/truffle/api/frame/FrameDescriptor;
            if_acmpne 5
         4: .line 1687
            return
         5: .line 1689
      StackMap locals:
      StackMap stack:
            aload 1
            aload 3 /* inst */
            invokestatic com.oracle.truffle.js.snapshot.Recording.addInputsToSet:(Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
        end local 3 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         6: .line 1690
            return
        end local 2 // int j
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    7     2     j  I
            1    6     3  inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static void lambda$55(java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=2
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst input
         0: .line 1695
            aload 1 /* input */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.inVar:()Z
            ifne 2
         1: .line 1696
            return
         2: .line 1698
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getIndex:()I
            istore 2 /* index */
        start local 2 // int index
         3: .line 1699
            aload 0
            iload 2 /* index */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 5
         4: .line 1700
            aload 0
            iload 2 /* index */
            invokevirtual java.util.BitSet.set:(I)V
        end local 2 // int index
         5: .line 1702
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     1  input  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            3    5     2  index  I

  private void lambda$57(com.oracle.truffle.js.snapshot.Recording$Inst, java.util.BitSet, java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;Ljava/util/BitSet;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.oracle.truffle.js.snapshot.Recording this
        start local 4 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         0: .line 1711
            aload 4 /* inst */
            instanceof com.oracle.truffle.js.snapshot.Recording$FunctionDataInst
            ifeq 2
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.usageMap:Ljava/util/Map;
            aload 4 /* inst */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$58(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            aload 1
            invokedynamic test(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$59(Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            invokeinterface java.util.stream.Stream.allMatch:(Ljava/util/function/Predicate;)Z
            ifne 2
         1: .line 1713
            return
         2: .line 1717
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.snapshot.Recording.usageMap:Ljava/util/Map;
            aload 4 /* inst */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            aload 4 /* inst */
            invokedynamic test(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/snapshot/Recording.lambda$60(Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            aload 2
            aload 3
            aload 4 /* inst */
            invokedynamic accept(Ljava/util/BitSet;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/snapshot/Recording.lambda$61(Ljava/util/BitSet;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V (6)
                  (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         3: .line 1724
            return
        end local 4 // com.oracle.truffle.js.snapshot.Recording$Inst inst
        end local 0 // com.oracle.truffle.js.snapshot.Recording this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/js/snapshot/Recording;
            0    4     4  inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static boolean lambda$62(java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst inst
         0: .line 1729
            aload 0
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 3
         1: .line 1730
            aload 0
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            invokevirtual java.util.BitSet.set:(I)V
         2: .line 1731
            iconst_1
            ireturn
         3: .line 1733
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst inst
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1  inst  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static java.lang.String lambda$63(com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst arg
         0: .line 1828
            new java.lang.StringBuilder
            dup
            aload 0 /* arg */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.declaredTypeName:()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;
            aload 0 /* arg */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arg  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static int lambda$64(com.oracle.truffle.js.snapshot.Recording$Inst, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst a
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst b
         0: .line 1858
            aload 0 /* a */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            istore 2 /* ai */
        start local 2 // int ai
         1: .line 1859
            aload 1 /* b */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            istore 3 /* bi */
        start local 3 // int bi
         2: .line 1860
            iload 2 /* ai */
            iload 3 /* bi */
            if_icmpeq 7
         3: .line 1861
            iload 2 /* ai */
            iconst_m1
            if_icmpne 5
         4: .line 1862
            iconst_1
            ireturn
         5: .line 1863
      StackMap locals: int int
      StackMap stack:
            iload 3 /* bi */
            iconst_m1
            if_icmpne 7
         6: .line 1864
            iconst_m1
            ireturn
         7: .line 1867
      StackMap locals:
      StackMap stack:
            iload 2 /* ai */
            iload 3 /* bi */
            invokestatic java.lang.Integer.compare:(II)I
            ireturn
        end local 3 // int bi
        end local 2 // int ai
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst b
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     a  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            0    8     1     b  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            1    8     2    ai  I
            2    8     3    bi  I

  private static boolean lambda$39(com.oracle.truffle.js.snapshot.Recording$Inst, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst callerArg
         0: .line 1571
            aload 1 /* callerArg */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            aload 0
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            if_icmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst callerArg
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     1  callerArg  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static com.oracle.truffle.js.snapshot.Recording$Inst[] lambda$46(int);
    descriptor: (I)[Lcom/oracle/truffle/js/snapshot/Recording$Inst;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray com.oracle.truffle.js.snapshot.Recording$Inst
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean lambda$58(com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.snapshot.Recording$Inst usage
         0: .line 1711
            aload 0 /* usage */
            invokestatic com.oracle.truffle.js.snapshot.Recording.isBatchBoundary:(Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
            ireturn
        end local 0 // com.oracle.truffle.js.snapshot.Recording$Inst usage
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  usage  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static boolean lambda$59(com.oracle.truffle.js.snapshot.Recording$Inst, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst boundary
         0: .line 1711
            aload 1 /* boundary */
            aload 0
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst boundary
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     1  boundary  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static boolean lambda$60(com.oracle.truffle.js.snapshot.Recording$Inst, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.truffle.js.snapshot.Recording$Inst usage
         0: .line 1717
            aload 1 /* usage */
            instanceof com.oracle.truffle.js.snapshot.Recording$FixUpInst
            ifeq 1
            aload 1 /* usage */
            checkcast com.oracle.truffle.js.snapshot.Recording$FixUpInst
            invokeinterface com.oracle.truffle.js.snapshot.Recording$FixUpInst.getFixUpTarget:()Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            aload 0
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getId:()I
            if_icmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // com.oracle.truffle.js.snapshot.Recording$Inst usage
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     1  usage  Lcom/oracle/truffle/js/snapshot/Recording$Inst;

  private static void lambda$61(java.util.BitSet, java.util.BitSet, com.oracle.truffle.js.snapshot.Recording$Inst, com.oracle.truffle.js.snapshot.Recording$Inst);
    descriptor: (Ljava/util/BitSet;Ljava/util/BitSet;Lcom/oracle/truffle/js/snapshot/Recording$Inst;Lcom/oracle/truffle/js/snapshot/Recording$Inst;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=4
        start local 3 // com.oracle.truffle.js.snapshot.Recording$Inst fixup
         0: .line 1718
            aload 3 /* fixup */
            invokevirtual com.oracle.truffle.js.snapshot.Recording$Inst.getIndex:()I
            istore 4 /* index */
        start local 4 // int index
         1: .line 1719
            aload 0
            iload 4 /* index */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 4
            aload 1
            iload 4 /* index */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 4
         2: .line 1720
            ldc "fixup %s -> %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* fixup */
            aastore
            dup
            iconst_1
            aload 2
            aastore
            invokestatic com.oracle.truffle.js.snapshot.Recording.logv:(Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 1721
            aload 0
            iload 4 /* index */
            invokevirtual java.util.BitSet.set:(I)V
        end local 4 // int index
         4: .line 1723
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.truffle.js.snapshot.Recording$Inst fixup
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     3  fixup  Lcom/oracle/truffle/js/snapshot/Recording$Inst;
            1    4     4  index  I
}
SourceFile: "Recording.java"
NestMembers:
  com.oracle.truffle.js.snapshot.Recording$1  com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem  com.oracle.truffle.js.snapshot.Recording$1CallInfo  com.oracle.truffle.js.snapshot.Recording$BreakTargetInst  com.oracle.truffle.js.snapshot.Recording$CallExtractedInst  com.oracle.truffle.js.snapshot.Recording$CallTargetInst  com.oracle.truffle.js.snapshot.Recording$CollectInst  com.oracle.truffle.js.snapshot.Recording$ConstInst  com.oracle.truffle.js.snapshot.Recording$ContextInst  com.oracle.truffle.js.snapshot.Recording$FixUpFunctionDataNameInst  com.oracle.truffle.js.snapshot.Recording$FixUpInst  com.oracle.truffle.js.snapshot.Recording$FixUpNodeSourceSectionInst  com.oracle.truffle.js.snapshot.Recording$FixUpNodeTagsInst  com.oracle.truffle.js.snapshot.Recording$FrameDescriptorInst  com.oracle.truffle.js.snapshot.Recording$FrameSlotInst  com.oracle.truffle.js.snapshot.Recording$FunctionDataInst  com.oracle.truffle.js.snapshot.Recording$Inst  com.oracle.truffle.js.snapshot.Recording$Inst$1  com.oracle.truffle.js.snapshot.Recording$Inst$Visitor  com.oracle.truffle.js.snapshot.Recording$InstBatch  com.oracle.truffle.js.snapshot.Recording$MethodCall  com.oracle.truffle.js.snapshot.Recording$NodeInst  com.oracle.truffle.js.snapshot.Recording$ParamInst  com.oracle.truffle.js.snapshot.Recording$PlaceholderInst  com.oracle.truffle.js.snapshot.Recording$ReturnInst  com.oracle.truffle.js.snapshot.Recording$SourceInst  com.oracle.truffle.js.snapshot.Recording$SourceSectionInst  com.oracle.truffle.js.snapshot.Recording$VarIdTable  com.oracle.truffle.js.snapshot.Recording$VarIdTable$1IdentityKey  com.oracle.truffle.js.snapshot.Recording$VarInst
InnerClasses:
  com.oracle.truffle.js.snapshot.Recording$1
  BatchWorkItem = com.oracle.truffle.js.snapshot.Recording$1BatchWorkItem
  CallInfo = com.oracle.truffle.js.snapshot.Recording$1CallInfo
  private BreakTargetInst = com.oracle.truffle.js.snapshot.Recording$BreakTargetInst of com.oracle.truffle.js.snapshot.Recording
  private CallExtractedInst = com.oracle.truffle.js.snapshot.Recording$CallExtractedInst of com.oracle.truffle.js.snapshot.Recording
  private CallTargetInst = com.oracle.truffle.js.snapshot.Recording$CallTargetInst of com.oracle.truffle.js.snapshot.Recording
  private CollectInst = com.oracle.truffle.js.snapshot.Recording$CollectInst of com.oracle.truffle.js.snapshot.Recording
  private ConstInst = com.oracle.truffle.js.snapshot.Recording$ConstInst of com.oracle.truffle.js.snapshot.Recording
  private ContextInst = com.oracle.truffle.js.snapshot.Recording$ContextInst of com.oracle.truffle.js.snapshot.Recording
  private FixUpFunctionDataNameInst = com.oracle.truffle.js.snapshot.Recording$FixUpFunctionDataNameInst of com.oracle.truffle.js.snapshot.Recording
  private abstract FixUpInst = com.oracle.truffle.js.snapshot.Recording$FixUpInst of com.oracle.truffle.js.snapshot.Recording
  private FixUpNodeSourceSectionInst = com.oracle.truffle.js.snapshot.Recording$FixUpNodeSourceSectionInst of com.oracle.truffle.js.snapshot.Recording
  private FixUpNodeTagsInst = com.oracle.truffle.js.snapshot.Recording$FixUpNodeTagsInst of com.oracle.truffle.js.snapshot.Recording
  private FrameDescriptorInst = com.oracle.truffle.js.snapshot.Recording$FrameDescriptorInst of com.oracle.truffle.js.snapshot.Recording
  private FrameSlotInst = com.oracle.truffle.js.snapshot.Recording$FrameSlotInst of com.oracle.truffle.js.snapshot.Recording
  private FunctionDataInst = com.oracle.truffle.js.snapshot.Recording$FunctionDataInst of com.oracle.truffle.js.snapshot.Recording
  private abstract Inst = com.oracle.truffle.js.snapshot.Recording$Inst of com.oracle.truffle.js.snapshot.Recording
  abstract Visitor = com.oracle.truffle.js.snapshot.Recording$Inst$Visitor of com.oracle.truffle.js.snapshot.Recording$Inst
  private InstBatch = com.oracle.truffle.js.snapshot.Recording$InstBatch of com.oracle.truffle.js.snapshot.Recording
  private final MethodCall = com.oracle.truffle.js.snapshot.Recording$MethodCall of com.oracle.truffle.js.snapshot.Recording
  private NodeInst = com.oracle.truffle.js.snapshot.Recording$NodeInst of com.oracle.truffle.js.snapshot.Recording
  private ParamInst = com.oracle.truffle.js.snapshot.Recording$ParamInst of com.oracle.truffle.js.snapshot.Recording
  private PlaceholderInst = com.oracle.truffle.js.snapshot.Recording$PlaceholderInst of com.oracle.truffle.js.snapshot.Recording
  private ReturnInst = com.oracle.truffle.js.snapshot.Recording$ReturnInst of com.oracle.truffle.js.snapshot.Recording
  private SourceInst = com.oracle.truffle.js.snapshot.Recording$SourceInst of com.oracle.truffle.js.snapshot.Recording
  private SourceSectionInst = com.oracle.truffle.js.snapshot.Recording$SourceSectionInst of com.oracle.truffle.js.snapshot.Recording
  private VarIdTable = com.oracle.truffle.js.snapshot.Recording$VarIdTable of com.oracle.truffle.js.snapshot.Recording
  private VarInst = com.oracle.truffle.js.snapshot.Recording$VarInst of com.oracle.truffle.js.snapshot.Recording
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map