 
   constructor: (@doc) ->
     @root = @doc.domNode
-    @range = new Range(0, 0)
+    @lastRange = @savedRange = new Range(1, 1)  # savedRange is never null
     ['keyup', 'mouseup', 'mouseleave', 'touchend', 'touchleave'].forEach((eventName) =>
       @root.addEventListener(eventName, =>
         this.update()  # Do not pass event handler params

      # setRange(null) will fail to blur in IE10/11 on Travis+SauceLabs (but not local VMs)
      document.body.focus() if dom.isIE(11) and !dom.isIE(9)

  setRange: (range, source) ->
    convert = (index) =>
      pos = @doc.findPath(index).pop() # TODO inclusive
      if pos.blot instanceof Parchment.Embed

  focus: ->
    return if this.checkFocus()
    @root.focus()
    this.setRange(@savedRange)

  getBounds: (index) ->
    pos = @doc.findPath(index).pop()
