final class com.oracle.truffle.tools.chromeinspector.BreakpointsHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.tools.chromeinspector.BreakpointsHandler
  super_class: java.lang.Object
{
  private long lastID;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private final com.oracle.truffle.api.debug.DebuggerSession ds;
    descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.tools.chromeinspector.ScriptsHandler slh;
    descriptor: Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.tools.chromeinspector.BreakpointsHandler$ResolvedHandler resolvedHandler;
    descriptor: Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler$ResolvedHandler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<com.oracle.truffle.api.debug.Breakpoint, java.lang.Long> bpIDs;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Long;>;

  private final java.util.Map<com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.source.SourceSection> resolvedBreakpoints;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/source/SourceSection;>;

  private final java.util.Map<java.lang.Long, com.oracle.truffle.tools.chromeinspector.ScriptsHandler$LoadScriptListener> scriptListeners;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Long;Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler$LoadScriptListener;>;

  private final java.util.concurrent.atomic.AtomicReference<com.oracle.truffle.api.debug.Breakpoint> exceptionBreakpoint;
    descriptor: Ljava/util/concurrent/atomic/AtomicReference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/oracle/truffle/api/debug/Breakpoint;>;

  void <init>(com.oracle.truffle.api.debug.DebuggerSession, com.oracle.truffle.tools.chromeinspector.ScriptsHandler, java.util.function.Supplier<com.oracle.truffle.tools.chromeinspector.events.EventHandler>);
    descriptor: (Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler;Ljava/util/function/Supplier;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
        start local 1 // com.oracle.truffle.api.debug.DebuggerSession ds
        start local 2 // com.oracle.truffle.tools.chromeinspector.ScriptsHandler slh
        start local 3 // java.util.function.Supplier eventHandler
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 56
            aload 0 /* this */
            lconst_0
            putfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.lastID:J
         2: .line 61
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.bpIDs:Ljava/util/Map;
         3: .line 62
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.resolvedBreakpoints:Ljava/util/Map;
         4: .line 63
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.scriptListeners:Ljava/util/Map;
         5: .line 64
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            putfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.exceptionBreakpoint:Ljava/util/concurrent/atomic/AtomicReference;
         6: .line 67
            aload 0 /* this */
            aload 1 /* ds */
            putfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.ds:Lcom/oracle/truffle/api/debug/DebuggerSession;
         7: .line 68
            aload 0 /* this */
            aload 2 /* slh */
            putfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.slh:Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler;
         8: .line 69
            aload 0 /* this */
            new com.oracle.truffle.tools.chromeinspector.BreakpointsHandler$ResolvedHandler
            dup
            aload 0 /* this */
            aload 3 /* eventHandler */
            invokespecial com.oracle.truffle.tools.chromeinspector.BreakpointsHandler$ResolvedHandler.<init>:(Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler;Ljava/util/function/Supplier;)V
            putfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.resolvedHandler:Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler$ResolvedHandler;
         9: .line 70
            return
        end local 3 // java.util.function.Supplier eventHandler
        end local 2 // com.oracle.truffle.tools.chromeinspector.ScriptsHandler slh
        end local 1 // com.oracle.truffle.api.debug.DebuggerSession ds
        end local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler;
            0   10     1            ds  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   10     2           slh  Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler;
            0   10     3  eventHandler  Ljava/util/function/Supplier<Lcom/oracle/truffle/tools/chromeinspector/events/EventHandler;>;
    Signature: (Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler;Ljava/util/function/Supplier<Lcom/oracle/truffle/tools/chromeinspector/events/EventHandler;>;)V
    MethodParameters:
              Name  Flags
      ds            
      slh           
      eventHandler  

  java.lang.String getId(com.oracle.truffle.api.debug.Breakpoint);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
        start local 1 // com.oracle.truffle.api.debug.Breakpoint bp
         0: .line 73
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.bpIDs:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         1: .line 74
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.bpIDs:Ljava/util/Map;
            aload 1 /* bp */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 3 /* id */
        start local 3 // java.lang.Long id
         2: .line 75
            aload 3 /* id */
            ifnull 5
         3: .line 76
            aload 3 /* id */
            invokevirtual java.lang.Long.toString:()Ljava/lang/String;
            aload 2
            monitorexit
         4: areturn
         5: .line 78
      StackMap locals: java.util.Map java.lang.Long
      StackMap stack:
            aload 2
            monitorexit
         6: aconst_null
            areturn
        end local 3 // java.lang.Long id
         7: .line 73
      StackMap locals: com.oracle.truffle.tools.chromeinspector.BreakpointsHandler com.oracle.truffle.api.debug.Breakpoint java.util.Map
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         8: athrow
        end local 1 // com.oracle.truffle.api.debug.Breakpoint bp
        end local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler;
            0    9     1    bp  Lcom/oracle/truffle/api/debug/Breakpoint;
            2    7     3    id  Ljava/lang/Long;
      Exception table:
        from    to  target  type
           1     4       7  any
           5     6       7  any
           7     8       7  any
    MethodParameters:
      Name  Flags
      bp    

  com.oracle.truffle.tools.chromeinspector.commands.Params createURLBreakpoint(java.lang.Object, int, int, java.lang.String);
    descriptor: (Ljava/lang/Object;IILjava/lang/String;)Lcom/oracle/truffle/tools/chromeinspector/commands/Params;
    flags: (0x0000) 
    Code:
      stack=8, locals=10, args_size=5
        start local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
        start local 1 // java.lang.Object url
        start local 2 // int line
        start local 3 // int column
        start local 4 // java.lang.String condition
         0: .line 84
            new com.oracle.truffle.tools.utils.json.JSONArray
            dup
            invokespecial com.oracle.truffle.tools.utils.json.JSONArray.<init>:()V
            astore 5 /* locations */
        start local 5 // com.oracle.truffle.tools.utils.json.JSONArray locations
         1: .line 87
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.bpIDs:Ljava/util/Map;
            dup
            astore 9
            monitorenter
         2: .line 88
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.lastID:J
            lconst_1
            ladd
            dup2_x1
            putfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.lastID:J
            lstore 6 /* id */
        start local 6 // long id
         3: .line 89
            aload 0 /* this */
            aload 1 /* url */
            iload 2 /* line */
            iload 3 /* column */
            aload 4 /* condition */
            lload 6 /* id */
            aload 5 /* locations */
            invokedynamic loadedScript(Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler;Ljava/lang/Object;IILjava/lang/String;JLcom/oracle/truffle/tools/utils/json/JSONArray;)Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler$LoadScriptListener;
              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/tools/chromeinspector/types/Script;)V
                  com/oracle/truffle/tools/chromeinspector/BreakpointsHandler.lambda$0(Ljava/lang/Object;IILjava/lang/String;JLcom/oracle/truffle/tools/utils/json/JSONArray;Lcom/oracle/truffle/tools/chromeinspector/types/Script;)V (7)
                  (Lcom/oracle/truffle/tools/chromeinspector/types/Script;)V
            astore 8 /* scriptListener */
        start local 8 // com.oracle.truffle.tools.chromeinspector.ScriptsHandler$LoadScriptListener scriptListener
         4: .line 106
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.scriptListeners:Ljava/util/Map;
            lload 6 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 8 /* scriptListener */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 87
            aload 9
            monitorexit
         6: goto 9
        end local 8 // com.oracle.truffle.tools.chromeinspector.ScriptsHandler$LoadScriptListener scriptListener
        end local 6 // long id
      StackMap locals: com.oracle.truffle.tools.chromeinspector.BreakpointsHandler java.lang.Object int int java.lang.String com.oracle.truffle.tools.utils.json.JSONArray top top top java.util.Map
      StackMap stack: java.lang.Throwable
         7: aload 9
            monitorexit
         8: athrow
        start local 6 // long id
        start local 8 // com.oracle.truffle.tools.chromeinspector.ScriptsHandler$LoadScriptListener scriptListener
         9: .line 108
      StackMap locals: com.oracle.truffle.tools.chromeinspector.BreakpointsHandler java.lang.Object int int java.lang.String com.oracle.truffle.tools.utils.json.JSONArray long com.oracle.truffle.tools.chromeinspector.ScriptsHandler$LoadScriptListener
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.slh:Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler;
            aload 8 /* scriptListener */
            invokevirtual com.oracle.truffle.tools.chromeinspector.ScriptsHandler.addLoadScriptListener:(Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler$LoadScriptListener;)V
        10: .line 109
            new com.oracle.truffle.tools.utils.json.JSONObject
            dup
            invokespecial com.oracle.truffle.tools.utils.json.JSONObject.<init>:()V
            astore 9 /* json */
        start local 9 // com.oracle.truffle.tools.utils.json.JSONObject json
        11: .line 110
            aload 9 /* json */
            ldc "breakpointId"
            lload 6 /* id */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
            pop
        12: .line 111
            aload 9 /* json */
            ldc "locations"
            aload 5 /* locations */
            invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
            pop
        13: .line 112
            new com.oracle.truffle.tools.chromeinspector.commands.Params
            dup
            aload 9 /* json */
            invokespecial com.oracle.truffle.tools.chromeinspector.commands.Params.<init>:(Lcom/oracle/truffle/tools/utils/json/JSONObject;)V
            areturn
        end local 9 // com.oracle.truffle.tools.utils.json.JSONObject json
        end local 8 // com.oracle.truffle.tools.chromeinspector.ScriptsHandler$LoadScriptListener scriptListener
        end local 6 // long id
        end local 5 // com.oracle.truffle.tools.utils.json.JSONArray locations
        end local 4 // java.lang.String condition
        end local 3 // int column
        end local 2 // int line
        end local 1 // java.lang.Object url
        end local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0            this  Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler;
            0   14     1             url  Ljava/lang/Object;
            0   14     2            line  I
            0   14     3          column  I
            0   14     4       condition  Ljava/lang/String;
            1   14     5       locations  Lcom/oracle/truffle/tools/utils/json/JSONArray;
            3    7     6              id  J
            9   14     6              id  J
            4    7     8  scriptListener  Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler$LoadScriptListener;
            9   14     8  scriptListener  Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler$LoadScriptListener;
           11   14     9            json  Lcom/oracle/truffle/tools/utils/json/JSONObject;
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any
    MethodParameters:
           Name  Flags
      url        
      line       
      column     
      condition  

  com.oracle.truffle.tools.chromeinspector.commands.Params createBreakpoint(com.oracle.truffle.tools.chromeinspector.types.Location, java.lang.String);
    descriptor: (Lcom/oracle/truffle/tools/chromeinspector/types/Location;Ljava/lang/String;)Lcom/oracle/truffle/tools/chromeinspector/commands/Params;
    flags: (0x0000) 
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
        start local 1 // com.oracle.truffle.tools.chromeinspector.types.Location location
        start local 2 // java.lang.String condition
         0: .line 116
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.slh:Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler;
            aload 1 /* location */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Location.getScriptId:()I
            invokevirtual com.oracle.truffle.tools.chromeinspector.ScriptsHandler.getScript:(I)Lcom/oracle/truffle/tools/chromeinspector/types/Script;
            astore 3 /* script */
        start local 3 // com.oracle.truffle.tools.chromeinspector.types.Script script
         1: .line 117
            aload 3 /* script */
            ifnonnull 3
         2: .line 118
            new com.oracle.truffle.tools.chromeinspector.server.CommandProcessException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No script with id '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* location */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Location.getScriptId:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.oracle.truffle.tools.chromeinspector.server.CommandProcessException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 120
      StackMap locals: com.oracle.truffle.tools.chromeinspector.types.Script
      StackMap stack:
            aload 3 /* script */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Script.getSource:()Lcom/oracle/truffle/api/source/Source;
            aload 1 /* location */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Location.getLine:()I
            aload 1 /* location */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Location.getColumn:()I
            invokestatic com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.createBuilder:(Lcom/oracle/truffle/api/source/Source;II)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.resolvedHandler:Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler$ResolvedHandler;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.resolveListener:(Lcom/oracle/truffle/api/debug/Breakpoint$ResolveListener;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 4 /* bp */
        start local 4 // com.oracle.truffle.api.debug.Breakpoint bp
         4: .line 121
            aload 2 /* condition */
            ifnull 6
            aload 2 /* condition */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 6
         5: .line 122
            aload 4 /* bp */
            aload 2 /* condition */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.setCondition:(Ljava/lang/String;)V
         6: .line 124
      StackMap locals: com.oracle.truffle.api.debug.Breakpoint
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.ds:Lcom/oracle/truffle/api/debug/DebuggerSession;
            aload 4 /* bp */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 4 /* bp */
         7: .line 125
            aload 1 /* location */
            astore 5 /* resolvedLocation */
        start local 5 // com.oracle.truffle.tools.chromeinspector.types.Location resolvedLocation
         8: .line 127
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.bpIDs:Ljava/util/Map;
            dup
            astore 8
            monitorenter
         9: .line 128
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.lastID:J
            lconst_1
            ladd
            dup2_x1
            putfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.lastID:J
            lstore 6 /* id */
        start local 6 // long id
        10: .line 129
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.bpIDs:Ljava/util/Map;
            aload 4 /* bp */
            lload 6 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 130
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.resolvedBreakpoints:Ljava/util/Map;
            aload 4 /* bp */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.source.SourceSection
            astore 9 /* section */
        start local 9 // com.oracle.truffle.api.source.SourceSection section
        12: .line 131
            aload 9 /* section */
            ifnull 14
        13: .line 132
            new com.oracle.truffle.tools.chromeinspector.types.Location
            dup
            aload 1 /* location */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Location.getScriptId:()I
            aload 9 /* section */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            aload 9 /* section */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartColumn:()I
            invokespecial com.oracle.truffle.tools.chromeinspector.types.Location.<init>:(III)V
            astore 5 /* resolvedLocation */
        end local 9 // com.oracle.truffle.api.source.SourceSection section
        14: .line 127
      StackMap locals: com.oracle.truffle.tools.chromeinspector.types.Location long java.util.Map
      StackMap stack:
            aload 8
            monitorexit
        15: goto 18
        end local 6 // long id
      StackMap locals: com.oracle.truffle.tools.chromeinspector.BreakpointsHandler com.oracle.truffle.tools.chromeinspector.types.Location java.lang.String com.oracle.truffle.tools.chromeinspector.types.Script com.oracle.truffle.api.debug.Breakpoint com.oracle.truffle.tools.chromeinspector.types.Location top top java.util.Map
      StackMap stack: java.lang.Throwable
        16: aload 8
            monitorexit
        17: athrow
        start local 6 // long id
        18: .line 135
      StackMap locals: com.oracle.truffle.tools.chromeinspector.BreakpointsHandler com.oracle.truffle.tools.chromeinspector.types.Location java.lang.String com.oracle.truffle.tools.chromeinspector.types.Script com.oracle.truffle.api.debug.Breakpoint com.oracle.truffle.tools.chromeinspector.types.Location long
      StackMap stack:
            new com.oracle.truffle.tools.utils.json.JSONObject
            dup
            invokespecial com.oracle.truffle.tools.utils.json.JSONObject.<init>:()V
            astore 8 /* json */
        start local 8 // com.oracle.truffle.tools.utils.json.JSONObject json
        19: .line 136
            aload 8 /* json */
            ldc "breakpointId"
            lload 6 /* id */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
            pop
        20: .line 137
            aload 8 /* json */
            ldc "actualLocation"
            aload 5 /* resolvedLocation */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Location.toJSON:()Lcom/oracle/truffle/tools/utils/json/JSONObject;
            invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
            pop
        21: .line 138
            new com.oracle.truffle.tools.chromeinspector.commands.Params
            dup
            aload 8 /* json */
            invokespecial com.oracle.truffle.tools.chromeinspector.commands.Params.<init>:(Lcom/oracle/truffle/tools/utils/json/JSONObject;)V
            areturn
        end local 8 // com.oracle.truffle.tools.utils.json.JSONObject json
        end local 6 // long id
        end local 5 // com.oracle.truffle.tools.chromeinspector.types.Location resolvedLocation
        end local 4 // com.oracle.truffle.api.debug.Breakpoint bp
        end local 3 // com.oracle.truffle.tools.chromeinspector.types.Script script
        end local 2 // java.lang.String condition
        end local 1 // com.oracle.truffle.tools.chromeinspector.types.Location location
        end local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler;
            0   22     1          location  Lcom/oracle/truffle/tools/chromeinspector/types/Location;
            0   22     2         condition  Ljava/lang/String;
            1   22     3            script  Lcom/oracle/truffle/tools/chromeinspector/types/Script;
            4   22     4                bp  Lcom/oracle/truffle/api/debug/Breakpoint;
            8   22     5  resolvedLocation  Lcom/oracle/truffle/tools/chromeinspector/types/Location;
           10   16     6                id  J
           18   22     6                id  J
           12   14     9           section  Lcom/oracle/truffle/api/source/SourceSection;
           19   22     8              json  Lcom/oracle/truffle/tools/utils/json/JSONObject;
      Exception table:
        from    to  target  type
           9    15      16  any
          16    17      16  any
    Exceptions:
      throws com.oracle.truffle.tools.chromeinspector.server.CommandProcessException
    MethodParameters:
           Name  Flags
      location   
      condition  

  boolean removeBreakpoint(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
        start local 1 // java.lang.String idStr
         0: .line 142
            iconst_0
            istore 2 /* bpRemoved */
        start local 2 // boolean bpRemoved
         1: .line 144
            aload 1 /* idStr */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 3 /* id */
        start local 3 // long id
         2: .line 145
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.bpIDs:Ljava/util/Map;
            dup
            astore 5
            monitorenter
         3: .line 146
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.bpIDs:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6 /* bpEntryIt */
        start local 6 // java.util.Iterator bpEntryIt
         4: .line 147
            goto 12
         5: .line 148
      StackMap locals: com.oracle.truffle.tools.chromeinspector.BreakpointsHandler java.lang.String int long java.util.Map java.util.Iterator
      StackMap stack:
            aload 6 /* bpEntryIt */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 7 /* bpEntry */
        start local 7 // java.util.Map$Entry bpEntry
         6: .line 149
            lload 3 /* id */
            aload 7 /* bpEntry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lcmp
            ifne 12
         7: .line 150
            aload 7 /* bpEntry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.Breakpoint
            astore 8 /* bp */
        start local 8 // com.oracle.truffle.api.debug.Breakpoint bp
         8: .line 151
            aload 8 /* bp */
            ifnull 10
         9: .line 152
            aload 8 /* bp */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.dispose:()V
        10: .line 154
      StackMap locals: java.util.Map$Entry com.oracle.truffle.api.debug.Breakpoint
      StackMap stack:
            aload 6 /* bpEntryIt */
            invokeinterface java.util.Iterator.remove:()V
        11: .line 155
            iconst_1
            istore 2 /* bpRemoved */
        end local 8 // com.oracle.truffle.api.debug.Breakpoint bp
        end local 7 // java.util.Map$Entry bpEntry
        12: .line 147
      StackMap locals:
      StackMap stack:
            aload 6 /* bpEntryIt */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        13: .line 158
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.scriptListeners:Ljava/util/Map;
            lload 3 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.tools.chromeinspector.ScriptsHandler$LoadScriptListener
            astore 7 /* scriptListener */
        start local 7 // com.oracle.truffle.tools.chromeinspector.ScriptsHandler$LoadScriptListener scriptListener
        14: .line 159
            aload 7 /* scriptListener */
            ifnull 17
        15: .line 160
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.slh:Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler;
            aload 7 /* scriptListener */
            invokevirtual com.oracle.truffle.tools.chromeinspector.ScriptsHandler.removeLoadScriptListener:(Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler$LoadScriptListener;)V
        16: .line 161
            iconst_1
            istore 2 /* bpRemoved */
        end local 7 // com.oracle.truffle.tools.chromeinspector.ScriptsHandler$LoadScriptListener scriptListener
        end local 6 // java.util.Iterator bpEntryIt
        17: .line 145
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        18: goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 5
            monitorexit
        20: athrow
        end local 3 // long id
        21: .line 164
      StackMap locals: com.oracle.truffle.tools.chromeinspector.BreakpointsHandler java.lang.String int
      StackMap stack: java.lang.NumberFormatException
            pop
        22: .line 166
      StackMap locals:
      StackMap stack:
            iload 2 /* bpRemoved */
            ireturn
        end local 2 // boolean bpRemoved
        end local 1 // java.lang.String idStr
        end local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0            this  Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler;
            0   23     1           idStr  Ljava/lang/String;
            1   23     2       bpRemoved  Z
            2   21     3              id  J
            4   17     6       bpEntryIt  Ljava/util/Iterator<Ljava/util/Map$Entry<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Long;>;>;
            6   12     7         bpEntry  Ljava/util/Map$Entry<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Long;>;
            8   12     8              bp  Lcom/oracle/truffle/api/debug/Breakpoint;
           14   17     7  scriptListener  Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler$LoadScriptListener;
      Exception table:
        from    to  target  type
           3    18      19  any
          19    20      19  any
           1    21      21  Class java.lang.NumberFormatException
    MethodParameters:
       Name  Flags
      idStr  

  void createOneShotBreakpoint(com.oracle.truffle.tools.chromeinspector.types.Location);
    descriptor: (Lcom/oracle/truffle/tools/chromeinspector/types/Location;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
        start local 1 // com.oracle.truffle.tools.chromeinspector.types.Location location
         0: .line 170
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.slh:Lcom/oracle/truffle/tools/chromeinspector/ScriptsHandler;
            aload 1 /* location */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Location.getScriptId:()I
            invokevirtual com.oracle.truffle.tools.chromeinspector.ScriptsHandler.getScript:(I)Lcom/oracle/truffle/tools/chromeinspector/types/Script;
            astore 2 /* script */
        start local 2 // com.oracle.truffle.tools.chromeinspector.types.Script script
         1: .line 171
            aload 2 /* script */
            ifnonnull 3
         2: .line 172
            new com.oracle.truffle.tools.chromeinspector.server.CommandProcessException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No script with id '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* location */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Location.getScriptId:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.oracle.truffle.tools.chromeinspector.server.CommandProcessException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 174
      StackMap locals: com.oracle.truffle.tools.chromeinspector.types.Script
      StackMap stack:
            aload 2 /* script */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Script.getSource:()Lcom/oracle/truffle/api/source/Source;
            aload 1 /* location */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Location.getLine:()I
            aload 1 /* location */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Location.getColumn:()I
            invokestatic com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.createBuilder:(Lcom/oracle/truffle/api/source/Source;II)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.oneShot:()Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 3 /* bp */
        start local 3 // com.oracle.truffle.api.debug.Breakpoint bp
         4: .line 175
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.ds:Lcom/oracle/truffle/api/debug/DebuggerSession;
            aload 3 /* bp */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         5: .line 176
            return
        end local 3 // com.oracle.truffle.api.debug.Breakpoint bp
        end local 2 // com.oracle.truffle.tools.chromeinspector.types.Script script
        end local 1 // com.oracle.truffle.tools.chromeinspector.types.Location location
        end local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler;
            0    6     1  location  Lcom/oracle/truffle/tools/chromeinspector/types/Location;
            1    6     2    script  Lcom/oracle/truffle/tools/chromeinspector/types/Script;
            4    6     3        bp  Lcom/oracle/truffle/api/debug/Breakpoint;
    Exceptions:
      throws com.oracle.truffle.tools.chromeinspector.server.CommandProcessException
    MethodParameters:
          Name  Flags
      location  

  void setExceptionBreakpoint(boolean, boolean);
    descriptor: (ZZ)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
        start local 1 // boolean caught
        start local 2 // boolean uncaught
         0: .line 179
            aconst_null
            astore 3 /* newBp */
        start local 3 // com.oracle.truffle.api.debug.Breakpoint newBp
         1: .line 180
            iload 1 /* caught */
            ifne 2
            iload 2 /* uncaught */
            ifeq 4
         2: .line 181
      StackMap locals: com.oracle.truffle.api.debug.Breakpoint
      StackMap stack:
            iload 1 /* caught */
            iload 2 /* uncaught */
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 3 /* newBp */
         3: .line 182
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.ds:Lcom/oracle/truffle/api/debug/DebuggerSession;
            aload 3 /* newBp */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         4: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.exceptionBreakpoint:Ljava/util/concurrent/atomic/AtomicReference;
            aload 3 /* newBp */
            invokevirtual java.util.concurrent.atomic.AtomicReference.getAndSet:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.Breakpoint
            astore 4 /* oldBp */
        start local 4 // com.oracle.truffle.api.debug.Breakpoint oldBp
         5: .line 185
            aload 4 /* oldBp */
            ifnull 7
         6: .line 186
            aload 4 /* oldBp */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.dispose:()V
         7: .line 188
      StackMap locals: com.oracle.truffle.api.debug.Breakpoint
      StackMap stack:
            return
        end local 4 // com.oracle.truffle.api.debug.Breakpoint oldBp
        end local 3 // com.oracle.truffle.api.debug.Breakpoint newBp
        end local 2 // boolean uncaught
        end local 1 // boolean caught
        end local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler;
            0    8     1    caught  Z
            0    8     2  uncaught  Z
            1    8     3     newBp  Lcom/oracle/truffle/api/debug/Breakpoint;
            5    8     4     oldBp  Lcom/oracle/truffle/api/debug/Breakpoint;
    MethodParameters:
          Name  Flags
      caught    
      uncaught  

  private static com.oracle.truffle.api.debug.Breakpoint$Builder createBuilder(com.oracle.truffle.api.source.Source, int, int);
    descriptor: (Lcom/oracle/truffle/api/source/Source;II)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.source.Source source
        start local 1 // int line
        start local 2 // int column
         0: .line 191
            aload 0 /* source */
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newBuilder:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            iload 1 /* line */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.lineIs:(I)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            astore 3 /* builder */
        start local 3 // com.oracle.truffle.api.debug.Breakpoint$Builder builder
         1: .line 192
            iload 2 /* column */
            ifle 3
         2: .line 193
            aload 3 /* builder */
            iload 2 /* column */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.columnIs:(I)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            pop
         3: .line 195
      StackMap locals: com.oracle.truffle.api.debug.Breakpoint$Builder
      StackMap stack:
            aload 3 /* builder */
            areturn
        end local 3 // com.oracle.truffle.api.debug.Breakpoint$Builder builder
        end local 2 // int column
        end local 1 // int line
        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     line  I
            0    4     2   column  I
            1    4     3  builder  Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
    MethodParameters:
        Name  Flags
      source  
      line    
      column  

  com.oracle.truffle.tools.chromeinspector.commands.Params createFunctionBreakpoint(com.oracle.truffle.api.debug.DebugValue, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/debug/DebugValue;Ljava/lang/String;)Lcom/oracle/truffle/tools/chromeinspector/commands/Params;
    flags: (0x0000) 
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
        start local 1 // com.oracle.truffle.api.debug.DebugValue functionValue
        start local 2 // java.lang.String condition
         0: .line 199
            aload 1 /* functionValue */
            invokevirtual com.oracle.truffle.api.debug.DebugValue.getSourceLocation:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 3 /* functionLocation */
        start local 3 // com.oracle.truffle.api.source.SourceSection functionLocation
         1: .line 201
            aload 3 /* functionLocation */
            ifnull 4
         2: .line 202
            aload 3 /* functionLocation */
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newBuilder:(Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            astore 4 /* builder */
        start local 4 // com.oracle.truffle.api.debug.Breakpoint$Builder builder
         3: .line 203
            goto 5
        end local 4 // com.oracle.truffle.api.debug.Breakpoint$Builder builder
         4: .line 204
      StackMap locals: com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            aconst_null
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newBuilder:(Ljava/net/URI;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            astore 4 /* builder */
        start local 4 // com.oracle.truffle.api.debug.Breakpoint$Builder builder
         5: .line 206
      StackMap locals: com.oracle.truffle.api.debug.Breakpoint$Builder
      StackMap stack:
            aload 4 /* builder */
            aload 1 /* functionValue */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.rootInstance:(Lcom/oracle/truffle/api/debug/DebugValue;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            pop
         6: .line 207
            aload 4 /* builder */
            iconst_1
            anewarray com.oracle.truffle.api.debug.SourceElement
            dup
            iconst_0
            getstatic com.oracle.truffle.api.debug.SourceElement.ROOT:Lcom/oracle/truffle/api/debug/SourceElement;
            aastore
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.sourceElements:([Lcom/oracle/truffle/api/debug/SourceElement;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            pop
         7: .line 208
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 5 /* bp */
        start local 5 // com.oracle.truffle.api.debug.Breakpoint bp
         8: .line 209
            aload 2 /* condition */
            ifnull 10
            aload 2 /* condition */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 10
         9: .line 210
            aload 5 /* bp */
            aload 2 /* condition */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.setCondition:(Ljava/lang/String;)V
        10: .line 212
      StackMap locals: com.oracle.truffle.api.debug.Breakpoint
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.ds:Lcom/oracle/truffle/api/debug/DebuggerSession;
            aload 5 /* bp */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
        11: .line 214
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.bpIDs:Ljava/util/Map;
            dup
            astore 8
            monitorenter
        12: .line 215
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.lastID:J
            lconst_1
            ladd
            dup2_x1
            putfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.lastID:J
            lstore 6 /* id */
        start local 6 // long id
        13: .line 216
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.bpIDs:Ljava/util/Map;
            aload 5 /* bp */
            lload 6 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 214
            aload 8
            monitorexit
        15: goto 18
        end local 6 // long id
      StackMap locals: com.oracle.truffle.tools.chromeinspector.BreakpointsHandler com.oracle.truffle.api.debug.DebugValue java.lang.String com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.debug.Breakpoint$Builder com.oracle.truffle.api.debug.Breakpoint top top java.util.Map
      StackMap stack: java.lang.Throwable
        16: aload 8
            monitorexit
        17: athrow
        start local 6 // long id
        18: .line 218
      StackMap locals: com.oracle.truffle.tools.chromeinspector.BreakpointsHandler com.oracle.truffle.api.debug.DebugValue java.lang.String com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.debug.Breakpoint$Builder com.oracle.truffle.api.debug.Breakpoint long
      StackMap stack:
            new com.oracle.truffle.tools.utils.json.JSONObject
            dup
            invokespecial com.oracle.truffle.tools.utils.json.JSONObject.<init>:()V
            astore 8 /* json */
        start local 8 // com.oracle.truffle.tools.utils.json.JSONObject json
        19: .line 219
            aload 8 /* json */
            ldc "breakpointId"
            lload 6 /* id */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
            pop
        20: .line 220
            new com.oracle.truffle.tools.chromeinspector.commands.Params
            dup
            aload 8 /* json */
            invokespecial com.oracle.truffle.tools.chromeinspector.commands.Params.<init>:(Lcom/oracle/truffle/tools/utils/json/JSONObject;)V
            areturn
        end local 8 // com.oracle.truffle.tools.utils.json.JSONObject json
        end local 6 // long id
        end local 5 // com.oracle.truffle.api.debug.Breakpoint bp
        end local 4 // com.oracle.truffle.api.debug.Breakpoint$Builder builder
        end local 3 // com.oracle.truffle.api.source.SourceSection functionLocation
        end local 2 // java.lang.String condition
        end local 1 // com.oracle.truffle.api.debug.DebugValue functionValue
        end local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0              this  Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler;
            0   21     1     functionValue  Lcom/oracle/truffle/api/debug/DebugValue;
            0   21     2         condition  Ljava/lang/String;
            1   21     3  functionLocation  Lcom/oracle/truffle/api/source/SourceSection;
            3    4     4           builder  Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            5   21     4           builder  Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            8   21     5                bp  Lcom/oracle/truffle/api/debug/Breakpoint;
           13   16     6                id  J
           18   21     6                id  J
           19   21     8              json  Lcom/oracle/truffle/tools/utils/json/JSONObject;
      Exception table:
        from    to  target  type
          12    15      16  any
          16    17      16  any
    MethodParameters:
               Name  Flags
      functionValue  
      condition      

  void removeFunctionBreakpoint(com.oracle.truffle.api.debug.DebugValue);
    descriptor: (Lcom/oracle/truffle/api/debug/DebugValue;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
        start local 1 // com.oracle.truffle.api.debug.DebugValue functionValue
         0: .line 224
            aload 1 /* functionValue */
            invokevirtual com.oracle.truffle.api.debug.DebugValue.getRootInstanceBreakpoints:()Ljava/util/List;
            astore 2 /* breakpoints */
        start local 2 // java.util.List breakpoints
         1: .line 225
            aload 2 /* breakpoints */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: com.oracle.truffle.tools.chromeinspector.BreakpointsHandler com.oracle.truffle.api.debug.DebugValue java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.Breakpoint
            astore 3 /* breakpoint */
        start local 3 // com.oracle.truffle.api.debug.Breakpoint breakpoint
         3: .line 226
            aload 0 /* this */
            aload 3 /* breakpoint */
            invokevirtual com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.getId:(Lcom/oracle/truffle/api/debug/Breakpoint;)Ljava/lang/String;
            astore 5 /* id */
        start local 5 // java.lang.String id
         4: .line 227
            aload 5 /* id */
            ifnull 6
         5: .line 228
            aload 0 /* this */
            aload 5 /* id */
            invokevirtual com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.removeBreakpoint:(Ljava/lang/String;)Z
            pop
        end local 5 // java.lang.String id
        end local 3 // com.oracle.truffle.api.debug.Breakpoint breakpoint
         6: .line 225
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 231
            return
        end local 2 // java.util.List breakpoints
        end local 1 // com.oracle.truffle.api.debug.DebugValue functionValue
        end local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler;
            0    8     1  functionValue  Lcom/oracle/truffle/api/debug/DebugValue;
            1    8     2    breakpoints  Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;
            3    6     3     breakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
            4    6     5             id  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      functionValue  

  private void lambda$0(java.lang.Object, int, int, java.lang.String, long, com.oracle.truffle.tools.utils.json.JSONArray, com.oracle.truffle.tools.chromeinspector.types.Script);
    descriptor: (Ljava/lang/Object;IILjava/lang/String;JLcom/oracle/truffle/tools/utils/json/JSONArray;Lcom/oracle/truffle/tools/chromeinspector/types/Script;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=13, args_size=8
        start local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
        start local 8 // com.oracle.truffle.tools.chromeinspector.types.Script script
         0: .line 90
            aload 1
            instanceof java.util.regex.Pattern
            ifeq 1
            aload 1
            checkcast java.util.regex.Pattern
            aload 8 /* script */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Script.getUrl:()Ljava/lang/String;
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 16
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1
            checkcast java.lang.String
            aload 8 /* script */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Script.getUrl:()Ljava/lang/String;
            invokestatic com.oracle.truffle.tools.chromeinspector.ScriptsHandler.compareURLs:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 16
         2: .line 91
      StackMap locals:
      StackMap stack:
            aload 8 /* script */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Script.getSource:()Lcom/oracle/truffle/api/source/Source;
            iload 2
            iload 3
            invokestatic com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.createBuilder:(Lcom/oracle/truffle/api/source/Source;II)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.resolvedHandler:Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler$ResolvedHandler;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.resolveListener:(Lcom/oracle/truffle/api/debug/Breakpoint$ResolveListener;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 9 /* bp */
        start local 9 // com.oracle.truffle.api.debug.Breakpoint bp
         3: .line 92
            aload 4
            ifnull 5
            aload 4
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 5
         4: .line 93
            aload 9 /* bp */
            aload 4
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.setCondition:(Ljava/lang/String;)V
         5: .line 95
      StackMap locals: com.oracle.truffle.api.debug.Breakpoint
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.ds:Lcom/oracle/truffle/api/debug/DebuggerSession;
            aload 9 /* bp */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 9 /* bp */
         6: .line 96
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.bpIDs:Ljava/util/Map;
            dup
            astore 10
            monitorenter
         7: .line 97
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.bpIDs:Ljava/util/Map;
            aload 9 /* bp */
            lload 5
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 98
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.BreakpointsHandler.resolvedBreakpoints:Ljava/util/Map;
            aload 9 /* bp */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.source.SourceSection
            astore 11 /* section */
        start local 11 // com.oracle.truffle.api.source.SourceSection section
         9: .line 99
            aload 11 /* section */
            ifnull 12
        10: .line 100
            new com.oracle.truffle.tools.chromeinspector.types.Location
            dup
            aload 8 /* script */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Script.getId:()I
            aload 11 /* section */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            aload 11 /* section */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartColumn:()I
            invokespecial com.oracle.truffle.tools.chromeinspector.types.Location.<init>:(III)V
            astore 12 /* resolvedLocation */
        start local 12 // com.oracle.truffle.tools.chromeinspector.types.Location resolvedLocation
        11: .line 101
            aload 7
            aload 12 /* resolvedLocation */
            invokevirtual com.oracle.truffle.tools.chromeinspector.types.Location.toJSON:()Lcom/oracle/truffle/tools/utils/json/JSONObject;
            invokevirtual com.oracle.truffle.tools.utils.json.JSONArray.put:(Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONArray;
            pop
        end local 12 // com.oracle.truffle.tools.chromeinspector.types.Location resolvedLocation
        end local 11 // com.oracle.truffle.api.source.SourceSection section
        12: .line 96
      StackMap locals: java.util.Map
      StackMap stack:
            aload 10
            monitorexit
        13: goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: aload 10
            monitorexit
        15: athrow
        end local 9 // com.oracle.truffle.api.debug.Breakpoint bp
        16: .line 105
      StackMap locals:
      StackMap stack:
            return
        end local 8 // com.oracle.truffle.tools.chromeinspector.types.Script script
        end local 0 // com.oracle.truffle.tools.chromeinspector.BreakpointsHandler this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lcom/oracle/truffle/tools/chromeinspector/BreakpointsHandler;
            0   17     8            script  Lcom/oracle/truffle/tools/chromeinspector/types/Script;
            3   16     9                bp  Lcom/oracle/truffle/api/debug/Breakpoint;
            9   12    11           section  Lcom/oracle/truffle/api/source/SourceSection;
           11   12    12  resolvedLocation  Lcom/oracle/truffle/tools/chromeinspector/types/Location;
      Exception table:
        from    to  target  type
           7    13      14  any
          14    15      14  any
}
SourceFile: "BreakpointsHandler.java"
NestMembers:
  com.oracle.truffle.tools.chromeinspector.BreakpointsHandler$ResolvedHandler
InnerClasses:
  public final Builder = com.oracle.truffle.api.debug.Breakpoint$Builder of com.oracle.truffle.api.debug.Breakpoint
  public final ExceptionBuilder = com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder of com.oracle.truffle.api.debug.Breakpoint
  public abstract ResolveListener = com.oracle.truffle.api.debug.Breakpoint$ResolveListener of com.oracle.truffle.api.debug.Breakpoint
  private final ResolvedHandler = com.oracle.truffle.tools.chromeinspector.BreakpointsHandler$ResolvedHandler of com.oracle.truffle.tools.chromeinspector.BreakpointsHandler
  abstract LoadScriptListener = com.oracle.truffle.tools.chromeinspector.ScriptsHandler$LoadScriptListener of com.oracle.truffle.tools.chromeinspector.ScriptsHandler
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map