-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathtest_error_global.js
119 lines (94 loc) · 3.97 KB
/
test_error_global.js
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// test_error_global.js
// --------------------
// Tests for the Error global object.
var assert = console.assert;
var assertEquals = function(a, b) {
if (a !== b)
console.log(a + ' !== ' + b);
assert(a === b);
};
var test = function(name, f) {
f();
};
// ----------------------------------------------------------------------------
// Error Global
// ----------------------------------------------------------------------------
assert(Error);
assertEquals('function', typeof Error);
test('Constructor', function() {
var e1 = new Error('stack overflow');
var e2 = Error();
var e3 = new Error;
e3.name = 'BadError';
e3.message = 'Error code 0x32CC';
assertEquals('object', typeof new Error);
assertEquals('object', typeof (new Error));
assertEquals('object', typeof (new Error()));
assertEquals('object', typeof (new Error('message')));
assertEquals('object', typeof Error());
assertEquals('object', typeof Error('message'));
assertEquals('Error', e1.name);
assertEquals('stack overflow', e1.message);
assertEquals('Error', e2.name);
assertEquals('', e2.message);
assertEquals('BadError', e3.name);
assertEquals('Error code 0x32CC', e3.message);
});
test('Other Constructors', function() {
assertEquals('object', typeof new EvalError);
assertEquals('EvalError', (new EvalError).name);
assertEquals('', (new EvalError).message);
assertEquals('test', (new EvalError('test')).message);
assertEquals('object', typeof new RangeError);
assertEquals('RangeError', (new RangeError).name);
assertEquals('', (new RangeError).message);
assertEquals('test', (new RangeError('test')).message);
console.log('hola');
assertEquals('object', typeof new ReferenceError);
assertEquals('ReferenceError', (new ReferenceError).name);
assertEquals('', (new ReferenceError).message);
assertEquals('test', (new ReferenceError('test')).message);
assertEquals('object', typeof new SyntaxError);
assertEquals('SyntaxError', (new SyntaxError).name);
assertEquals('', (new SyntaxError).message);
assertEquals('test', (new SyntaxError('test')).message);
assertEquals('object', typeof new TypeError);
assertEquals('TypeError', (new TypeError).name);
assertEquals('', (new TypeError).message);
assertEquals('test', (new TypeError('test')).message);
assertEquals('object', typeof new URIError);
assertEquals('URIError', (new URIError).name);
assertEquals('', (new URIError).message);
assertEquals('test', (new URIError('test')).message);
assert((new EvalError) instanceof EvalError);
assert((new EvalError) instanceof Error);
assert((new EvalError) instanceof Object);
assert((new RangeError) instanceof RangeError);
assert((new RangeError) instanceof Error);
assert((new RangeError) instanceof Object);
assert((new ReferenceError) instanceof ReferenceError);
assert((new ReferenceError) instanceof Error);
assert((new ReferenceError) instanceof Object);
assert((new SyntaxError) instanceof SyntaxError);
assert((new SyntaxError) instanceof Error);
assert((new SyntaxError) instanceof Object);
assert((new TypeError) instanceof TypeError);
assert((new TypeError) instanceof Error);
assert((new TypeError) instanceof Object);
assert((new URIError) instanceof URIError);
assert((new URIError) instanceof Error);
assert((new URIError) instanceof Object);
});
// ----------------------------------------------------------------------------
// Error Prototype
// ----------------------------------------------------------------------------
assert(Error.prototype);
test('Error#toString()', function() {
var e1 = new Error('stack overflow');
var e2 = Error();
var e3 = new Error;
e3.name = '';
assertEquals('Error: stack overflow', e1.toString());
assertEquals('Error', e2.toString());
assertEquals('', e3.toString());
});