Skip to content

Commit

Permalink
Pruned non-used code
Browse files Browse the repository at this point in the history
  • Loading branch information
christkv committed Mar 9, 2012
1 parent c13f40f commit eddd667
Showing 1 changed file with 27 additions and 17 deletions.
44 changes: 27 additions & 17 deletions lib/bson/bson.js
Original file line number Diff line number Diff line change
Expand Up @@ -195,17 +195,16 @@ BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128;
* @return {Number} returns the number of bytes the BSON object will take up.
* @api public
*/
BSON.calculateObjectSize = function calculateObjectSize(object, serializeFunctions, isBuffer) {
// isBuffer = isBuffer == null ? false : true;
BSON.calculateObjectSize = function calculateObjectSize(object, serializeFunctions) {
var totalLength = (4 + 1);

if(Array.isArray(object)) {
for(var i = 0; i < object.length; i++) {
totalLength += calculateElement(i.toString(), object[i], serializeFunctions, isBuffer)
totalLength += calculateElement(i.toString(), object[i], serializeFunctions)
}
} else {
for(var key in object) {
totalLength += calculateElement(key, object[key], serializeFunctions, isBuffer)
totalLength += calculateElement(key, object[key], serializeFunctions)
}
}

Expand All @@ -216,8 +215,8 @@ BSON.calculateObjectSize = function calculateObjectSize(object, serializeFunctio
* @ignore
* @api private
*/
function calculateElement(name, value, serializeFunctions, isBuffer) {
isBuffer = typeof Buffer !== 'undefined';
function calculateElement(name, value, serializeFunctions) {
var isBuffer = typeof Buffer !== 'undefined';

switch(typeof value) {
case 'string':
Expand Down Expand Up @@ -251,7 +250,7 @@ function calculateElement(name, value, serializeFunctions, isBuffer) {
} else if(value instanceof Code || value['_bsontype'] == 'Code') {
// Calculate size depending on the availability of a scope
if(value.scope != null && Object.keys(value.scope).length > 0) {
return (name != null ? ((!isBuffer ? numberOfBytes(name) : Buffer.byteLength(name, 'utf8')) + 1) : 0) + 1 + 4 + 4 + (!isBuffer ? numberOfBytes(value.code.toString()) : Buffer.byteLength(value.code.toString(), 'utf8')) + 1 + BSON.calculateObjectSize(value.scope, serializeFunctions, isBuffer);
return (name != null ? ((!isBuffer ? numberOfBytes(name) : Buffer.byteLength(name, 'utf8')) + 1) : 0) + 1 + 4 + 4 + (!isBuffer ? numberOfBytes(value.code.toString()) : Buffer.byteLength(value.code.toString(), 'utf8')) + 1 + BSON.calculateObjectSize(value.scope, serializeFunctions);
} else {
return (name != null ? ((!isBuffer ? numberOfBytes(name) : Buffer.byteLength(name, 'utf8')) + 1) : 0) + 1 + 4 + (!isBuffer ? numberOfBytes(value.code.toString()) : Buffer.byteLength(value.code.toString(), 'utf8')) + 1;
}
Expand All @@ -271,12 +270,12 @@ function calculateElement(name, value, serializeFunctions, isBuffer) {
ordered_values['$db'] = value.db;
}

return (name != null ? ((!isBuffer ? numberOfBytes(name) : Buffer.byteLength(name, 'utf8')) + 1) : 0) + 1 + BSON.calculateObjectSize(ordered_values, serializeFunctions, isBuffer);
return (name != null ? ((!isBuffer ? numberOfBytes(name) : Buffer.byteLength(name, 'utf8')) + 1) : 0) + 1 + BSON.calculateObjectSize(ordered_values, serializeFunctions);
} else if(value instanceof RegExp || String.call(value) === '[object RegExp]') {
return (name != null ? ((!isBuffer ? numberOfBytes(name) : Buffer.byteLength(name, 'utf8')) + 1) : 0) + 1 + (!isBuffer ? numberOfBytes(value.source) : Buffer.byteLength(value.source, 'utf8')) + 1
+ (value.global ? 1 : 0) + (value.ignoreCase ? 1 : 0) + (value.multiline ? 1 : 0) + 1
} else {
return (name != null ? ((!isBuffer ? numberOfBytes(name) : Buffer.byteLength(name, 'utf8')) + 1) : 0) + BSON.calculateObjectSize(value, serializeFunctions, isBuffer) + 1;
return (name != null ? ((!isBuffer ? numberOfBytes(name) : Buffer.byteLength(name, 'utf8')) + 1) : 0) + BSON.calculateObjectSize(value, serializeFunctions) + 1;
}
case 'function':
// WTF for 0.4.X where typeof /someregexp/ === 'function'
Expand All @@ -285,7 +284,7 @@ function calculateElement(name, value, serializeFunctions, isBuffer) {
+ (value.global ? 1 : 0) + (value.ignoreCase ? 1 : 0) + (value.multiline ? 1 : 0) + 1
} else {
if(serializeFunctions && value.scope != null && Object.keys(value.scope).length > 0) {
return (name != null ? ((!isBuffer ? numberOfBytes(name) : Buffer.byteLength(name, 'utf8')) + 1) : 0) + 1 + 4 + 4 + (!isBuffer ? numberOfBytes(value.toString()) : Buffer.byteLength(value.toString(), 'utf8')) + 1 + BSON.calculateObjectSize(value.scope, serializeFunctions, isBuffer);
return (name != null ? ((!isBuffer ? numberOfBytes(name) : Buffer.byteLength(name, 'utf8')) + 1) : 0) + 1 + 4 + 4 + (!isBuffer ? numberOfBytes(value.toString()) : Buffer.byteLength(value.toString(), 'utf8')) + 1 + BSON.calculateObjectSize(value.scope, serializeFunctions);
} else if(serializeFunctions) {
return (name != null ? ((!isBuffer ? numberOfBytes(name) : Buffer.byteLength(name, 'utf8')) + 1) : 0) + 1 + 4 + (!isBuffer ? numberOfBytes(value.toString()) : Buffer.byteLength(value.toString(), 'utf8')) + 1;
}
Expand Down Expand Up @@ -638,7 +637,7 @@ var packElement = function(name, value, checkKeys, buffer, index, serializeFunct
index = index + numberOfWrittenBytes + 1;
buffer[index - 1] = 0;
// Calculate the scope size
var scopeSize = BSON.calculateObjectSize(value.scope, serializeFunctions, !(buffer instanceof Uint8Array));
var scopeSize = BSON.calculateObjectSize(value.scope, serializeFunctions);
// Function string
var functionString = value.code.toString();
// Function Size
Expand Down Expand Up @@ -775,7 +774,7 @@ var packElement = function(name, value, checkKeys, buffer, index, serializeFunct
}

// Message size
var size = BSON.calculateObjectSize(ordered_values, serializeFunctions, !(buffer instanceof Uint8Array));
var size = BSON.calculateObjectSize(ordered_values, serializeFunctions);
// Serialize the object
var endIndex = BSON.serializeWithBufferAndIndex(ordered_values, checkKeys, buffer, index, serializeFunctions);
// Write the size of the string to buffer
Expand Down Expand Up @@ -862,7 +861,7 @@ var packElement = function(name, value, checkKeys, buffer, index, serializeFunct
index = index + numberOfWrittenBytes + 1;
buffer[index - 1] = 0;
// Calculate the scope size
var scopeSize = BSON.calculateObjectSize(value.scope, serializeFunctions, !(buffer instanceof Uint8Array));
var scopeSize = BSON.calculateObjectSize(value.scope, serializeFunctions);
// Function string
var functionString = value.toString();
// Function Size
Expand Down Expand Up @@ -952,9 +951,20 @@ var packElement = function(name, value, checkKeys, buffer, index, serializeFunct
* @api public
*/
BSON.serialize = function(object, checkKeys, asBuffer, serializeFunctions) {
var size = BSON.calculateObjectSize(object, serializeFunctions, asBuffer);
var buffer = null;
// Calculate the size of the object
var size = BSON.calculateObjectSize(object, serializeFunctions);
// Fetch the best available type for storing the binary data
if(buffer = typeof Buffer != 'undefined') {
buffer = new Buffer(size);
asBuffer = true;
} else if(typeof Uint8Array != 'undefined') {
buffer = new Uint8Array(new ArrayBuffer(size));
} else {
buffer = new Array(size);
}

// If asBuffer is false use typed arrays
var buffer = typeof Buffer !== 'undefined' ? new Buffer(size) : new Uint8Array(new ArrayBuffer(size));
BSON.serializeWithBufferAndIndex(object, checkKeys, buffer, 0, serializeFunctions);
return buffer;
}
Expand Down Expand Up @@ -1429,8 +1439,8 @@ BSON.prototype.serialize = function(object, checkKeys, asBuffer, serializeFuncti
* @return {Number} returns the number of bytes the BSON object will take up.
* @api public
*/
BSON.prototype.calculateObjectSize = function(object, serializeFunctions, isBuffer) {
return BSON.calculateObjectSize(object, serializeFunctions, isBuffer);
BSON.prototype.calculateObjectSize = function(object, serializeFunctions) {
return BSON.calculateObjectSize(object, serializeFunctions);
}

/**
Expand Down

0 comments on commit eddd667

Please sign in to comment.