tizen beta release
[profile/ivi/webkit-efl.git] / LayoutTests / fast / js / kde / script-tests / exceptions.js
1 function kdeShouldBe(a, b, c)
2 {
3   if ( a == b )
4    debug(c+" .......... Passed");
5   else
6    debug(c+" .......... Failed");
7 }
8
9 function testThrow()
10 {
11   var caught = false;
12   try {
13     throw 99;
14   } catch (e) {
15     caught = true;
16   }
17   kdeShouldBe(caught, true, "testing throw()");
18 }
19
20 // same as above but lacking a semicolon after throw
21 function testThrow2()
22 {
23   var caught = false;
24   try {
25     throw 99
26   } catch (e) {
27     caught = true;
28   }
29   kdeShouldBe(caught, true, "testing throw()");
30 }
31
32 function testReferenceError()
33 {
34   var err = "noerror";
35   var caught = false;
36   try {
37     var dummy = nonexistant; // throws reference error
38   } catch (e) {
39     caught = true;
40     err = e.name;
41   }
42   // test err
43   kdeShouldBe(caught, true, "ReferenceError");
44 }
45
46 function testFunctionErrorHelper()
47 {
48    var a = b;  // throws reference error
49 }
50
51 function testFunctionError()
52 {
53   var caught = false;
54   try {
55     testFunctionErrorHelper();
56   } catch (e) {
57     caught = true;
58   }
59   kdeShouldBe(caught, true, "error propagation in functions");
60 }
61
62 function testMathFunctionError()
63 {
64   var caught = false;
65   try {
66     Math();
67   } catch (e) {
68     debug("catch");
69     caught = true;
70   } finally {
71     debug("finally");
72   }
73   kdeShouldBe(caught, true, "Math() error");
74 }
75
76 function testWhileAbortion()
77 {
78   var caught = 0;
79   try { 
80     while (a=b, 1) {    // "endless error" in condition
81       ;
82     }
83   } catch (e) {
84     caught++;
85   }
86
87   try { 
88     while (1) {
89       var a = b;        // error in body
90     }
91   } catch (e) {
92     caught++;
93   }
94   kdeShouldBe(caught, 2, "Abort while() on error");
95 }
96
97 debug("Except a lot of errors. They should all be caught and lead to PASS");
98 testThrow();
99 testThrow2();
100 testReferenceError();
101 testFunctionError();
102 testMathFunctionError();
103 testWhileAbortion();