/** * Write anything out as a string. For error messages when tests fail. */ function anyToString(thing){ if( thing === null ) { return 'null'; } if( thing === undefined ) { return 'undefined'; } if( typeof thing == 'string' ) { return '(string)' + thing; } if( thing.constructor == Array ) { return '[' + thing.map(anyToString).join(', ') + ']'; } if( typeof thing == 'function' ) { return thing.name? 'function ' + thing.name : 'anon function'; } if( typeof thing == 'object' ) { return ( thing.constructor == Object? '' : '(' + (thing.constructor.name) + ')' ) + JSON.stringify(thing); } return JSON.stringify(thing); }