function throttle(fn, time) {
			var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;

			var func = fn.bind(context);
			var timeout = -1;
			return rename(function () {
				for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
					args[_key7] = arguments[_key7];
				}

				clearTimeout(timeout);
				timeout = setTimeout(function () {
					func.apply(undefined, args);
				}, time);
			}, fn.name);
		}
/**
   * Delayes the execution of a function. You call it with the normal arguments you would. If you don't wait until the timout expires, this also works as a debounce method.
   * @param {Function} fn The function to throttle.
   * @param {number} time The delay to execute the function after.
   * @param {Object} [context=null] What context to execute under.
   * @returns {Function} The throttled function.
   * @memberof XtraUtils.Function.
   */
Delayes the execution of a function. You call it with the normal arguments you would. If you don't wait until the timout expires, this also works as a debounce method.
@param {Function} fn The function to throttle.
@param {number} time The delay to execute the function after.
@param {Object} [context=null] What context to execute under.
@returns {Function} The throttled function.
Delayes the execution of a function . You call it with the normal arguments you would . If you don ' t wait until the timout expires this also works as a debounce method . @param { Function } fn The function to throttle . @param { number } time The delay to execute the function after . @param { Object } [ context = null ] What context to execute under . @returns { Function } The throttled function .
function throttle(fn, time) {
			var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
			var func = fn.bind(context);
			var timeout = -1;
			return rename(function () {
				for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
					args[_key7] = arguments[_key7];
				}
				clearTimeout(timeout);
				timeout = setTimeout(function () {
					func.apply(undefined, args);
				}, time);
			}, fn.name);
		}
function throttle ( fn , time ) { var context = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : null ; var func = fn . bind ( context ) ; var timeout = - 1 ; return rename ( function ( ) { for ( var _len7 = arguments . length , args = Array ( _len7 ) , _key7 = 0 ; _key7 < _len7 ; _key7 ++ ) { args [ _key7 ] = arguments [ _key7 ] ; } clearTimeout ( timeout ) ; timeout = setTimeout ( function ( ) { func . apply ( undefined , args ) ; } , time ) ; } , fn . name ) ; }
Delayes the execution of a function.
Delayes the execution of a function .