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
|
setup({ allow_uncaught_exception:true });
[
1,
new TypeError(),
undefined
].forEach(throwable => {
test(t => {
let happened = false;
self.addEventListener("error", t.step_func(e => {
assert_true(e.message !== "");
assert_equals(e.filename, new URL("reporterror.any.js", location.href).href);
assert_greater_than(e.lineno, 0);
assert_greater_than(e.colno, 0);
assert_equals(e.error, throwable);
happened = true;
}), { once:true });
self.reportError(throwable);
assert_true(happened);
}, `self.reportError(${throwable})`);
});
test(() => {
assert_throws_js(TypeError, () => self.reportError());
}, `self.reportError() (without arguments) throws`);
test(() => {
// Workaround for https://github.com/web-platform-tests/wpt/issues/32105
let invoked = false;
self.reportError({
get name() {
invoked = true;
assert_unreached('get name')
},
get message() {
invoked = true;
assert_unreached('get message');
},
get fileName() {
invoked = true;
assert_unreached('get fileName');
},
get lineNumber() {
invoked = true;
assert_unreached('get lineNumber');
}
});
assert_false(invoked);
}, `self.reportError() doesn't invoke getters`);
|