Devel-NYTProf
view release on metacpan or search on metacpan
lib/Devel/NYTProf/js/jit/jit.js view on Meta::CPAN
function $lambda(value){
return (typeof value == 'function') ? value : function(){
return value;
};
};
var $time = Date.now || function(){
return +new Date;
};
function $splat(obj){
var type = $type(obj);
return (type) ? ((type != 'array') ? [obj] : obj) : [];
};
var $type = function(elem) {
return $type.s.call(elem).match(/^\[object\s(.*)\]$/)[1].toLowerCase();
};
$type.s = Object.prototype.toString;
function $each(iterable, fn){
var type = $type(iterable);
if(type == 'object') {
for (var key in iterable) fn(iterable[key], key);
} else {
for(var i=0; i < iterable.length; i++) fn(iterable[i], i);
}
};
function $merge(){
var mix = {};
for (var i = 0, l = arguments.length; i < l; i++){
var object = arguments[i];
if ($type(object) != 'object') continue;
for (var key in object){
var op = object[key], mp = mix[key];
mix[key] = (mp && $type(op) == 'object' && $type(mp) == 'object') ? $merge(mp, op) : $unlink(op);
}
}
return mix;
};
function $unlink(object){
var unlinked;
switch ($type(object)){
case 'object':
unlinked = {};
for (var p in object) unlinked[p] = $unlink(object[p]);
break;
case 'array':
unlinked = [];
for (var i = 0, l = object.length; i < l; i++) unlinked[i] = $unlink(object[i]);
break;
default: return object;
}
return unlinked;
};
function $rgbToHex(srcArray, array){
if (srcArray.length < 3) return null;
if (srcArray.length == 4 && srcArray[3] == 0 && !array) return 'transparent';
var hex = [];
for (var i = 0; i < 3; i++){
var bit = (srcArray[i] - 0).toString(16);
hex.push((bit.length == 1) ? '0' + bit : bit);
}
return (array) ? hex : '#' + hex.join('');
};
function $destroy(elem) {
$clean(elem);
if(elem.parentNode) elem.parentNode.removeChild(elem);
if(elem.clearAttributes) elem.clearAttributes();
};
function $clean(elem) {
for(var ch = elem.childNodes, i=0; i < ch.length; i++) {
$destroy(ch[i]);
}
};
function $addEvent(obj, type, fn) {
if (obj.addEventListener)
obj.addEventListener(type, fn, false);
else
obj.attachEvent('on' + type, fn);
};
function $hasClass(obj, klass) {
return (' ' + obj.className + ' ').indexOf(' ' + klass + ' ') > -1;
};
function $addClass(obj, klass) {
if(!$hasClass(obj, klass)) obj.className = (obj.className + " " + klass);
};
function $removeClass(obj, klass) {
obj.className = obj.className.replace(new RegExp('(^|\\s)' + klass + '(?:\\s|$)'), '$1');
};
function $get(id) {
return document.getElementById(id);
};
var Class = function(properties){
properties = properties || {};
var klass = function(){
// not defining any attributes in Class properties.
// for (var key in this){
// if (typeof this[key] != 'function') this[key] = $unlink(this[key]);
// }
this.constructor = klass;
if (Class.prototyping) return this;
var instance = (this.initialize) ? this.initialize.apply(this, arguments) : this;
return instance;
};
for (var mutator in Class.Mutators){
if (!properties[mutator]) continue;
properties = Class.Mutators[mutator](properties, properties[mutator]);
delete properties[mutator];
( run in 1.858 second using v1.01-cache-2.11-cpan-9581c071862 )