amos-tool
Version:
amos ui tool
57 lines (46 loc) • 1.28 kB
JavaScript
;
var utils = require("./utils");
function overArg(e, r) {
return function(n) {
return e(r(n));
};
}
var nativeKeys = overArg(Object.keys, Object), hasOwnProperty = Object.prototype.hasOwnProperty;
function baseSlice(e, r, n) {
var t = -1, o = e.length;
r < 0 && (r = -r > o ? 0 : o + r), (n = n > o ? o : n) < 0 && (n += o), o = r > n ? 0 : n - r >>> 0,
r >>>= 0;
for (var a = Array(o); ++t < o; ) a[t] = e[t + r];
return a;
}
function copyArray(e) {
return baseSlice(e, 0, e.length);
}
function baseAssignValue(e, r, n) {
e[r] = n;
}
function assignValue(e, r, n) {
var t = e[r];
hasOwnProperty.call(e, r) && eq(t, n) && (void 0 !== n || r in e) || baseAssignValue(e, r, n);
}
function copyObject(e, r, n, t) {
var o = !n;
n || (n = {});
for (var a = -1, c = r.length; ++a < c; ) {
var i = r[a], s = t ? t(n[i], e[i], i, n, e) : void 0;
void 0 === s && (s = e[i]), o ? baseAssignValue(n, i, s) : assignValue(n, i, s);
}
return n;
}
function eq(e, r) {
return e === r || e != e && r != r;
}
function clone(e) {
return utils.isObject(e) ? utils.isArray(e) ? copyArray(e) : copyObject(e, nativeKeys(e)) : e;
}
module.exports = {
clone: clone,
copyArray: copyArray,
copyObject: copyObject,
eq: eq
};