class DEBUGGER__::ISeqBreakpoint

def enable

def enable
  @tp.enable(target: @iseq)
end

def initialize iseq, events, oneshot: false

def initialize iseq, events, oneshot: false
  @events = events
  @iseq = iseq
  @oneshot = oneshot
  @key = [:iseq, @iseq.path, @iseq.first_lineno].freeze
  super(nil, nil, nil)
end

def setup

def setup
  @tp = TracePoint.new(*@events) do |tp|
    delete if @oneshot
    suspend
  end
end