nl_tokens: / * author - Daniel VerWeire <dverweire@gmail . com >
pl_tokens: function map ( obj , fn , squash ) { var a = [ ] , key , keys , x , doBreak = false ; if ( Array . isArray ( obj ) ) { for ( key = 0 ; key < obj . length ; key ++ ) { doCall ( key , obj ) if ( doBreak ) { break ; } } } else if ( obj !== null && typeof ( obj ) === 'object' ) { keys = Object . keys ( obj ) ; for ( x = 0 ; x < keys . length ; x ++ ) { doCall ( keys [ x ] , obj ) ; if ( doBreak ) { break ; } } } else if ( typeof ( obj ) === 'string' ) { for ( key in obj ) { doCall ( key , obj ) ; if ( doBreak ) { break ; } } } else { return [ ] ; } return a ; function doCall ( key , obj ) { var t = fn . call ( obj [ <mask> ] , key , obj [ key ] , emit , end ) ; if ( ( t !== undefined && t !== null && squash ) || ! squash ) { a . push ( t ) ; } } function emit ( obj ) { return a . push ( obj ) } function end ( ) { doBreak = true ; } }