blob: a6cca7cdde0a6fa31ec6c15b0f95b9a77d8d6bec (
plain)
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
|
// |reftest| skip-if(!xulRuntime.shell) -- needs drainJobQueue
class ExpectedError extends Error {
name = "ExpectedError";
}
class UnexpectedError extends Error {
name = "UnexpectedError";
}
function throwExpectedError() {
throw new ExpectedError();
}
async function throwsInParameterExpression(a = throwExpectedError()) {
throw new UnexpectedError();
}
assertEventuallyThrows(throwsInParameterExpression(), ExpectedError);
async function throwsInObjectDestructuringParameterEmpty({}) {
throw new UnexpectedError();
}
assertEventuallyThrows(throwsInObjectDestructuringParameterEmpty(), TypeError);
let objectThrowingExpectedError = {
get a() {
throw new ExpectedError();
}
}
async function throwsInObjectDestructuringParameter({a}) {
throw new UnexpectedError();
}
assertEventuallyThrows(throwsInObjectDestructuringParameter(), TypeError);
assertEventuallyThrows(throwsInObjectDestructuringParameter(objectThrowingExpectedError), ExpectedError);
let iteratorThrowingExpectedError = {
[Symbol.iterator]() {
throw new ExpectedError();
}
};
async function throwsInArrayDestructuringParameterEmpty([]) {
throw new UnexpectedError();
}
assertEventuallyThrows(throwsInArrayDestructuringParameterEmpty(), TypeError);
assertEventuallyThrows(throwsInArrayDestructuringParameterEmpty(iteratorThrowingExpectedError), ExpectedError);
async function throwsInArrayDestructuringParameter([a]) {
throw new UnexpectedError();
}
assertEventuallyThrows(throwsInArrayDestructuringParameter(), TypeError);
assertEventuallyThrows(throwsInArrayDestructuringParameter(iteratorThrowingExpectedError), ExpectedError);
if (typeof reportCompare === "function")
reportCompare(true, true);
|