1 2 3 function newVarName(prefix){ 4 var rplc="";var pf=typeof(prefix)=="string" && prefix.length>0?prefix+"_":"untyped_"; 5 this.nameisfree=false;var cntr=0; 6 var format = function(val,len){ var rst=""+val;for(var i=rst.length;i<len;i++)rst="0"+rst;return rst; }; 7 while(!this.nameisfree){ 8 rplc=pf+format(cntr++,10); 9 eval("this.nameisfree=typeof("+rplc+")==\"undefined\";"); 10 } 11 return rplc; 12 }; 13 14 window.requestAnimFrame = (function(){ 15 return window.requestAnimationFrame || 16 window.webkitRequestAnimationFrame || 17 window.mozRequestAnimationFrame || 18 window.oRequestAnimationFrame || 19 window.msRequestAnimationFrame || 20 function( callback ){window.setTimeout(callback, 1000 / 60);}; 21 })(); 22 23 // --------------------------- Arrays [ ----------------------- 24 /*var YAbstractArray = function(){ 25 this.array = []; 26 this.build = function(){ 27 var xlist = {'concat':1,'join':1,'pop':0,'push':1,'reverse':0,'shift':0,'slice':2,'unshift':1}; 28 for(var i in xlist){ 29 var argarr = []; 30 for(var j=0;j<xlist[i];j++)argarr.push('arguments['+j+']'); 31 var evst = "this[i] = function(){ return this.array."+i+"("+argarr.join(',')+"); };"; 32 eval(evst); 33 } 34 }; 35 this.length = function(){ return this.array.length;}; 36 this.get = function(index ){ return this.array[index];}; 37 this.build(); 38 };*/ 39 40 // --------------------------- ] Arrays ----------------------- 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61