   ###
 
   createBreakpointElement = -> $('<div class="breakpoint">●</div>')[0]
-  breakpoints = {}
+  breakpoints = []
   cm.on 'gutterClick', (cm, l) ->
-    if breakpoints[l] then delete breakpoints[l]; cm.setGutterMarker l, 'breakpoints', null
-    else breakpoints[l] = 1; cm.setGutterMarker l, 'breakpoints', createBreakpointElement()
+    if breakpoints.indexOf(l) >= 0 then breakpoints.splice l, 1; cm.setGutterMarker l, 'breakpoints', null
+    else breakpoints.push l; cm.setGutterMarker l, 'breakpoints', createBreakpointElement()
     return
 
   $tb = $ '.toolbar', $e


  updateSize: -> cm.setSize $e.width(), $e.parent().height() - $e.position().top - 28
  open: (ee) ->
    originalValue = ee.text; cm.setValue ee.text; cm.focus()
    line = ee.currentRow; col = ee.currentColumn || 0
    if line == col == 0 && ee.text.indexOf('\n') < 0 then col = ee.text.length
    cm.setCursor line, col; cm.scrollIntoView null, $e.height() / 2
    for l in ee.lineAttributes?.stop then cm.setGutterMarker l, 'breakpoints', createBreakpointElement()
    if opener then $('title').text ee.name
    return
  hasFocus: -> cm.hasFocus()

    false

  originalValue = null # remember it so that on <esc> we can detect if anything changed
  originalBreakpoints = '' # comma-separated string

  hll = null # currently highlighted line

  highlight = (l) ->
