2011-01-10 Michael Saboff <msaboff@apple.com>
[WebKit-https.git] / LayoutTests / fast / js / script-tests / stack-overflow-catch.js
1 description('Test that when the stack overflows, the exception goes to the last frame before the overflow');
2
3 var level = 0;
4 var stackLevel = 0;
5 var gotWrongCatch = false;
6
7 function test1()
8 {
9     var myLevel = level;
10     var dummy;
11
12     try {
13         level = level + 1;
14         // Dummy code to make this funciton different from test2()
15         dummy = level * level + 1;
16         if (dummy == 0)
17             debug('Should never get here!!!!');
18     } catch(err) {
19         gotWrongCatch = true;
20     }
21
22     try {
23         test2();
24     } catch(err) {
25         stackLevel = myLevel;
26     }
27 }
28
29 function test2()
30 {
31     var myLevel = level;
32
33     // Dummy code to make this funciton different from test1()
34     if (gotWrongCatch)
35         debug('Should never get here!!!!');
36
37     try {
38         level = level + 1;
39     } catch(err) {
40         gotWrongCatch = true;
41     }
42
43     try {
44         test1();
45     } catch(err) {
46         stackLevel = myLevel;
47     }
48 }
49
50 test1();
51
52 shouldBeFalse("gotWrongCatch");
53 shouldBe("(stackLevel)", "(level - 1)");
54
55 var successfullyParsed = true;