js/src/tests/js1_7/geniter/unreachable-yield.js

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:143ba41669e7
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6 //-----------------------------------------------------------------------------
7 var BUGNUMBER = "(none)";
8 var summary = "Iterator with unreachable yield statement";
9 var actual, expect;
10
11 printBugNumber(BUGNUMBER);
12 printStatus(summary);
13
14 /**************
15 * BEGIN TEST *
16 **************/
17
18 function gen()
19 {
20 // this is still a generator even if yield can't
21 // be invoked, because yield is a syntactical
22 // part of the language
23 if (false)
24 yield "failed";
25 }
26
27 var failed = false;
28 try
29 {
30 var it = gen();
31 if (it == undefined)
32 throw "gen() not recognized as generator";
33
34 // no yields to execute
35 var stopPassed = false;
36 try
37 {
38 it.next();
39 }
40 catch (e)
41 {
42 if (e === StopIteration)
43 stopPassed = true;
44 }
45
46 if (!stopPassed)
47 throw "incorrect or invalid StopIteration";
48 }
49 catch (e)
50 {
51 failed = e;
52 }
53
54 expect = false;
55 actual = failed;
56
57 reportCompare(expect, actual, summary);

mercurial