| /*global window, global*/ | |
| var util = require("util") | |
| var assert = require("assert") | |
| var now = require("date-now") | |
| var slice = Array.prototype.slice | |
| var console | |
| var times = {} | |
| if (typeof global !== "undefined" && global.console) { | |
| console = global.console | |
| } else if (typeof window !== "undefined" && window.console) { | |
| console = window.console | |
| } else { | |
| console = {} | |
| } | |
| var functions = [ | |
| [log, "log"], | |
| [info, "info"], | |
| [warn, "warn"], | |
| [error, "error"], | |
| [time, "time"], | |
| [timeEnd, "timeEnd"], | |
| [trace, "trace"], | |
| [dir, "dir"], | |
| [consoleAssert, "assert"] | |
| ] | |
| for (var i = 0; i < functions.length; i++) { | |
| var tuple = functions[i] | |
| var f = tuple[0] | |
| var name = tuple[1] | |
| if (!console[name]) { | |
| console[name] = f | |
| } | |
| } | |
| module.exports = console | |
| function log() {} | |
| function info() { | |
| console.log.apply(console, arguments) | |
| } | |
| function warn() { | |
| console.log.apply(console, arguments) | |
| } | |
| function error() { | |
| console.warn.apply(console, arguments) | |
| } | |
| function time(label) { | |
| times[label] = now() | |
| } | |
| function timeEnd(label) { | |
| var time = times[label] | |
| if (!time) { | |
| throw new Error("No such label: " + label) | |
| } | |
| var duration = now() - time | |
| console.log(label + ": " + duration + "ms") | |
| } | |
| function trace() { | |
| var err = new Error() | |
| err.name = "Trace" | |
| err.message = util.format.apply(null, arguments) | |
| console.error(err.stack) | |
| } | |
| function dir(object) { | |
| console.log(util.inspect(object) + "\n") | |
| } | |
| function consoleAssert(expression) { | |
| if (!expression) { | |
| var arr = slice.call(arguments, 1) | |
| assert.ok(false, util.format.apply(null, arr)) | |
| } | |
| } |