Skip to content

Instantly share code, notes, and snippets.

@525c1e21-bd67-4735-ac99-b4b0e5262290
Created September 24, 2013 13:57
Show Gist options
  • Save 525c1e21-bd67-4735-ac99-b4b0e5262290/6685153 to your computer and use it in GitHub Desktop.
Save 525c1e21-bd67-4735-ac99-b4b0e5262290/6685153 to your computer and use it in GitHub Desktop.
requirebin sketch
var _ = require('underscore');
_.throttle2 = function(func, wait, options) {
var context, args, result;
var timeout = null;
var previous = 0;
options || (options = {});
var later = function() {
previous = options.leading === false ? 0 : Date.now();
timeout = null;
result = func.apply(context, args);
};
return function() {
var now = Date.now();
if (!previous && options.leading === false) previous = now;
var remaining = wait - (now - previous);
context = this;
args = arguments;
if (remaining <= 0) {
clearTimeout(timeout);
timeout = null;
previous = now;
result = func.apply(context, args);
} else if (!timeout && options.trailing !== false) {
timeout = setTimeout(later, remaining);
}
return result;
};
};
var throttled = _.throttle2(function() {
var foo = Math.random();
}, 333);
var i;
var tick = function tick(time) {
for (i = 0; i<=1000; i++) {
throttled();
}
requestAnimationFrame(tick);
};
requestAnimationFrame(tick);
require=function(n,t,r){function e(r,i){if(!t[r]){if(!n[r]){var a="function"==typeof require&&require;if(!i&&a)return a(r,!0);if(u)return u(r,!0);throw Error("Cannot find module '"+r+"'")}var o=t[r]={exports:{}};n[r][0].call(o.exports,function(t){var u=n[r][1][t];return e(u?u:t)},o,o.exports)}return t[r].exports}for(var u="function"==typeof require&&require,i=0;r.length>i;i++)e(r[i]);return e}({underscore:[function(n,t){t.exports=n("zvrEHq")},{}],zvrEHq:[function(n,t,r){(function(){(function(){var n=this,e=n._,u={},i=Array.prototype,a=Object.prototype,o=Function.prototype,c=i.push,l=i.slice,f=i.concat,s=a.toString,p=a.hasOwnProperty,v=i.forEach,h=i.map,g=i.reduce,d=i.reduceRight,m=i.filter,y=i.every,b=i.some,x=i.indexOf,_=i.lastIndexOf,w=Array.isArray,j=Object.keys,A=o.bind,E=function(n){return n instanceof E?n:this instanceof E?(this._wrapped=n,void 0):new E(n)};r!==void 0?(t!==void 0&&t.exports&&(r=t.exports=E),r._=E):n._=E,E.VERSION="1.5.2";var k=E.each=E.forEach=function(n,t,r){if(null!=n)if(v&&n.forEach===v)n.forEach(t,r);else if(n.length===+n.length){for(var e=0,i=n.length;i>e;e++)if(t.call(r,n[e],e,n)===u)return}else for(var a=E.keys(n),e=0,i=a.length;i>e;e++)if(t.call(r,n[a[e]],a[e],n)===u)return};E.map=E.collect=function(n,t,r){var e=[];return null==n?e:h&&n.map===h?n.map(t,r):(k(n,function(n,u,i){e.push(t.call(r,n,u,i))}),e)};var O="Reduce of empty array with no initial value";E.reduce=E.foldl=E.inject=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),g&&n.reduce===g)return e&&(t=E.bind(t,e)),u?n.reduce(t,r):n.reduce(t);if(k(n,function(n,i,a){u?r=t.call(e,r,n,i,a):(r=n,u=!0)}),!u)throw new TypeError(O);return r},E.reduceRight=E.foldr=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),d&&n.reduceRight===d)return e&&(t=E.bind(t,e)),u?n.reduceRight(t,r):n.reduceRight(t);var i=n.length;if(i!==+i){var a=E.keys(n);i=a.length}if(k(n,function(o,c,l){c=a?a[--i]:--i,u?r=t.call(e,r,n[c],c,l):(r=n[c],u=!0)}),!u)throw new TypeError(O);return r},E.find=E.detect=function(n,t,r){var e;return q(n,function(n,u,i){return t.call(r,n,u,i)?(e=n,!0):void 0}),e},E.filter=E.select=function(n,t,r){var e=[];return null==n?e:m&&n.filter===m?n.filter(t,r):(k(n,function(n,u,i){t.call(r,n,u,i)&&e.push(n)}),e)},E.reject=function(n,t,r){return E.filter(n,function(n,e,u){return!t.call(r,n,e,u)},r)},E.every=E.all=function(n,t,r){t||(t=E.identity);var e=!0;return null==n?e:y&&n.every===y?n.every(t,r):(k(n,function(n,i,a){return(e=e&&t.call(r,n,i,a))?void 0:u}),!!e)};var q=E.some=E.any=function(n,t,r){t||(t=E.identity);var e=!1;return null==n?e:b&&n.some===b?n.some(t,r):(k(n,function(n,i,a){return e||(e=t.call(r,n,i,a))?u:void 0}),!!e)};E.contains=E.include=function(n,t){return null==n?!1:x&&n.indexOf===x?-1!=n.indexOf(t):q(n,function(n){return n===t})},E.invoke=function(n,t){var r=l.call(arguments,2),e=E.isFunction(t);return E.map(n,function(n){return(e?t:n[t]).apply(n,r)})},E.pluck=function(n,t){return E.map(n,function(n){return n[t]})},E.where=function(n,t,r){return E.isEmpty(t)?r?void 0:[]:E[r?"find":"filter"](n,function(n){for(var r in t)if(t[r]!==n[r])return!1;return!0})},E.findWhere=function(n,t){return E.where(n,t,!0)},E.max=function(n,t,r){if(!t&&E.isArray(n)&&n[0]===+n[0]&&65535>n.length)return Math.max.apply(Math,n);if(!t&&E.isEmpty(n))return-1/0;var e={computed:-1/0,value:-1/0};return k(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;a>e.computed&&(e={value:n,computed:a})}),e.value},E.min=function(n,t,r){if(!t&&E.isArray(n)&&n[0]===+n[0]&&65535>n.length)return Math.min.apply(Math,n);if(!t&&E.isEmpty(n))return 1/0;var e={computed:1/0,value:1/0};return k(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;e.computed>a&&(e={value:n,computed:a})}),e.value},E.shuffle=function(n){var t,r=0,e=[];return k(n,function(n){t=E.random(r++),e[r-1]=e[t],e[t]=n}),e},E.sample=function(n,t,r){return 2>arguments.length||r?n[E.random(n.length-1)]:E.shuffle(n).slice(0,Math.max(0,t))};var F=function(n){return E.isFunction(n)?n:function(t){return t[n]}};E.sortBy=function(n,t,r){var e=F(t);return E.pluck(E.map(n,function(n,t,u){return{value:n,index:t,criteria:e.call(r,n,t,u)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||void 0===r)return 1;if(e>r||void 0===e)return-1}return n.index-t.index}),"value")};var M=function(n){return function(t,r,e){var u={},i=null==r?E.identity:F(r);return k(t,function(r,a){var o=i.call(e,r,a,t);n(u,o,r)}),u}};E.groupBy=M(function(n,t,r){(E.has(n,t)?n[t]:n[t]=[]).push(r)}),E.indexBy=M(function(n,t,r){n[t]=r}),E.countBy=M(function(n,t){E.has(n,t)?n[t]++:n[t]=1}),E.sortedIndex=function(n,t,r,e){r=null==r?E.identity:F(r);for(var u=r.call(e,t),i=0,a=n.length;a>i;){var o=i+a>>>1;u>r.call(e,n[o])?i=o+1:a=o}return i},E.toArray=function(n){return n?E.isArray(n)?l.call(n):n.length===+n.length?E.map(n,E.identity):E.values(n):[]},E.size=function(n){return null==n?0:n.length===+n.length?n.length:E.keys(n).length},E.first=E.head=E.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:l.call(n,0,t)},E.initial=function(n,t,r){return l.call(n,0,n.length-(null==t||r?1:t))},E.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:l.call(n,Math.max(n.length-t,0))},E.rest=E.tail=E.drop=function(n,t,r){return l.call(n,null==t||r?1:t)},E.compact=function(n){return E.filter(n,E.identity)};var R=function(n,t,r){return t&&E.every(n,E.isArray)?f.apply(r,n):(k(n,function(n){E.isArray(n)||E.isArguments(n)?t?c.apply(r,n):R(n,t,r):r.push(n)}),r)};E.flatten=function(n,t){return R(n,t,[])},E.without=function(n){return E.difference(n,l.call(arguments,1))},E.uniq=E.unique=function(n,t,r,e){E.isFunction(t)&&(e=r,r=t,t=!1);var u=r?E.map(n,r,e):n,i=[],a=[];return k(u,function(r,e){(t?e&&a[a.length-1]===r:E.contains(a,r))||(a.push(r),i.push(n[e]))}),i},E.union=function(){return E.uniq(E.flatten(arguments,!0))},E.intersection=function(n){var t=l.call(arguments,1);return E.filter(E.uniq(n),function(n){return E.every(t,function(t){return E.indexOf(t,n)>=0})})},E.difference=function(n){var t=f.apply(i,l.call(arguments,1));return E.filter(n,function(n){return!E.contains(t,n)})},E.zip=function(){for(var n=E.max(E.pluck(arguments,"length").concat(0)),t=Array(n),r=0;n>r;r++)t[r]=E.pluck(arguments,""+r);return t},E.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},E.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=E.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}if(x&&n.indexOf===x)return n.indexOf(t,r);for(;u>e;e++)if(n[e]===t)return e;return-1},E.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=null!=r;if(_&&n.lastIndexOf===_)return e?n.lastIndexOf(t,r):n.lastIndexOf(t);for(var u=e?r:n.length;u--;)if(n[u]===t)return u;return-1},E.range=function(n,t,r){1>=arguments.length&&(t=n||0,n=0),r=arguments[2]||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=0,i=Array(e);e>u;)i[u++]=n,n+=r;return i};var T=function(){};E.bind=function(n,t){var r,e;if(A&&n.bind===A)return A.apply(n,l.call(arguments,1));if(!E.isFunction(n))throw new TypeError;return r=l.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(l.call(arguments)));T.prototype=n.prototype;var u=new T;T.prototype=null;var i=n.apply(u,r.concat(l.call(arguments)));return Object(i)===i?i:u}},E.partial=function(n){var t=l.call(arguments,1);return function(){return n.apply(this,t.concat(l.call(arguments)))}},E.bindAll=function(n){var t=l.call(arguments,1);if(0===t.length)throw Error("bindAll must be passed function names");return k(t,function(t){n[t]=E.bind(n[t],n)}),n},E.memoize=function(n,t){var r={};return t||(t=E.identity),function(){var e=t.apply(this,arguments);return E.has(r,e)?r[e]:r[e]=n.apply(this,arguments)}},E.delay=function(n,t){var r=l.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},E.defer=function(n){return E.delay.apply(E,[n,1].concat(l.call(arguments,1)))},E.throttle=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var c=function(){o=r.leading===!1?0:new Date,a=null,i=n.apply(e,u)};return function(){var l=new Date;o||r.leading!==!1||(o=l);var f=t-(l-o);return e=this,u=arguments,0>=f?(clearTimeout(a),a=null,o=l,i=n.apply(e,u)):a||r.trailing===!1||(a=setTimeout(c,f)),i}},E.debounce=function(n,t,r){var e,u,i,a,o;return function(){i=this,u=arguments,a=new Date;var c=function(){var l=new Date-a;t>l?e=setTimeout(c,t-l):(e=null,r||(o=n.apply(i,u)))},l=r&&!e;return e||(e=setTimeout(c,t)),l&&(o=n.apply(i,u)),o}},E.once=function(n){var t,r=!1;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},E.wrap=function(n,t){return function(){var r=[n];return c.apply(r,arguments),t.apply(this,r)}},E.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length-1;r>=0;r--)t=[n[r].apply(this,t)];return t[0]}},E.after=function(n,t){return function(){return 1>--n?t.apply(this,arguments):void 0}},E.keys=j||function(n){if(n!==Object(n))throw new TypeError("Invalid object");var t=[];for(var r in n)E.has(n,r)&&t.push(r);return t},E.values=function(n){for(var t=E.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},E.pairs=function(n){for(var t=E.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},E.invert=function(n){for(var t={},r=E.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},E.functions=E.methods=function(n){var t=[];for(var r in n)E.isFunction(n[r])&&t.push(r);return t.sort()},E.extend=function(n){return k(l.call(arguments,1),function(t){if(t)for(var r in t)n[r]=t[r]}),n},E.pick=function(n){var t={},r=f.apply(i,l.call(arguments,1));return k(r,function(r){r in n&&(t[r]=n[r])}),t},E.omit=function(n){var t={},r=f.apply(i,l.call(arguments,1));for(var e in n)E.contains(r,e)||(t[e]=n[e]);return t},E.defaults=function(n){return k(l.call(arguments,1),function(t){if(t)for(var r in t)void 0===n[r]&&(n[r]=t[r])}),n},E.clone=function(n){return E.isObject(n)?E.isArray(n)?n.slice():E.extend({},n):n},E.tap=function(n,t){return t(n),n};var I=function(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;if(null==n||null==t)return n===t;n instanceof E&&(n=n._wrapped),t instanceof E&&(t=t._wrapped);var u=s.call(n);if(u!=s.call(t))return!1;switch(u){case"[object String]":return n==t+"";case"[object Number]":return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case"[object Date]":case"[object Boolean]":return+n==+t;case"[object RegExp]":return n.source==t.source&&n.global==t.global&&n.multiline==t.multiline&&n.ignoreCase==t.ignoreCase}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]==n)return e[i]==t;var a=n.constructor,o=t.constructor;if(a!==o&&!(E.isFunction(a)&&a instanceof a&&E.isFunction(o)&&o instanceof o))return!1;r.push(n),e.push(t);var c=0,l=!0;if("[object Array]"==u){if(c=n.length,l=c==t.length)for(;c--&&(l=I(n[c],t[c],r,e)););}else{for(var f in n)if(E.has(n,f)&&(c++,!(l=E.has(t,f)&&I(n[f],t[f],r,e))))break;if(l){for(f in t)if(E.has(t,f)&&!c--)break;l=!c}}return r.pop(),e.pop(),l};E.isEqual=function(n,t){return I(n,t,[],[])},E.isEmpty=function(n){if(null==n)return!0;if(E.isArray(n)||E.isString(n))return 0===n.length;for(var t in n)if(E.has(n,t))return!1;return!0},E.isElement=function(n){return!(!n||1!==n.nodeType)},E.isArray=w||function(n){return"[object Array]"==s.call(n)},E.isObject=function(n){return n===Object(n)},k(["Arguments","Function","String","Number","Date","RegExp"],function(n){E["is"+n]=function(t){return s.call(t)=="[object "+n+"]"}}),E.isArguments(arguments)||(E.isArguments=function(n){return!(!n||!E.has(n,"callee"))}),E.isFunction=function(n){return"function"==typeof n},E.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},E.isNaN=function(n){return E.isNumber(n)&&n!=+n},E.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"==s.call(n)},E.isNull=function(n){return null===n},E.isUndefined=function(n){return void 0===n},E.has=function(n,t){return p.call(n,t)},E.noConflict=function(){return n._=e,this},E.identity=function(n){return n},E.times=function(n,t,r){for(var e=Array(Math.max(0,n)),u=0;n>u;u++)e[u]=t.call(r,u);return e},E.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))};var S={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"}};S.unescape=E.invert(S.escape);var N={escape:RegExp("["+E.keys(S.escape).join("")+"]","g"),unescape:RegExp("("+E.keys(S.unescape).join("|")+")","g")};E.each(["escape","unescape"],function(n){E[n]=function(t){return null==t?"":(""+t).replace(N[n],function(t){return S[n][t]})}}),E.result=function(n,t){if(null==n)return void 0;var r=n[t];return E.isFunction(r)?r.call(n):r},E.mixin=function(n){k(E.functions(n),function(t){var r=E[t]=n[t];E.prototype[t]=function(){var n=[this._wrapped];return c.apply(n,arguments),H.call(this,r.apply(E,n))}})};var D=0;E.uniqueId=function(n){var t=++D+"";return n?n+t:t},E.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var B=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},C=/\\|'|\r|\n|\t|\u2028|\u2029/g;E.template=function(n,t,r){var e;r=E.defaults({},r,E.templateSettings);var u=RegExp([(r.escape||B).source,(r.interpolate||B).source,(r.evaluate||B).source].join("|")+"|$","g"),i=0,a="__p+='";n.replace(u,function(t,r,e,u,o){return a+=n.slice(i,o).replace(C,function(n){return"\\"+z[n]}),r&&(a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'"),e&&(a+="'+\n((__t=("+e+"))==null?'':__t)+\n'"),u&&(a+="';\n"+u+"\n__p+='"),i=o+t.length,t}),a+="';\n",r.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{e=Function(r.variable||"obj","_",a)}catch(o){throw o.source=a,o}if(t)return e(t,E);var c=function(n){return e.call(this,n,E)};return c.source="function("+(r.variable||"obj")+"){\n"+a+"}",c},E.chain=function(n){return E(n).chain()};var H=function(n){return this._chain?E(n).chain():n};E.mixin(E),k(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=i[n];E.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!=n&&"splice"!=n||0!==r.length||delete r[0],H.call(this,r)}}),k(["concat","join","slice"],function(n){var t=i[n];E.prototype[n]=function(){return H.call(this,t.apply(this._wrapped,arguments))}}),E.extend(E.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}).call(this)})()},{}]},{},[]);var _=require("underscore");_.throttle2=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var c=function(){o=r.leading===!1?0:Date.now(),a=null,i=n.apply(e,u)};return function(){var l=Date.now();o||r.leading!==!1||(o=l);var f=t-(l-o);return e=this,u=arguments,0>=f?(clearTimeout(a),a=null,o=l,i=n.apply(e,u)):a||r.trailing===!1||(a=setTimeout(c,f)),i}};var throttled=_.throttle2(function(){Math.random()},333),i,tick=function tick(){for(i=0;1e3>=i;i++)throttled();requestAnimationFrame(tick)};requestAnimationFrame(tick);
<style type='text/css'>html, body { margin: 0; padding: 0; border: 0; }
body, html { height: 100%; width: 100%; }</style>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment