1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
| /*global window, global*/
| var util = require("util")
| var assert = require("assert")
| function now() { return new Date().getTime() }
|
| 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)
| }
|
| delete times[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))
| }
| }
|
|