--- /dev/null
+package abc {
+ import some.nonexisting.package.MyClass;
+}
--- /dev/null
+package abc {
+ class Twice {
+ }
+}
+package def {
+ class Twice {
+ }
+}
+package abc {
+ class Twice {
+ }
+}
--- /dev/null
+package package1 {
+ public class A {
+ internal var x;
+ }
+}
+package package2 {
+
+ public class Test extends flash.display.MovieClip {
+ public function Test() {
+ var cls = new package1.A();
+ cls.x=3; //invalid: x is internal
+ }
+ }
+}
--- /dev/null
+function test() {
+ this.x = 3;
+}
--- /dev/null
+package {
+ import flash.display.MovieClip
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ this = 3;
+ }
+ }
+}
--- /dev/null
+package Test {
+ package Test2 {
+ }
+}
--- /dev/null
+package package1 {
+ public class A {
+ private var x;
+ }
+ public class Test extends flash.display.MovieClip {
+ public function Test() {
+ var cls = new package1.A();
+ cls.x=3; //invalid: x is private
+ }
+ }
+}
--- /dev/null
+package package1 {
+ public class A {
+ protected var x;
+ }
+ public class Test extends flash.display.MovieClip {
+ public function Test() {
+ var cls = new package1.A();
+ cls.x=3; //invalid: x is protected
+ }
+ }
+}
--- /dev/null
+package mypackage {
+ public internal class Test {
+ }
+}
--- /dev/null
+public class Test {
+}
--- /dev/null
+package {
+ import flash.display.MovieClip;
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ trace(false || "ok 1/6");
+ trace("ok 2/6" || "error");
+
+ if(false && true) trace("error") else trace("ok 3/6");
+ trace("error" && "ok 4/6");
+
+ if(!false) trace("ok 5/6");
+
+ if(!true) trace("error");
+ else trace("ok 6/6");
+ }
+ }
+}
--- /dev/null
+package {
+ import flash.display.MovieClip;
+ public class Main extends flash.display.MovieClip {
+ internal var r;
+ function print(s) {
+ trace(s);
+ trace(this.r);
+ }
+ function Main() {
+ var x = this.print;
+ this.r = "ok 2/2";
+ x("ok 1/2");
+ }
+ }
+}
--- /dev/null
+package test.package {
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ var i:int;
+ /* test breaking loop */
+ for(i=0;i<100;i++) {
+ var x=-1;
+ if(i*i==49)
+ break;
+ }
+ if(i!=7) trace("error");
+ else trace("ok 1/4");
+
+ /* test not breaking loop */
+ for(;i<10;i++) {
+ var x="String";
+ if(i==20)
+ break;
+ }
+ if(i!=10) trace("error");
+ else trace("ok 2/4");
+
+ /* test breaking while */
+ while(i<20) {
+ var x=1.0;
+ if(i==15)
+ break;
+ i++;
+ }
+ if(i!=15) trace("error");
+ else trace("ok 3/4");
+
+ /* test non-breaking while */
+ while(i<30) {
+ var x=new Object;
+ if(i==40)
+ break;
+ i++;
+ }
+ if(i!=30) trace("error");
+ else trace("ok 4/4");
+ }
+ }
+}
+
--- /dev/null
+package test1 {
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ trace("ok");
+ }
+ }
+ /* explicitly internal */
+ internal class InternalClass {
+ }
+ /* implicitly internal */
+ class ImplicitInternalClass {
+ }
+}
+package test2 {
+ public class PublicClass extends test1.Main {
+ }
+}
--- /dev/null
+package test.package {
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ var a=3;
+ var b=10;
+ var c=15;
+ var d=10;
+
+ if(a<b) trace("ok 1/18");else trace("error");
+ if(b<c) trace("ok 2/18");else trace("error");
+ if(a<c) trace("ok 3/18");else trace("error");
+
+ if(b==d) trace("ok 4/18");else trace("error");
+ if(b>=d) trace("ok 5/18");else trace("error");
+ if(b<=d) trace("ok 6/18");else trace("error");
+
+ if(a<=b) trace("ok 7/18");else trace("error");
+ if(b<=c) trace("ok 8/18");else trace("error");
+ if(a<=c) trace("ok 9/18");else trace("error");
+
+ if(b>=a) trace("ok 10/18");else trace("error");
+ if(c>=b) trace("ok 11/18");else trace("error");
+ if(c>=a) trace("ok 12/18");else trace("error");
+
+ if(b>a) trace("ok 13/18");else trace("error");
+ if(c>b) trace("ok 14/18");else trace("error");
+ if(c>a) trace("ok 15/18");else trace("error");
+
+ if(b<d) trace("error");else trace("ok 16/18");
+ if(b>d) trace("error");else trace("ok 17/18");
+
+ trace("ok 18/18");
+ }
+ }
+}
+
--- /dev/null
+package {
+ public class Main extends flash.display.MovieClip {
+ public myfunction(var x:String="ok 2/4")
+ {
+ trace(x);
+ }
+ public myfunction2(var i:int,var x:String="ok 4/4")
+ {
+ }
+ public function HelloWorld() {
+ myfunction("ok 1/4");
+ myfunction();
+ myfunction2(0,"ok 3/4");
+ myfunction2(0);
+ }
+ }
+}
--- /dev/null
+package {
+ import flash.display.MovieClip;
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ if(false) {
+ trace("error");
+ } else if(true) {
+ trace("ok 1/1");
+ } else {
+ trace("error");
+ }
+ }
+ }
+}
--- /dev/null
+package {
+ import flash.display.MovieClip;
+
+ public class Main extends flash.display.MovieClip {
+ public function test(s,...numbers) {
+ if(numbers[0]==1 &&
+ numbers[1]==2 &&
+ numbers[2]==3 &&
+ numbers[3]==4) trace("ok 1/2");
+ if(numbers.length==4) trace("ok 2/2");
+ }
+ function Main() {
+ test("", 1,2,3,4);
+ }
+ }
+}
--- /dev/null
+
+package {
+ import flash.display.MovieClip
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ var a1 = 0;
+ for(a1=0;a1<100;a1++) {
+ }
+ if(a1==100) trace("ok 1/4");
+ else trace("error");
+
+ if(a1<50) trace("error");
+ else trace("ok 2/4");
+
+ if(a1<150) trace("ok 3/4");
+ else trace("error");
+
+ for(var a2=0;a2<99;a2++) {
+ }
+ if(a2==99) trace("ok 4/4");
+ }
+ }
+}
+
--- /dev/null
+package package2 {
+ public class Test {
+ public function set x (v) {
+ if(v==2)
+ trace("ok 2/2");
+ }
+ public function get x ():uint {
+ trace("ok 1/2");
+ return 1;
+ }
+ }
+}
+
+package {
+ import flash.display.MovieClip;
+ import package2.Test
+
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ var t:Test = new Test();
+ t.x++;
+ }
+ }
+}
--- /dev/null
+package test.mypackage {
+ import flash.display.MovieClip;
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ if(true) trace("ok 1/4");
+ if(false) trace("error");
+ if(1+1==2) trace("ok 2/4");
+ if(1+1==3) trace("error");
+ if(1+1!=2) trace("error");
+ if(1+2==3) trace("ok 3/4");
+
+ if(1+1==3) {} else {trace("ok 4/4");}
+ }
+ }
+}
--- /dev/null
+package package1 {
+ public class Class1 {
+ public function Class1() {
+ trace("ok 1/2");
+ }
+ }
+package package2 {
+ public class Class2 {
+ public function Class4() {
+ trace("ok 2/2");
+ }
+ }
+}
+
+package {
+ import package1.Class1
+ import package2.*
+
+ public class Main extends flash.display.MovieClip {
+ public function TestImport() {
+ new Class1();
+ new Class2();
+ }
+ }
+}
--- /dev/null
+package I {
+ public class ClassInMultiLevelPackage {
+ }
+ public interface I1 {
+ }
+}
--- /dev/null
+package package1 {
+ public class Class1 {
+ public var a;
+ public var b;
+ public var c:int;
+ public var d = 1;
+ public var e:int = 1;
+
+ function Class1() {
+ }
+ public function write() {
+ if(a==1)
+ trace("ok 1/5");
+ if(b==1)
+ trace("ok 2/5");
+ if(c==1)
+ trace("ok 3/5");
+ if(d==1)
+ trace("ok 4/5");
+ if(e==1)
+ trace("ok 5/5");
+ }
+ }
+}
+package package2 {
+ import package1.Class1
+
+ public class Main extends flash.display.MovieClip {
+ public function Main() {
+ var cls = new Class1();
+ cls.a = 1;
+ cls.b++;
+ cls.c = c.a;
+ cls.write();
+
+ cls.c += 1;
+ cls.c -= c.a;
+ }
+ }
+}
--- /dev/null
+package some.other.package {
+ public class Class4 {
+ public function Class4() {
+ trace("ok 4/4");
+ }
+ }
+}
+
+package {
+ public class Class1 {
+ public function Class1() {
+ trace("ok 1/4");
+ }
+ }
+ public class Class2 {
+ public function Class2() {
+ trace("ok 2/4");
+ }
+ }
+ public class Class3 {
+ public function Class3(x,s) {
+ trace(s)
+ }
+ }
+
+ public class Main extends flash.display.MovieClip {
+ public function Main() {
+ new Class1()
+ new Class2
+ new Class3(0,"ok 3/3")
+ import some.other.package.Class4
+ new Class4();
+ }
+ }
+}
--- /dev/null
+package {
+
+ public class Main extends flash.display.MovieClip {
+ public function Main() {
+ var x = null;
+ var y = null;
+ if(x == y) {
+ trace("ok 1/2");
+ }
+ if(x === y) {
+ trace("ok 2/2");
+ }
+
+ }
+ }
+
+}
--- /dev/null
+package test.package {
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ /* test the encoding of various constants.
+ Depending on the radix size, int constants may be
+ encoded as byte, u30 short, u31 short, signed, etc. */
+ var a1 = 127;
+ if(String(a1) == "127") trace("ok 1/13");
+ var a2 = 256;
+ if(String(a2) == "256") trace("ok 2/13");
+ var a3 = 1073741823;
+ if(String(a3) == "1073741823") trace("ok 3/13");
+ var a4 = 1073741824;
+ if(String(a4) == "1073741824") trace("ok 4/13");
+ var a5 = 2147483647;
+ if(String(a5) == "2147483647") trace("ok 5/13");
+ var a6 = -1;
+ if(String(a6) == "-1") trace("ok 6/13");
+ var a7 = -127;
+ if(String(a7) == "-127") trace("ok 7/13");
+ var a8 = -32767;
+ if(String(a8) == "-32767") trace("ok 8/13");
+ var a9 = -32768;
+ if(String(a9) == "-32768") trace("ok 9/13");
+ var a10 = -32769;
+ if(String(a10) == "-32769") trace("ok 10/13");
+ var a11 = -65536;
+ if(String(a11) == "-65536") trace("ok 11/13");
+ var a12 = -1073741823;
+ if(String(a12) == "-1073741823") trace("ok 12/13");
+ var a13 = -1073741824;
+ if(String(a13) == "-1073741824") trace("ok 13/13");
+ }
+ }
+}
+
--- /dev/null
+package {
+
+ public class Test {
+ function Test() {
+ }
+ function getok1() {
+ return "ok1/2";
+ }
+ function getok2():String {
+ return "ok2/2";
+ }
+ };
+
+ import flash.display.MovieClip
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ trace((new Test).getok1());
+ var t = new Test;
+ trace(t.getok2());
+ }
+ }
+}
--- /dev/null
+package some.multilevel.package {
+ public class ClassInMultiLevelPackage {
+ }
+}
+package some.other.multilevel.package {
+ import some.multilevel.package.*
+ public class ClassInOtherMultiLevelPackage extends ClassInMultiLevelPackage {
+ }
+}
+
+package I {
+ public interface I1 {
+ }
+ public interface I2 {
+ }
+ public interface I3 {
+ }
+}
+package A {
+
+ class A1 {
+ }
+ class A2 extends A1{
+ }
+ public class A3 extends A2 {
+ }
+
+}
+package B {
+ class B1 extends A.A3 implements I.I1,I.I2,I.I3{
+ }
+}
+package C {
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ trace("ok");
+ }
+ }
+}
--- /dev/null
+package {
+ import flash.display.MovieClip
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ var email = "test@test.de";
+ if(email.length == 12) trace("ok 1/2");
+ if(email.charAt(4)!='@') trace("error");
+ var x;
+ var y:Boolean=false;
+ for(x=0;x<email.length;x++) {
+ if(email.charAt(x)=='.') {
+ y=true;
+ }
+ }
+ if(y) trace("ok 2/2");
+ }
+ }
+}
+
--- /dev/null
+package {
+ import flash.display.MovieClip;
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ var x:int;
+ for(x=0;x<5;x++) {
+ switch(x*x) {
+ case 0: trace("ok 1/5");break;
+ case 1: trace("ok 2/5");break;
+ case 2: trace("error");break;
+ case 3: trace("error");break;
+ case 4: trace("ok 3/5");break;
+ case 9: //fallthrough
+ case 10:
+ trace("ok 4/5");break;
+ default:
+ trace("ok 5/5");break;
+ }
+ }
+ }
+ }
+}
--- /dev/null
+package {
+ import flash.display.MovieClip
+ public class Main extends flash.display.MovieClip {
+ internal var s0;
+ internal var s1:String="ok3/4";
+ internal var s2;
+ function myswf() {
+
+ this.printok1();
+ this.s0 = "ok2/4";
+ this.printok2(0);
+
+ // member w/ default value:
+ trace(this.s1);
+
+ //omit "this":
+ s2 = "ok4/4";
+ printok3();
+ }
+ public function printok1() {
+ trace("ok1/4");
+ }
+ public function printok2(x:uint) {
+ trace(this.s0);
+ }
+ public function printok3() {
+ trace(this.s2);
+ }
+ }
+}
--- /dev/null
+package {
+ public class Main extends flash.display.MovieClip {
+ public function Main() {
+ trace("ok");
+ }
+ }
+}
--- /dev/null
+package test.package {
+ public class Main extends flash.display.MovieClip {
+ function Main() {
+ var i = 0;
+ var j = 0;
+ while(i*i<100) {
+ i++;
+ }
+ if(i!=10) trace("error");
+ else trace("ok 1/3");
+
+ while(j*j<121) {
+ i++;
+ j++;
+ }
+ if(i!=21) trace("error");
+ else trace("ok 2/3");
+
+ var x1=0;
+ var a=1;
+ var sum=0;
+ while(x1<10) {
+ var x2=0;
+ var a=2;
+ x2 = 0;
+ while(x2<10) {
+ var x3=0;
+ var a=3;
+ x3 = 0;
+ while(x3<10) {
+ var a=4;
+ sum+=a;
+ x3++;
+ }
+ sum+=a;
+ x2++;
+ }
+ sum+=a;
+ x1++;
+ }
+ sum+=a;
+ if(sum!=4321) trace("error");
+ else trace("ok 3/3");
+ }
+ }
+}
+