         # Make sure destroying all temporal selection BEFORE starting to set cursors to final position.
         # This is important to avoid destroy-order dependent bugs.
         for selection in @editor.getSelections() when mutation = @mutationsBySelection.get(selection)
-          unless mutation.isCreatedAt('will-select')
+          if mutation.createdAt isnt 'will-select'
             selection.destroy()
 
       for selection in @editor.getSelections() when mutation = @mutationsBySelection.get(selection)

  getSelectedBufferRangesForCheckpoint: (checkpoint) ->
    ranges = []
    @mutationsBySelection.forEach (mutation) ->
      if range = mutation.getBufferRangeForCheckpoint(checkpoint)
        ranges.push(range)
    ranges


    point = Point.max(start, end.translate([0, -1]))
    @selection.editor.clipBufferPosition(point)

  getInitialPoint: (wise) ->
    point = @initialPointMarker?.getHeadBufferPosition() ? @initialPoint
    if not @bufferRangeByCheckpoint['did-select']?.isEqual(@marker.getBufferRange())
      if wise is 'linewise'
        Point.min([@getEndBufferPosition().row, point.column], point)
      else
