33var bops = require ( 'bops' ) ;
44
55exports . encode = function ( value ) {
6- var toJSONed = [ ]
7- var size = sizeof ( value )
8- if ( size == 0 )
9- return undefined
6+ var size = sizeof ( value ) ;
7+ if ( size === 0 ) return undefined ;
108 var buffer = bops . create ( size ) ;
119 encode ( value , buffer , 0 ) ;
1210 return buffer ;
@@ -203,8 +201,8 @@ function decode(buffer) {
203201
204202function encodeableKeys ( value ) {
205203 return Object . keys ( value ) . filter ( function ( e ) {
206- return 'function' !== typeof value [ e ] || ! ! value [ e ] . toJSON
207- } )
204+ return typeof value [ e ] !== 'function' || value [ e ] . toJSON ;
205+ } ) ;
208206}
209207
210208function encode ( value , buffer , offset ) {
@@ -346,8 +344,10 @@ function encode(value, buffer, offset) {
346344 return 1 ;
347345 }
348346
349- if ( 'function' === typeof value . toJSON )
350- return encode ( value . toJSON ( ) , buffer , offset )
347+ // Custom toJSON function.
348+ if ( typeof value . toJSON === 'function' ) {
349+ return encode ( value . toJSON ( ) , buffer , offset ) ;
350+ }
351351
352352 // Container Types
353353 if ( type === "object" ) {
@@ -359,7 +359,7 @@ function encode(value, buffer, offset) {
359359 length = value . length ;
360360 }
361361 else {
362- var keys = encodeableKeys ( value )
362+ var keys = encodeableKeys ( value ) ;
363363 length = keys . length ;
364364 }
365365
@@ -393,8 +393,7 @@ function encode(value, buffer, offset) {
393393
394394 return size ;
395395 }
396- if ( type === "function" )
397- return undefined
396+ if ( type === "function" ) return undefined ;
398397 throw new Error ( "Unknown type " + type ) ;
399398}
400399
@@ -462,13 +461,15 @@ function sizeof(value) {
462461 // Boolean, null, undefined
463462 if ( type === "boolean" || type === "undefined" || value === null ) return 1 ;
464463
465- if ( 'function' === typeof value . toJSON )
466- return sizeof ( value . toJSON ( ) )
464+ if ( typeof value . toJSON === 'function' ) {
465+ return sizeof ( value . toJSON ( ) ) ;
466+ }
467467
468468 // Container Types
469469 if ( type === "object" ) {
470- if ( 'function' === typeof value . toJSON )
471- value = value . toJSON ( )
470+ if ( 'function' === typeof value . toJSON ) {
471+ value = value . toJSON ( ) ;
472+ }
472473
473474 size = 0 ;
474475 if ( Array . isArray ( value ) ) {
@@ -478,7 +479,7 @@ function sizeof(value) {
478479 }
479480 }
480481 else {
481- var keys = encodeableKeys ( value )
482+ var keys = encodeableKeys ( value ) ;
482483 length = keys . length ;
483484 for ( var i = 0 ; i < length ; i ++ ) {
484485 var key = keys [ i ] ;
@@ -496,8 +497,9 @@ function sizeof(value) {
496497 }
497498 throw new Error ( "Array or object too long 0x" + length . toString ( 16 ) ) ;
498499 }
499- if ( type === "function" )
500- return 0
500+ if ( type === "function" ) {
501+ return 0 ;
502+ }
501503 throw new Error ( "Unknown type " + type ) ;
502504}
503505
0 commit comments