mirror of
https://github.com/chartjs/Chart.js.git
synced 2024-10-07 12:49:07 +02:00
Add some optimizations to often used functions
This commit is contained in:
parent
ff94a54891
commit
977d45a3e0
@ -11,24 +11,24 @@
|
||||
|
||||
//-- Basic js utility methods
|
||||
helpers.each = function(loopable, callback, self, reverse) {
|
||||
var additionalArgs = Array.prototype.slice.call(arguments, 3);
|
||||
// Check to see if null or undefined firstly.
|
||||
if (loopable) {
|
||||
if (loopable.length === +loopable.length) {
|
||||
var i;
|
||||
var i, len;
|
||||
if (helpers.isArray(loopable)) {
|
||||
len = loopable.length;
|
||||
if (reverse) {
|
||||
for (i = loopable.length - 1; i >= 0; i--) {
|
||||
callback.apply(self, [loopable[i], i].concat(additionalArgs));
|
||||
for (i = len - 1; i >= 0; i--) {
|
||||
callback.call(self, loopable[i], i);
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < loopable.length; i++) {
|
||||
callback.apply(self, [loopable[i], i].concat(additionalArgs));
|
||||
for (i = 0; i < len; i++) {
|
||||
callback.call(self, loopable[i], i);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (var item in loopable) {
|
||||
callback.apply(self, [loopable[item], item].concat(additionalArgs));
|
||||
}
|
||||
} else if (typeof loopable === 'object') {
|
||||
var keys = Object.keys(loopable);
|
||||
len = keys.length;
|
||||
for (i = 0; i < len; i++) {
|
||||
callback.call(self, loopable[keys[i]], keys[i]);
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -48,7 +48,12 @@
|
||||
return objClone;
|
||||
};
|
||||
helpers.extend = function(base) {
|
||||
helpers.each(Array.prototype.slice.call(arguments, 1), function(extensionObject) {
|
||||
var len = arguments.length;
|
||||
var additionalArgs = [];
|
||||
for(var i = 1; i < len; i++) {
|
||||
additionalArgs.push(arguments[i]);
|
||||
}
|
||||
helpers.each(additionalArgs, function(extensionObject) {
|
||||
helpers.each(extensionObject, function(value, key) {
|
||||
if (extensionObject.hasOwnProperty(key)) {
|
||||
base[key] = value;
|
||||
|
Loading…
Reference in New Issue
Block a user