2008-06-07 Cameron Zwarich <cwzwarich@uwaterloo.ca>
[WebKit-https.git] / LayoutTests / fast / js / resources / order-of-operations.js
1 var leftRight;
2 function left() {
3     leftRight = leftRight + "Left";
4 }
5
6 function right() {
7     leftRight = leftRight + "Right";
8 }
9
10 shouldBe('(function(){ leftRight = ""; left() > right(); return leftRight; })()', '"LeftRight"');
11 shouldBe('(function(){ leftRight = ""; left() >= right(); return leftRight; })()', '"LeftRight"');
12 shouldBe('(function(){ leftRight = ""; left() < right(); return leftRight; })()', '"LeftRight"');
13 shouldBe('(function(){ leftRight = ""; left() <= right(); return leftRight; })()', '"LeftRight"');
14 shouldBe('(function(){ leftRight = ""; left() + right(); return leftRight; })()', '"LeftRight"');
15 shouldBe('(function(){ leftRight = ""; left() - right(); return leftRight; })()', '"LeftRight"');
16 shouldBe('(function(){ leftRight = ""; left() / right(); return leftRight; })()', '"LeftRight"');
17 shouldBe('(function(){ leftRight = ""; left() * right(); return leftRight; })()', '"LeftRight"');
18 shouldBe('(function(){ leftRight = ""; left() % right(); return leftRight; })()', '"LeftRight"');
19 shouldBe('(function(){ leftRight = ""; left() << right(); return leftRight; })()', '"LeftRight"');
20 shouldBe('(function(){ leftRight = ""; left() >> right(); return leftRight; })()', '"LeftRight"');
21 shouldBe('(function(){ leftRight = ""; left() >>> right(); return leftRight; })()', '"LeftRight"');
22 shouldBe('(function(){ leftRight = ""; left() || right(); return leftRight; })()', '"LeftRight"');
23 shouldBe('(function(){ leftRight = ""; left() && right(); return leftRight; })()', '"Left"');
24 shouldBe('(function(){ leftRight = ""; left() & right(); return leftRight; })()', '"LeftRight"');
25 shouldBe('(function(){ leftRight = ""; left() | right(); return leftRight; })()', '"LeftRight"');
26 shouldBe('(function(){ leftRight = ""; left() ^ right(); return leftRight; })()', '"LeftRight"');
27
28 function testEvaluationOfArguments()
29 {
30     function throwPass()
31     {
32         throw "PASS";
33     }
34     
35     var nonFunction = 42;
36     
37     try {
38         nonFunction(throwPass());
39     } catch (e) {
40         return e == "PASS";
41     }
42 }
43
44 shouldBeTrue("testEvaluationOfArguments()");
45
46 var successfullyParsed = true;