1
0
Fork 0

small optimizations

This commit is contained in:
Jan Steemann 2014-05-17 01:38:39 +02:00
parent e9c4a759f7
commit e532223fcd
1 changed files with 66 additions and 86 deletions

View File

@ -271,7 +271,7 @@ function CLONE (obj) {
return obj;
}
var copy, a;
var copy;
if (Array.isArray(obj)) {
copy = [ ];
obj.forEach(function (i) {
@ -280,11 +280,9 @@ function CLONE (obj) {
}
else if (obj instanceof Object) {
copy = { };
for (a in obj) {
if (obj.hasOwnProperty(a)) {
copy[a] = CLONE(obj[a]);
}
}
Object.keys(obj).forEach(function(k) {
copy[k] = CLONE(obj[k]);
});
}
return copy;
@ -323,14 +321,12 @@ function FIX_VALUE (value) {
if (type === 'object') {
var result = { };
for (i in value) {
if (value.hasOwnProperty(i)) {
if (typeof value[i] === 'function') {
continue;
}
result[i] = FIX_VALUE(value[i]);
Object.keys(value).forEach(function(k) {
if (typeof value[k] !== 'function') {
result[k] = FIX_VALUE(value[k]);
}
}
});
return result;
}
@ -520,13 +516,11 @@ function FIX (value) {
function VALUES (value) {
"use strict";
var values = [ ], a;
for (a in value) {
if (value.hasOwnProperty(a)) {
values.push(value[a]);
}
}
var values = [ ];
Object.keys(value).forEach(function(k) {
values.push(value[k]);
});
return values;
}
@ -993,7 +987,7 @@ function GET_DOCUMENTS_EDGE (collection, att, id) {
function GET_DOCUMENTS_EDGE_LIST (collection, att, values) {
"use strict";
var docs = { }, result = [ ], c, a;
var docs = { }, result = [ ], c;
c = COLLECTION(collection);
@ -1015,11 +1009,9 @@ function GET_DOCUMENTS_EDGE_LIST (collection, att, values) {
}
});
for (a in docs) {
if (docs.hasOwnProperty(a)) {
result.push(docs[a]);
}
}
Object.keys(docs).forEach(function(k) {
result.push(docs[k]);
});
return result;
}
@ -2703,7 +2695,7 @@ function UNIQUE (values) {
LIST(values);
var keys = { }, result = [ ], a;
var keys = { }, result = [ ];
values.forEach(function (value) {
var normalized = NORMALIZE(value);
@ -2714,11 +2706,9 @@ function UNIQUE (values) {
}
});
for (a in keys) {
if (keys.hasOwnProperty(a)) {
result.push(keys[a]);
}
}
Object.keys(keys).forEach(function(k) {
result.push(keys[k]);
});
return result;
}
@ -2782,11 +2772,9 @@ function UNION_DISTINCT () {
}
var result = [ ];
for (i in keys) {
if (keys.hasOwnProperty(i)) {
result.push(keys[i]);
}
}
Object.keys(keys).forEach(function(k) {
result.push(keys[k]);
});
return result;
}
@ -2860,11 +2848,9 @@ function MINUS () {
}
var result = [ ];
for (i in keys) {
if (keys.hasOwnProperty(i)) {
result.push(keys[i]);
}
}
Object.keys(keys).forEach(function(k) {
result.push(keys[k]);
});
return result;
}
@ -2912,11 +2898,9 @@ function INTERSECTION () {
}
}
for (i in keys) {
if (keys.hasOwnProperty(i)) {
result.push(keys[i]);
}
}
Object.keys(keys).forEach(function(k) {
result.push(keys[k]);
});
return result;
}
@ -3495,15 +3479,13 @@ function ATTRIBUTES (element, removeInternal, sort) {
}
if (removeInternal) {
var a, result = [ ];
for (a in element) {
if (element.hasOwnProperty(a)) {
if (a.substring(0, 1) !== '_') {
result.push(a);
}
var result = [ ];
Object.keys(element).forEach(function(k) {
if (k.substring(0, 1) !== '_') {
result.push(k);
}
}
});
if (sort) {
result.sort();
@ -3526,15 +3508,14 @@ function UNSET (value) {
THROW(INTERNAL.errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH, "UNSET");
}
var result = { }, keys = EXTRACT_KEYS(arguments, 1, "UNSET"), i;
var result = { }, keys = EXTRACT_KEYS(arguments, 1, "UNSET");
// copy over all that is left
for (i in value) {
if (value.hasOwnProperty(i)) {
if (keys[i] !== true) {
result[i] = CLONE(value[i]);
}
Object.keys(value).forEach(function(k) {
if (keys[k] !== true) {
result[k] = CLONE(value[k]);
}
}
});
return result;
}
@ -3550,17 +3531,14 @@ function KEEP (value) {
THROW(INTERNAL.errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH, "KEEP");
}
var keys = EXTRACT_KEYS(arguments, 1, "KEEP"), i;
var result = { }, keys = EXTRACT_KEYS(arguments, 1, "KEEP");
// copy over all that is left
var result = { };
for (i in keys) {
if (keys.hasOwnProperty(i)) {
if (value.hasOwnProperty(i)) {
result[i] = CLONE(value[i]);
}
Object.keys(keys).forEach(function(k) {
if (value.hasOwnProperty(k)) {
result[k] = CLONE(value[k]);
}
}
});
return result;
}
@ -3572,7 +3550,13 @@ function KEEP (value) {
function MERGE () {
"use strict";
var result = { }, i, a;
var result = { }, i;
var add = function (element) {
Object.keys(element).forEach(function(k) {
result[k] = element[k];
});
};
for (i in arguments) {
if (arguments.hasOwnProperty(i)) {
@ -3582,11 +3566,8 @@ function MERGE () {
THROW(INTERNAL.errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH, "MERGE");
}
for (a in element) {
if (element.hasOwnProperty(a)) {
result[a] = element[a];
}
}
add(element);
}
}
@ -3603,18 +3584,17 @@ function MERGE_RECURSIVE () {
var result = { }, i, recurse;
recurse = function (old, element) {
var r = CLONE(old), a;
var r = CLONE(old);
for (a in element) {
if (element.hasOwnProperty(a)) {
if (r.hasOwnProperty(a) && TYPEWEIGHT(element[a]) === TYPEWEIGHT_DOCUMENT) {
r[a] = recurse(r[a], element[a]);
}
else {
r[a] = element[a];
}
Object.keys(element).forEach(function(k) {
if (r.hasOwnProperty(k) && TYPEWEIGHT(element[k]) === TYPEWEIGHT_DOCUMENT) {
r[k] = recurse(r[k], element[k]);
}
}
else {
r[k] = element[k];
}
});
return r;
};