]>
git.saurik.com Git - apple/javascriptcore.git/blob - tests/stress/raise-error-in-iterator-close.js
88f6e8604e1c587bf207f2f5e8b5a9e112e12a81
2 function createIterator(callback
) {
3 var array
= [0,1,2,3,4,5];
4 var iterator
= array
[Symbol
.iterator
]();
5 iterator
.return = function () {
6 iterator
.returned
= true;
9 return { done: true, value: undefined };
11 iterator
.returned
= false;
16 var outerIterator
= createIterator();
17 var innerIterator
= createIterator(function () {
18 throw new Error("Inner return called.");
22 outer: for (var e1
of outerIterator
) {
23 inner: for (var e2
of innerIterator
) {
31 throw new Error("no error");
32 if (String(error
) !== "Error: Inner return called.")
33 throw new Error("bad error: " + String(error
));
34 if (!innerIterator
.returned
)
35 throw new Error("bad value: " + innerIterator
.returned
);
36 if (!outerIterator
.returned
)
37 throw new Error("bad value: " + outerIterator
.returned
);
41 var outerIterator
= createIterator(function () {
42 throw new Error("Outer return called.");
44 var innerIterator
= createIterator(function () {
45 throw new Error("Inner return called.");
49 outer: for (var e1
of outerIterator
) {
50 inner: for (var e2
of innerIterator
) {
58 throw new Error("no error");
59 if (String(error
) !== "Error: Inner return called.")
60 throw new Error("bad error: " + String(error
));
61 if (!innerIterator
.returned
)
62 throw new Error("bad value: " + innerIterator
.returned
);
63 if (!outerIterator
.returned
)
64 throw new Error("bad value: " + outerIterator
.returned
);
68 var outerIterator
= createIterator(function () {
69 throw new Error("Outer return called.");
71 var innerIterator
= createIterator();
74 outer: for (var e1
of outerIterator
) {
75 inner: for (var e2
of innerIterator
) {
83 throw new Error("no error");
84 if (String(error
) !== "Error: Outer return called.")
85 throw new Error("bad error: " + String(error
));
86 if (!innerIterator
.returned
)
87 throw new Error("bad value: " + innerIterator
.returned
);
88 if (!outerIterator
.returned
)
89 throw new Error("bad value: " + outerIterator
.returned
);
93 var outerIterator
= createIterator(function () {
94 throw new Error("Outer return called.");
96 var innerIterator
= createIterator(function () {
97 throw new Error("Inner return called.");
101 outer: for (var e1
of outerIterator
) {
102 inner: for (var e2
of innerIterator
) {
103 throw new Error("Loop raises error.");
110 throw new Error("no error");
111 if (String(error
) !== "Error: Loop raises error.")
112 throw new Error("bad error: " + String(error
));
113 if (!innerIterator
.returned
)
114 throw new Error("bad value: " + innerIterator
.returned
);
115 if (!outerIterator
.returned
)
116 throw new Error("bad value: " + outerIterator
.returned
);