whole_func_string: function() {
        var proxy = this, app = this.app;
        $(window).bind('hashchange.' + this.app.eventNamespace(), function(e, non_native) {
          // if we receive a native hash change event, set the proxy accordingly
          // and stop polling
          if (proxy.is_native === false && !non_native) {
            Sammy.log('native hash change exists, using');
            proxy.is_native = true;
            window.clearInterval(Sammy.HashLocationProxy._interval);
          }
          app.trigger('location-changed');
        });
        if (!Sammy.HashLocationProxy._bindings) {
          Sammy.HashLocationProxy._bindings = 0;
        }
        Sammy.HashLocationProxy._bindings++;
      }
func_code_string: function() {
        var proxy = this, app = this.app;
        $(window).bind('hashchange.' + this.app.eventNamespace(), function(e, non_native) {
          // if we receive a native hash change event, set the proxy accordingly
          // and stop polling
          if (proxy.is_native === false && !non_native) {
            Sammy.log('native hash change exists, using');
            proxy.is_native = true;
            window.clearInterval(Sammy.HashLocationProxy._interval);
          }
          app.trigger('location-changed');
        });
        if (!Sammy.HashLocationProxy._bindings) {
          Sammy.HashLocationProxy._bindings = 0;
        }
        Sammy.HashLocationProxy._bindings++;
      }
func_documentation_string: bind the proxy events to the current app.