function hit(x1, y1, x2, y2) {
    return Math.abs(x1 - x2) < CLICKBUSTER_THRESHOLD && Math.abs(y1 - y2) < CLICKBUSTER_THRESHOLD;
  }
@ngdoc directive
@name ngClick

@description
A more powerful replacement for the default ngClick designed to be used on touchscreen
devices. Most mobile browsers wait about 300ms after a tap-and-release before sending
the click event. This version handles them immediately, and then prevents the
following click event from propagating.

Requires the {@link ngTouch `ngTouch`} module to be installed.

This directive can fall back to using an ordinary click event, and so works on desktop
browsers as well as mobile.

This directive also sets the CSS class `ng-click-active` while the element is being held
down (by a mouse click or touch) so you can restyle the depressed element if you wish.

@element ANY
@param {expression} ngClick {@link guide/expression Expression} to evaluate
upon tap. (Event object is available as `$event`)

@example
    <example module="ngClickExample" deps="angular-touch.js">
      <file name="index.html">
        <button ng-click="count = count + 1" ng-init="count=0">
          Increment
        </button>
        count: {{ count }}
      </file>
      <file name="script.js">
        angular.module('ngClickExample', ['ngTouch']);
      </file>
    </example>