     s
 
   get_raw_hash: ->
-
-    ###
     # Firefox doesn't handle window.location.hash correctly; it decodes the contents,
     # where all other browsers give us the correct data.  http://stackoverflow.com/questions/1703552
-    ###
-
     pre_hash_part = window.location.href.split('#', 1)[0]
     window.location.href.substr pre_hash_part.length
 

    @fire_observers old_hash, new_hash
    return

  ###
  # Parse a hash, returning a Hash.
  #
  # #a/b?c=d&e=f -> {"": 'a/b', c: 'd', e: 'f'}
  ###

  parse: (hash) ->
    if !hash?
      hash = ''

    @current_hash = @parse(@get_raw_hash())
    @normalize @current_hash

    # The last value received by the hashchange event:
    @last_hashchange = @current_hash.clone()
    @hashchange_event = @hashchange_event.bindAsEventListener(this)
    Element.observe window, 'hashchange', @hashchange_event
