8a28dd33ae7ac63a4598b9f50c30dd8668cc7e2d
[swftools.git] / lib / as3 / ok / reconcile.as
1 package {
2         import flash.display.MovieClip;
3         import flash.utils.ByteArray;
4
5         public class Main extends flash.display.MovieClip {
6
7             // test whether local variables with default value "null"
8             // will be coerced to their object
9             public function test1() {
10                 var dataBuffer:Array;
11                 while(true) {
12                     dataBuffer = new Array();
13                     if(dataBuffer)
14                         break;
15                 }
16                 trace("ok 1/8");
17             }
18
19             public function test2() {
20                 var output:String = "";
21                 while(output.length<1) {
22                     output += "abc".charAt(0);
23                 }
24                 trace("ok 2/8");
25             }
26
27             public function test3() {
28                 var k:uint;
29
30                 while(true) {
31                     for (var k:uint = 0; k < 4; k++) {
32                     }
33                     break;
34                 }
35                 trace("ok 3/8");
36             }
37
38             public var b:Boolean = false;
39
40             public function test4() {
41                 var x:int;
42                 var y:uint;
43                 if(b) {
44                     x = x+y;
45                     y = y+x;
46                 }
47                 trace("ok 4/8");
48             }
49             public function test5() {
50                 var x:int;
51                 var y:uint;
52                 var z:int;
53                 if(b) {
54                     x = x*y;
55                     z = x*z;
56                 }
57                 trace("ok 5/8");
58             }
59             public function test6() {
60                 var i:int = b?3.0:3;
61                 var j:uint = b?3:"abc";
62                 trace("ok 6/8");
63             }
64             public function test7() {
65                 var j:Number = 0;
66                 if(b) {
67                     j += 8;
68                 }
69                 trace("ok 7/8");
70             }
71             public function s():String {
72                 return "x";
73             }
74             public function test8() {
75                 var x:String = "abcd";
76
77                 var i:String = "test";
78                 // test return types of system libraries
79                 if(!b) {
80                     i = x.charAt(0);
81                 }
82                 var a = "test";
83                 // test return types of system libraries
84                 if(!b) {
85                     a = x.charAt(0);
86                 }
87
88                 // ...and local functions
89                 if(!b) {
90                     i = s();
91                 }
92                 trace("ok 8/8");
93             }
94
95             public function Main() {
96                 test1();
97                 test2();
98                 test3();
99                 test4();
100                 test5();
101                 test6();
102                 test7();
103                 test8();
104             
105                 trace("[exit]");
106             }
107         }
108 }