Bug 508316: update ecma3 tests to run compiled with -AS3 (r=brbaker)
authorChris Peyer <cpeyer@adobe.com>
Mon, 01 Nov 2010 14:09:15 -0700
changeset 5472 793a96705159
parent 5471 e04e2398d2a7
child 5473 c959cd1a57ac
push id3014
push usercpeyer@adobe.com
push dateMon, 01 Nov 2010 21:11:13 +0000
reviewersbrbaker
bugs508316
Bug 508316: update ecma3 tests to run compiled with -AS3 (r=brbaker)
test/acceptance/as3/Vector/sort.as
test/acceptance/as3/Vector/sortInitializers.as
test/acceptance/ecma3/Array/e15_4_2_3.as
test/acceptance/ecma3/Array/e15_4_4_10.as
test/acceptance/ecma3/Array/e15_4_4_13.as
test/acceptance/ecma3/Array/e15_4_4_4_1.as
test/acceptance/ecma3/Array/e15_4_4_6.as
test/acceptance/ecma3/Array/e15_4_4_7.as
test/acceptance/ecma3/Array/e15_4_4_9.as
test/acceptance/ecma3/Array/eregress_130451.as
test/acceptance/ecma3/Boolean/ecma4_sealedtype_1_rt.as
test/acceptance/ecma3/Boolean/ecma4_st_valueOf_4_rt.as
test/acceptance/ecma3/Boolean/ecma4_st_valueOf_5_rt.as
test/acceptance/ecma3/Date/e15_9_5.as
test/acceptance/ecma3/Date/e15_9_5_23_1.as
test/acceptance/ecma3/Date/e15_9_5_23_10.as
test/acceptance/ecma3/Date/e15_9_5_23_11.as
test/acceptance/ecma3/Date/e15_9_5_23_12.as
test/acceptance/ecma3/Date/e15_9_5_23_13.as
test/acceptance/ecma3/Date/e15_9_5_23_14.as
test/acceptance/ecma3/Date/e15_9_5_23_15.as
test/acceptance/ecma3/Date/e15_9_5_23_16.as
test/acceptance/ecma3/Date/e15_9_5_23_17.as
test/acceptance/ecma3/Date/e15_9_5_23_18.as
test/acceptance/ecma3/Date/e15_9_5_23_3_rt.as
test/acceptance/ecma3/Date/e15_9_5_24_1.as
test/acceptance/ecma3/Date/e15_9_5_24_2.as
test/acceptance/ecma3/Date/e15_9_5_24_3.as
test/acceptance/ecma3/Date/e15_9_5_24_4.as
test/acceptance/ecma3/Date/e15_9_5_24_5.as
test/acceptance/ecma3/Date/e15_9_5_24_6.as
test/acceptance/ecma3/Date/e15_9_5_24_7.as
test/acceptance/ecma3/Date/e15_9_5_24_8.as
test/acceptance/ecma3/Date/e15_9_5_2_2_rt.as
test/acceptance/ecma3/Date/e15_9_5_30_1.as
test/acceptance/ecma3/Date/e15_9_5_31_1.as
test/acceptance/ecma3/Date/e15_9_5_32_1.as
test/acceptance/ecma3/Date/e15_9_5_33_1.as
test/acceptance/ecma3/Date/e15_9_5_34_1.as
test/acceptance/ecma3/Date/e15_9_5_35_1.as
test/acceptance/ecma3/Date/e15_9_5_36_1.as
test/acceptance/ecma3/Date/e15_9_5_36_2.as
test/acceptance/ecma3/Date/e15_9_5_36_3.as
test/acceptance/ecma3/Date/e15_9_5_36_4.as
test/acceptance/ecma3/Date/e15_9_5_36_5.as
test/acceptance/ecma3/Date/e15_9_5_36_6.as
test/acceptance/ecma3/Date/e15_9_5_36_7.as
test/acceptance/ecma3/Date/e15_9_5_37_1.as
test/acceptance/ecma3/Date/e15_9_5_37_2.as
test/acceptance/ecma3/Date/e15_9_5_37_3.as
test/acceptance/ecma3/Date/e15_9_5_37_4.as
test/acceptance/ecma3/Date/e15_9_5_37_5.as
test/acceptance/ecma3/Date/e15_9_5_3_1_rt.as
test/acceptance/ecma3/Date/e15_9_5_4_2_rt.as
test/acceptance/ecma3/Exceptions/boolean_001_rt.as
test/acceptance/ecma3/Exceptions/boolean_002_rt.as
test/acceptance/ecma3/Exceptions/date_001_rt.as
test/acceptance/ecma3/Exceptions/date_002_rt.as
test/acceptance/ecma3/Exceptions/date_003_rt.as
test/acceptance/ecma3/Exceptions/date_004_rt.as
test/acceptance/ecma3/Exceptions/exception_003_rt.as
test/acceptance/ecma3/Number/e15_7_4_2_1_rt.as
test/acceptance/ecma3/Number/e15_7_4_2_3_rt.as
test/acceptance/ecma3/Number/e15_7_4_3_3_rt.as
test/acceptance/ecma3/Number/ecma4_sealedtype_1_rt.as
test/acceptance/ecma3/Number/ecma4_sealedtype_2_rt.as
test/acceptance/ecma3/Number/ecma4_sealedtype_3_rt.as
test/acceptance/ecma3/Number/ecma4_st_valueOf_1_rt.as
test/acceptance/ecma3/Number/ecma4_st_valueOf_2_rt.as
test/acceptance/ecma3/Number/ecma4_st_valueOf_3_rt.as
test/acceptance/ecma3/Number/toLocaleString3_rt.as
test/acceptance/ecma3/Number/toLocaleString4_rt.as
test/acceptance/ecma3/ObjectObjects/e15_2_1_1_rt.as
test/acceptance/ecma3/ObjectObjects/e15_2_4_2.as
test/acceptance/ecma3/ObjectObjects/e15_2_4_3.as
test/acceptance/ecma3/RegExp/eproperties_001.as
test/acceptance/ecma3/RegExp/eproperties_002.as
test/acceptance/ecma3/String/e15_5_4_3_3_rt.as
test/acceptance/ecma3/String/e15_5_4_7_2.as
test/acceptance/ecma3/dir.asc_args
test/acceptance/shell.as
test/acceptance/testconfig.txt
--- a/test/acceptance/as3/Vector/sort.as
+++ b/test/acceptance/as3/Vector/sort.as
@@ -76,17 +76,17 @@ var v1=new Vector.<int>();
 for (var i=0;i<10;i++) v1[i]=9-i;
 var errormsg="";
 try {
   v1.sort()
 } catch (e) {
   errormsg=e.toString();
 }
 
-if (as3Enabled()) {
+if (as3Enabled) {
     AddTestCase(
    "sort vector without setting compare function throws exception",
    "ArgumentError: Error #1063",
    parseError(errormsg,"ArgumentError: Error #1063".length));
 } else {
     AddTestCase(
    "sort vector without setting compare function throws exception",
    "TypeError: Error #1034",
--- a/test/acceptance/as3/Vector/sortInitializers.as
+++ b/test/acceptance/as3/Vector/sortInitializers.as
@@ -56,17 +56,17 @@ writeHeaderToLog( SECTION + " "+ TITLE);
 
 var errormsg="";
 try {
   new<int>[4,92,1].sort()
 } catch (e) {
   errormsg=e.toString();
 }
 
-if (as3Enabled()) {
+if (as3Enabled) {
     AddTestCase(
    "sort vector without setting compare function throws exception",
    "ArgumentError: Error #1063",
    parseError(errormsg,"ArgumentError: Error #1063".length));
 } else {
     AddTestCase(
    "sort vector without setting compare function throws exception",
    "TypeError: Error #1034",
--- a/test/acceptance/ecma3/Array/e15_4_2_3.as
+++ b/test/acceptance/ecma3/Array/e15_4_2_3.as
@@ -43,24 +43,27 @@
     writeHeaderToLog( SECTION + " "+ TITLE);
 
     var testcases = getTestCases();
     test();
 
 function getTestCases() {
     var array = new Array();
     var item = 0;
-	var arr;
-    array[item++] = new TestCase( SECTION,	"new   Array() +''",        "",                 (new Array()) +"" );
-    array[item++] = new TestCase( SECTION,	"typeof new Array()",       "object",           (typeof new Array()) );
+    var arr;
+    array[item++] = new TestCase( SECTION,  "new   Array() +''",        "",                 (new Array()) +"" );
+    array[item++] = new TestCase( SECTION,  "typeof new Array()",       "object",           (typeof new Array()) );
     array[item++] = new TestCase(   SECTION,
                                     "var arr = new Array(); arr.getClass = Object.prototype.toString; arr.getClass()",
                                     "[object Array]",
                                     (arr = new Array(), arr.getClass = Object.prototype.toString, arr.getClass() ) );
 
-    array[item++] = new TestCase( SECTION,	"(new Array()).length",     0,                  (new Array()).length );
-    array[item++] = new TestCase( SECTION,	"(new Array()).toString == Array.prototype.toString",   true,       (new Array()).toString == Array.prototype.toString );
-    array[item++] = new TestCase( SECTION,	"(new Array()).join  == Array.prototype.join",          true,       (new Array()).join  == Array.prototype.join );
-    array[item++] = new TestCase( SECTION,	"(new Array()).reverse == Array.prototype.reverse",     true,       (new Array()).reverse  == Array.prototype.reverse );
-    array[item++] = new TestCase( SECTION,	"(new Array()).sort  == Array.prototype.sort",          true,       (new Array()).sort  == Array.prototype.sort );
+    array[item++] = new TestCase( SECTION,  "(new Array()).length",     0,                  (new Array()).length );
+    array[item++] = new TestCase( SECTION,  "(new Array()).toString == Array.prototype.toString",   true,       (new Array()).toString == Array.prototype.toString );
 
+    if (!as3Enabled) {
+        array[item++] = new TestCase( SECTION,  "(new Array()).join  == Array.prototype.join",          true,       (new Array()).join  == Array.prototype.join );
+        array[item++] = new TestCase( SECTION,  "(new Array()).reverse == Array.prototype.reverse",     true,       (new Array()).reverse  == Array.prototype.reverse );
+        array[item++] = new TestCase( SECTION,  "(new Array()).sort  == Array.prototype.sort",          true,       (new Array()).sort  == Array.prototype.sort );
+    }
+    
     return ( array );
 }
--- a/test/acceptance/ecma3/Array/e15_4_4_10.as
+++ b/test/acceptance/ecma3/Array/e15_4_4_10.as
@@ -108,48 +108,51 @@
 	}
 
 	var a = ['a','test string',456,9.34,new String("string object"),[],['h','i','j','k']];
 	var b = [1,2,3,4,5,6,7,8,9,0];
 
 	testcases[count++] = exhaustiveSliceTest("exhaustive slice test 1", a);
 	testcases[count++] = exhaustiveSliceTest("exhaustive slice test 2", b);                testcases[count++] = new TestCase(SECTION, "slice with end parameter undefined", "9.34,string object,,h,i,j,k", a.slice(3)+"");
 	testcases[count++] = new TestCase(SECTION, "slice with both parameters undefined", "1,2,3,4,5,6,7,8,9,0", b.slice()+"");
-        testcases[count++] = new TestCase(SECTION, "slice with start parameter undefined", "1,2,3,4,5", b.slice(undefined,5)+"");
+    testcases[count++] = new TestCase(SECTION, "slice with start parameter undefined", "1,2,3,4,5", b.slice(undefined,5)+"");
 
-        //slice method can be transferred to other objects for use as method
+    //slice method can be transferred to other objects for use as method
 
-        var obj = new Object();
-        obj.slice = Array.prototype.slice;
-        obj.length = 7;
-        obj[0] = 'a';
-        obj[1] = 'test string';
-        obj[2] = 456;
-        obj[3] = 9.34;
-        obj[4] = new String("string object");
-        obj[5] = [];
-        obj[6] = ['h','i','j','k']
+    var obj = new Object();
+    obj.slice = Array.prototype.slice;
+    obj.length = 7;
+    obj[0] = 'a';
+    obj[1] = 'test string';
+    obj[2] = 456;
+    obj[3] = 9.34;
+    obj[4] = new String("string object");
+    obj[5] = [];
+    obj[6] = ['h','i','j','k']
 
+    if (!as3Enabled) {
         testcases[count++] = exhaustiveSliceTest("exhaustive slice test 3", obj);
-
+    
         var obj2 = new Object();
         obj2.slice = Array.prototype.slice;
         obj2.length = 10;
         obj2[0] = 0;
         obj2[1] = 1;
         obj2[2] = 2;
         obj2[3] = 3;
         obj2[4] = 4;
         obj2[5] = 5;
         obj2[6] = 6;
         obj2[7] = 7;
         obj2[8] = 8;
         obj2[9] = 9;
-
+    
         testcases[count++] = exhaustiveSliceTest("exhaustive slice test 4", obj2);
-
-       testcases[count++] = new TestCase(SECTION, "slice with end parameter undefined", "9.34,string object,,h,i,j,k", obj.slice(3)+"");
-	testcases[count++] = new TestCase(SECTION, "slice with both parameters undefined", "0,1,2,3,4,5,6,7,8,9", obj2.slice()+"");
+    
+        testcases[count++] = new TestCase(SECTION, "slice with end parameter undefined", "9.34,string object,,h,i,j,k", obj.slice(3)+"");
+        testcases[count++] = new TestCase(SECTION, "slice with both parameters undefined", "0,1,2,3,4,5,6,7,8,9", obj2.slice()+"");
         testcases[count++] = new TestCase(SECTION, "slice with start parameter undefined", "0,1,2,3,4", obj2.slice(undefined,5)+"");
-        testcases[count++] = new TestCase(SECTION, "Length property of slice method", 2, Array.prototype.slice.length);
+    }
+    
+    testcases[count++] = new TestCase(SECTION, "Length property of slice method", 2, Array.prototype.slice.length);
 
 	test();
 
--- a/test/acceptance/ecma3/Array/e15_4_4_13.as
+++ b/test/acceptance/ecma3/Array/e15_4_4_13.as
@@ -94,17 +94,19 @@ function getTestCases() {
         //unshift method can be transferred to other objects for use as method
 
         myobj.unshift= Array.prototype.unshift;
         myobj.length = 3
         myobj[0] = 3;
         myobj[1] = 4;
         myobj[2] = 5;
 
-
-        array[item++] = new TestCase( SECTION, "myobj = new Object(); myobj.unshift= Array.prototype.unshift;myobj.unshift(0,1,2);", 6, myobj.unshift(0,1,2) );
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION, "myobj = new Object(); myobj.unshift= Array.prototype.unshift;myobj.unshift(0,1,2);", 6, myobj.unshift(0,1,2) );
 
-        for (var i=0; i<6; i++){
-        array[item++] = new TestCase( SECTION, "myobj = new Object(); myobj.unshift= Array.prototype.unshift; myobj.unshift(0,1,2);",i, myobj[i] );
+            for (var i=0; i<6; i++){
+                array[item++] = new TestCase( SECTION, "myobj = new Object(); myobj.unshift= Array.prototype.unshift; myobj.unshift(0,1,2);",i, myobj[i] );
+            }
         }
+        
 	return ( array );
 
 }
--- a/test/acceptance/ecma3/Array/e15_4_4_4_1.as
+++ b/test/acceptance/ecma3/Array/e15_4_4_4_1.as
@@ -193,25 +193,28 @@ function getTestCases() {
     var R = Reverse(A);
 
     array[item++] = new TestCase(   SECTION,
                                     S +";  A.reverse(); A.length",
                                     R.length,
                                     (A.reverse(), A.length) );
     CheckItems( R, A );
 
-    var S = "var MYOBJECT = new Object_1( \"void 0, 1, null, 2, \'\'\" )";
-    var MYOBJECT = new Object_1( "void 0, 1, null, 2, \'\'" )
-    var R = Reverse( MYOBJECT );
-
-    array[item++] = new TestCase(   SECTION,
-                                    S +";  MYOBJECT.reverse(); MYOBJECT.length",
-                                    R.length,
-                                    (MYOBJECT = new Object_1( "void 0, 1, null, 2, \'\'" ), MYOBJECT.reverse(), MYOBJECT.length) ); // cn  This actually fixes a Spidermonkey testcase bug.  It was checking A.reverse, A.length instead of NewObject
-    CheckItems( R, MYOBJECT );
+    
+    if (!as3Enabled) {
+        var S = "var MYOBJECT = new Object_1( \"void 0, 1, null, 2, \'\'\" )";
+        var MYOBJECT = new Object_1( "void 0, 1, null, 2, \'\'" )
+        var R = Reverse( MYOBJECT );
+    
+        array[item++] = new TestCase(   SECTION,
+                                        S +";  MYOBJECT.reverse(); MYOBJECT.length",
+                                        R.length,
+                                        (MYOBJECT = new Object_1( "void 0, 1, null, 2, \'\'" ), MYOBJECT.reverse(), MYOBJECT.length) ); // cn  This actually fixes a Spidermonkey testcase bug.  It was checking A.reverse, A.length instead of NewObject
+        CheckItems( R, MYOBJECT );
+    }
 
 
 	function CheckItems( R, A ) {
 	    for ( var i = 0; i < R.length; i++ ) {
 	        array[item++] = new TestCase(
 	                                            SECTION,
 	                                            "A["+i+ "]",
 	                                            R[i],
--- a/test/acceptance/ecma3/Array/e15_4_4_6.as
+++ b/test/acceptance/ecma3/Array/e15_4_4_6.as
@@ -94,31 +94,32 @@ function getTestCases() {
 
 	array[item++] = new TestCase( SECTION, "MYARR = [2,1,8,6]; MYARR.pop();", 6, EXP_RESULT );
 
 	for (var MYVAR = 0; ( MYVAR < MYARR.length ); MYVAR++)
 	{
 		array[item++] = new TestCase( SECTION, "MYARR = [2,1,8,6]; MYARR.pop();", EXPARR[MYVAR], MYARR[MYVAR] );
 	}
 
-       //pop method is generic so can be transferred to other types of objects
+    if (!as3Enabled) {
+        //pop method is generic so can be transferred to other types of objects
         var obj = new Object();
         obj.pop = Array.prototype.pop;
         obj.length = 4;
         obj[0] = 2;
         obj[1] = 1;
         obj[2] = 8;
         obj[3] = 6;
-
         var EXP_OBJRESULT = obj.pop();
-
+    
         array[item++] = new TestCase( SECTION, "obj.pop()", 6, EXP_OBJRESULT );
-
+    
         for (var MYVAR1 = 0; ( MYVAR1 < obj.length ); MYVAR1++)
-	{
-		array[item++] = new TestCase( SECTION, "obj.pop()", EXPARR[MYVAR1], obj[MYVAR1] );
-	}
+        {
+            array[item++] = new TestCase( SECTION, "obj.pop()", EXPARR[MYVAR1], obj[MYVAR1] );
+        }
+    }
 
 
 
 	return ( array );
 
 }
--- a/test/acceptance/ecma3/Array/e15_4_4_7.as
+++ b/test/acceptance/ecma3/Array/e15_4_4_7.as
@@ -84,30 +84,32 @@ function getTestCases() {
 	var MYVAR = 2;
 	var ARRLENGTH = 3;
 
         array[item++] = new TestCase( SECTION, "MYARR = new Array(); MYARR.push();", 2, MYARR.push() );
 
 
 	array[item++] = new TestCase( SECTION, "MYARR = new Array(); MYARR.push(2);", ARRLENGTH, MYARR.push(MYVAR) );
 
+    if (!as3Enabled) {
         //push function is intentionally generic.  It does not require its this value to be         //an array object
 
         var obj = new Object();
         obj.push = Array.prototype.push;
         obj.length = 4
         obj[0]=0;
         obj[1]=1;
         obj[2]=2;
         obj[3]=3;
 
         array[item++] = new TestCase( SECTION, "var obj = new Object(); obj.push(4);", 5, obj.push(4) );
-
-        var MYBIGARR = []
+    }
+    var MYBIGARR = []
 
-        for (var i=0;i<101;i++){
-            MYBIGARR[MYBIGARR.length] = i;
-        }
+    for (var i=0;i<101;i++){
+        MYBIGARR[MYBIGARR.length] = i;
+    }
 
-        array[item++] = new TestCase( SECTION, "var MYBIGARR[i] = i; MYBIGARR.push(101);", 102, MYBIGARR.push(101) );
+    array[item++] = new TestCase( SECTION, "var MYBIGARR[i] = i; MYBIGARR.push(101);", 102, MYBIGARR.push(101) );
+
 	return ( array );
 
 }
--- a/test/acceptance/ecma3/Array/e15_4_4_9.as
+++ b/test/acceptance/ecma3/Array/e15_4_4_9.as
@@ -120,24 +120,26 @@ function getTestCases() {
         for (var i = 0; i<101; i++){
             MYBIGARR[MYBIGARR.length] = i;
        }
 
        array[item++] = new TestCase( SECTION, "MYBIGARR = [0,1,2,.....,100]; MYBIGARR.shift();", 0, MYBIGARR.shift() );
 
        array[item++] = new TestCase( SECTION, "MYBIGARR = [0,1,2,.....,100]; MYBIGARR.shift();MYBIGARR.length", 100, MYBIGARR.length );
 
+    if (!as3Enabled) {
        //shift method is not generic it can transferred to other objects for use as method
         var obj = new Object();
         obj.shift = Array.prototype.shift;
         obj.length = 4;
         obj[0] = 0;
         obj[1] = 1;
         obj[2] = 2;
         obj[3] = 3;
 
        	array[item++] = new TestCase( SECTION, "obj = new Object(); obj.shift()", 0, obj.shift() );
 
         array[item++] = new TestCase( SECTION, "obj = new Object(); obj.shift();obj.length", 3, obj.length );
-
-        return ( array );
+    }
+    
+    return ( array );
 
 }
--- a/test/acceptance/ecma3/Array/eregress_130451.as
+++ b/test/acceptance/ecma3/Array/eregress_130451.as
@@ -127,74 +127,75 @@ function getTestCases() {
 
 	status = inSection(7);
 	arr.length = 4;
 	actual = arr.join();
 	expect = '0,1,,';  //<---- see how 2,3 have been lost
 	array[item++] = new TestCase(SECTION, "section 7", expect, actual );
 
 
-
-	/*
-	 * Now test Array.prototype.sort() on non-Array objects
-	 */
-
-
-	status = inSection(8);
-	var obj = new Object();
-	obj.sort = Array.prototype.sort;
-	obj.length = 4;
-	obj[0] = 0;
-	obj[1] = 1;
-	obj[2] = 2;
-	obj[3] = 3;
-	cmp = function(x,y) {return x-y;};
-	actual = obj.sort(cmp).length;
-	expect = 4;
-	array[item++] = new TestCase(SECTION, "section 8", expect, actual );
-
-
-	/*
-	 * Here again is Brendan's test. Unlike the array case
-	 * above, the setting of obj.length to 2 and then 4
-	 * should NOT cause elements to be deleted
-	 */
-	obj = new Object();
-	obj.sort = Array.prototype.sort;
-	obj.length = 4;
-	obj[0] = 3;
-	obj[1] = 2;
-	obj[2] = 1;
-	obj[3] = 0;
-	cmp = function(x,y) {return x-y;};
-	obj.sort(cmp);  //<---- this is what triggered the buggy behavior below
-	obj.join = Array.prototype.join;
-
-	status = inSection(9);
-	actual = obj.join();
-	expect = '0,1,2,3';
-	array[item++] = new TestCase(SECTION, "section 9", expect, actual );
-
-	status = inSection(10);
-	actual = obj.length;
-	expect = 4;
-	array[item++] = new TestCase(SECTION, "section 10", expect, actual );
-
-	status = inSection(11);
-	obj.length = 2;
-	actual = obj.join();
-	expect = '0,1';
-	array[item++] = new TestCase(SECTION, "section 11", expect, actual );
-
-	/*
-	 * Before this bug was fixed, |actual| held the value '0,1,,'
-	 * as in the Array-object case at top. This bug only occurred
-	 * if Array.prototype.sort() had been applied to |obj|,
-	 * as we have done higher up.
-	 */
-	status = inSection(12);
-	obj.length = 4;
-	actual = obj.join();
-	expect = '0,1,2,3';
-	array[item++] = new TestCase(SECTION, "section 12", expect, actual );
-
+    if (!as3Enabled) {
+        /*
+         * Now test Array.prototype.sort() on non-Array objects
+         */
+    
+    
+        status = inSection(8);
+        var obj = new Object();
+        obj.sort = Array.prototype.sort;
+        obj.length = 4;
+        obj[0] = 0;
+        obj[1] = 1;
+        obj[2] = 2;
+        obj[3] = 3;
+        cmp = function(x,y) {return x-y;};
+        actual = obj.sort(cmp).length;
+        expect = 4;
+        array[item++] = new TestCase(SECTION, "section 8", expect, actual );
+    
+    
+        /*
+         * Here again is Brendan's test. Unlike the array case
+         * above, the setting of obj.length to 2 and then 4
+         * should NOT cause elements to be deleted
+         */
+        obj = new Object();
+        obj.sort = Array.prototype.sort;
+        obj.length = 4;
+        obj[0] = 3;
+        obj[1] = 2;
+        obj[2] = 1;
+        obj[3] = 0;
+        cmp = function(x,y) {return x-y;};
+        obj.sort(cmp);  //<---- this is what triggered the buggy behavior below
+        obj.join = Array.prototype.join;
+    
+        status = inSection(9);
+        actual = obj.join();
+        expect = '0,1,2,3';
+        array[item++] = new TestCase(SECTION, "section 9", expect, actual );
+    
+        status = inSection(10);
+        actual = obj.length;
+        expect = 4;
+        array[item++] = new TestCase(SECTION, "section 10", expect, actual );
+    
+        status = inSection(11);
+        obj.length = 2;
+        actual = obj.join();
+        expect = '0,1';
+        array[item++] = new TestCase(SECTION, "section 11", expect, actual );
+    
+        /*
+         * Before this bug was fixed, |actual| held the value '0,1,,'
+         * as in the Array-object case at top. This bug only occurred
+         * if Array.prototype.sort() had been applied to |obj|,
+         * as we have done higher up.
+         */
+        status = inSection(12);
+        obj.length = 4;
+        actual = obj.join();
+        expect = '0,1,2,3';
+        array[item++] = new TestCase(SECTION, "section 12", expect, actual );
+    }
+    
     return ( array );
 }
--- a/test/acceptance/ecma3/Boolean/ecma4_sealedtype_1_rt.as
+++ b/test/acceptance/ecma3/Boolean/ecma4_sealedtype_1_rt.as
@@ -57,12 +57,22 @@ function getTestCases() {
 
 	try {
 		tostr=Boolean.prototype.toString;
 		x=new Boolean();
 		x.toString=tostr;
 	} catch (e) {
 		thisError = e.toString();
 	} finally {
-		array[item++] =new TestCase(SECTION,"Cannot create a property on Boolean","ReferenceError: Error #1056",referenceError( thisError ) );
+        if (as3Enabled) {
+            array[item++] =new TestCase(SECTION,
+                                        "Cannot assign to a method toString on Boolean.",
+                                        "ReferenceError: Error #1037",
+                                        referenceError( thisError ) );
+        } else {
+            array[item++] =new TestCase(SECTION,
+                                        "Cannot create a property on Boolean",
+                                        "ReferenceError: Error #1056",
+                                        referenceError( thisError ) );
+        }
 	}
 	return ( array );
 }
--- a/test/acceptance/ecma3/Boolean/ecma4_st_valueOf_4_rt.as
+++ b/test/acceptance/ecma3/Boolean/ecma4_st_valueOf_4_rt.as
@@ -30,44 +30,54 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 /*
-	In Ecma4 there are three sealed types; Boolean, Number and String
-	You cannot set properties of an instance of a sealed type
+    In Ecma4 there are three sealed types; Boolean, Number and String
+    You cannot set properties of an instance of a sealed type
 
-	Should throw a ReferenceError
+    Should throw a ReferenceError
 
-	Author:		mtilburg@macromedia.com
-	Date:		October 13, 2004
+    Author:     mtilburg@macromedia.com
+    Date:       October 13, 2004
 
 */
-	var SECTION = "ECMA_4";
-	var VERSION = "ECMA_4";
-	startTest();
-	var TITLE   = "valof=Boolean.prototype.valueOf;booleanObj=new Boolean(true);booleanObj.valueOf=valof;";
-	writeHeaderToLog( TITLE );
+    var SECTION = "ECMA_4";
+    var VERSION = "ECMA_4";
+    startTest();
+    var TITLE   = "valof=Boolean.prototype.valueOf;booleanObj=new Boolean(true);booleanObj.valueOf=valof;";
+    writeHeaderToLog( TITLE );
 
-	var testcases = getTestCases();
-	test();
+    var testcases = getTestCases();
+    test();
 
 function getTestCases() {
-	var booleanObj:Boolean = new Boolean(true);
+    var booleanObj:Boolean = new Boolean(true);
 
-	var thisError = "no error thrown";
-	var array = new Array();
-	var item = 0;
-	var valof=Boolean.prototype.valueOf;
-	try{
+    var thisError = "no error thrown";
+    var array = new Array();
+    var item = 0;
+    var valof=Boolean.prototype.valueOf;
+    try{
+
+        booleanObj.valueOf=valof;
 
-		booleanObj.valueOf=valof;
-
-	}catch(e){
-		thisError=e.toString();
-	}finally{
-		array[item++] =new TestCase(SECTION,"Cannot create a property on Boolean","ReferenceError: Error #1056",referenceError( thisError ) );
-	}
-	return ( array );
+    }catch(e){
+        thisError=e.toString();
+    }finally{
+        if (as3Enabled) {
+            array[item++] =new TestCase(SECTION,
+                                        "Cannot assign to a method toString on Boolean.",
+                                        "ReferenceError: Error #1037",
+                                        referenceError( thisError ) );
+        } else {
+            array[item++] =new TestCase(SECTION,
+                                        "Cannot create a property on Boolean",
+                                        "ReferenceError: Error #1056",
+                                        referenceError( thisError ) );
+        }
+    }
+    return ( array );
 }
--- a/test/acceptance/ecma3/Boolean/ecma4_st_valueOf_5_rt.as
+++ b/test/acceptance/ecma3/Boolean/ecma4_st_valueOf_5_rt.as
@@ -30,42 +30,52 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 /*
-	In Ecma4 there are three sealed types; Boolean, Number and String
-	You cannot set properties of an instance of a sealed type
+    In Ecma4 there are three sealed types; Boolean, Number and String
+    You cannot set properties of an instance of a sealed type
 
-	Should throw a ReferenceError
+    Should throw a ReferenceError
 
-	Author:		mtilburg@macromedia.com
-	Date:		October 13, 2004
+    Author:     mtilburg@macromedia.com
+    Date:       October 13, 2004
 
 */
-	var SECTION = "ECMA_4";
-	var VERSION = "ECMA_4";
-	startTest();
-	var TITLE   = "valof=Boolean.prototype.valueOf;booleanObj=new Boolean(false);booleanObj.valueOf=valof;";
-	writeHeaderToLog( TITLE );
+    var SECTION = "ECMA_4";
+    var VERSION = "ECMA_4";
+    startTest();
+    var TITLE   = "valof=Boolean.prototype.valueOf;booleanObj=new Boolean(false);booleanObj.valueOf=valof;";
+    writeHeaderToLog( TITLE );
 
-	var testcases = getTestCases();
-	test();
+    var testcases = getTestCases();
+    test();
 
 function getTestCases() {
-	var booleanObj = new Boolean(false);
-	var thisError = "no error thrown";
-	var array = new Array();
-	var item = 0;
+    var booleanObj = new Boolean(false);
+    var thisError = "no error thrown";
+    var array = new Array();
+    var item = 0;
 
-	try{
-		booleanObj.valueOf=true;
-	}catch(e){
-		thisError=e.toString();
-	}finally{
-		array[item++] =new TestCase(SECTION,"Cannot create a property on Boolean","ReferenceError: Error #1056",referenceError( thisError ) );
-	}
+    try{
+        booleanObj.valueOf=true;
+    }catch(e){
+        thisError=e.toString();
+    }finally{
+        if (as3Enabled) {
+            array[item++] =new TestCase(SECTION,
+                                        "Cannot assign to a method toString on Boolean.",
+                                        "ReferenceError: Error #1037",
+                                        referenceError( thisError ) );
+        } else {
+            array[item++] =new TestCase(SECTION,
+                                        "Cannot create a property on Boolean",
+                                        "ReferenceError: Error #1056",
+                                        referenceError( thisError ) );
+        }
+    }
 
-	return ( array );
+    return ( array );
 }
--- a/test/acceptance/ecma3/Date/e15_9_5.as
+++ b/test/acceptance/ecma3/Date/e15_9_5.as
@@ -43,29 +43,43 @@ var TITLE   = "Properties of the Date Pr
 writeHeaderToLog( SECTION + " "+ TITLE);
 var testcases = getTestCases();
 test();
 
 function getTestCases() {
     var array = new Array();
     var item = 0;
 
-	// save
-	var origGetClass:Function = Date.prototype.getClass;
-	var origValueOf:Function = Date.prototype.valueOf;
+    if (as3Enabled) {
+        // Date is a sealed class
+        try{
+            Date.prototype.valueOf=Object.prototype.toString;
+        }catch(e){
+            thisError=e.toString();
+        }finally{
+            array[item++] =new TestCase(SECTION,
+                    "ReferenceError: Error #1037: Cannot assign to a method valueOf on Date.",
+                    "ReferenceError: Error #1037",
+                    referenceError( thisError ) );
+        }
+    } else {    // ES
+        var origGetClass:Function = Date.prototype.getClass;
+        var origValueOf:Function = Date.prototype.valueOf;
+    
+        Date.prototype.getClass = Object.prototype.toString;
+        Date.prototype.valueOf=Object.prototype.toString;
+        array[item++] = new TestCase( SECTION,
+                        "Date.prototype.getClass",
+                        "[object Date]",
+                        Date.prototype.getClass() );
+        array[item++] = new TestCase( SECTION,
+                        "Date.prototype.valueOf()",
+                        "[object Date]",
+                        (Date.prototype.valueOf()) );
+    
+        // restore
+        Date.prototype.getClass = origGetClass;
+        Date.prototype.valueOf = origValueOf;
+    }
 
-	Date.prototype.getClass = Object.prototype.toString;
-	Date.prototype.valueOf=Object.prototype.toString;
-	array[item++] = new TestCase( SECTION,
-				    "Date.prototype.getClass",
-				    "[object Date]",
-				    Date.prototype.getClass() );
-	array[item++] = new TestCase( SECTION,
-				    "Date.prototype.valueOf()",
-				    "[object Date]",
-				    (Date.prototype.valueOf()) );
-
-	// restore
-	Date.prototype.getClass = origGetClass;
-	Date.prototype.valueOf = origValueOf;
 
     return ( array );
 }
--- a/test/acceptance/ecma3/Date/e15_9_5_23_1.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_23_1.as
@@ -82,33 +82,31 @@ function addTestCase( startTime, setTime
     array[item++] = new TestCase( SECTION, DateString+".getFullYear()",         LocalDate.year,     DateCase.getFullYear() );
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,    DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,     DateCase.getDate() );
     array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,      DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,    DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,  DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,  DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,       DateCase.getMilliseconds() );
-    var  thisError = 'no error';
-    try{
-   DateCase.toString = Object.prototype.toString;
-    } catch (e) {
-	thisError = e.toString();
-} finally {
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString","no error",referenceError( thisError ) );
-
+    
+    if (!as3Enabled) {
+        var  thisError = 'no error';
+        try{
+            DateCase.toString = Object.prototype.toString;
+        } catch (e) {
+            thisError = e.toString();
+        } finally {
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString","no error",referenceError( thisError ) );
+        
+        }
+    }
     return array;
 }
 
-
-
-
-
-
-}
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
     this.minutes = 0;
     this.seconds = 0;
     this.ms = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_23_10.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_23_10.as
@@ -82,19 +82,21 @@ function addTestCase( startTime, setTime
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,    DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,     DateCase.getDate() );
     array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,      DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,    DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,  DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,  DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,       DateCase.getMilliseconds() );
 
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
     
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
     return array;
 }
 
 
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_23_11.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_23_11.as
@@ -83,19 +83,21 @@ function addTestCase( startTime, setTime
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,    DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,     DateCase.getDate() );
     array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,      DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,    DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,  DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,  DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,       DateCase.getMilliseconds() );
 
-
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_23_12.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_23_12.as
@@ -84,19 +84,21 @@ function addTestCase( startTime, setTime
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,    DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,     DateCase.getDate() );
     array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,      DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,    DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,  DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,  DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,       DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
     this.minutes = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_23_13.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_23_13.as
@@ -83,19 +83,21 @@ function addTestCase( startTime, setTime
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,    DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,     DateCase.getDate() );
     array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,      DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,    DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,  DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,  DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,       DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
     this.minutes = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_23_14.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_23_14.as
@@ -83,19 +83,21 @@ function addTestCase( startTime, setTime
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,    DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,     DateCase.getDate() );
     array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,      DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,    DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,  DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,  DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,       DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
     this.minutes = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_23_15.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_23_15.as
@@ -81,18 +81,21 @@ function addTestCase( startTime, setTime
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,    DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,     DateCase.getDate() );
     array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,      DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,    DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,  DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,  DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,       DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
     this.minutes = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_23_16.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_23_16.as
@@ -82,19 +82,21 @@ function addTestCase( startTime, setTime
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,    DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,     DateCase.getDate() );
     array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,      DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,    DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,  DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,  DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,       DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
     this.minutes = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_23_17.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_23_17.as
@@ -82,19 +82,22 @@ function addTestCase( startTime, setTime
     array[item++] = new TestCase( SECTION, "DateString+.getFullYear()",         LocalDate.year,     DateCase.getFullYear() );
     array[item++] = new TestCase( SECTION, "DateString+.getMonth()",            LocalDate.month,    DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,     DateCase.getDate() );
     array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,      DateCase.getDay() );
     array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,    DateCase.getHours() );
     array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,  DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,  DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,       DateCase.getMilliseconds() );
-
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
     this.minutes = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_23_18.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_23_18.as
@@ -82,19 +82,21 @@ function addTestCase( startTime, setTime
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,    DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,     DateCase.getDate() );
     array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,      DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,    DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,  DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,  DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,       DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
     this.minutes = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_23_3_rt.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_23_3_rt.as
@@ -46,26 +46,41 @@ writeHeaderToLog( SECTION + " "+ TITLE);
 var testcases = getTestCases();
 test();
 
 function getTestCases() {
     var array = new Array();
     var item = 0;
     
     var MYDATE = new MyDate(TIME_1970);
-    thisError = "no error thrown";
-    try {
-    	MYDATE.setTime(TIME_2000);
+    
+    if (as3Enabled) {
+        MYDATE.setTime(TIME_2000)
+        array[item++] = new TestCase(SECTION,
+                                "MYDATE.setTime(TIME_2000)",
+                                TIME_2000,
+                                MYDATE.getTime());
+    } else {
+        thisError = "no error thrown";
+        try {
+            MYDATE.setTime(TIME_2000);
+        }
+        catch(e){
+            thisError=e.toString();
+        }
+        finally {
+            trace(thisError)
+            array[item++] = new TestCase(SECTION,
+                                "MYDATE.setTime(TIME_2000)",
+                                "TypeError: Error #1034",
+                                typeError(thisError));
+        }
     }
-    catch(e){
-    	thisError=e.toString();
-    }
-    finally {
-    	array[item++] = new TestCase(SECTION, "MYDATE.setTime(TIME_2000)", "TypeError: Error #1034", typeError(thisError));
-    }
+    
     return array;
 }
 
 function MyDate(value) {
     this.value = value;
     this.setTime = Date.prototype.setTime;
+    this.getTime = Date.prototype.getTime;
     return this;
 }
--- a/test/acceptance/ecma3/Date/e15_9_5_24_1.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_24_1.as
@@ -77,19 +77,21 @@ function addTestCase( startms, newms ) {
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,      DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,       DateCase.getDate() );
 //    array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,        DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,      DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_24_2.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_24_2.as
@@ -77,18 +77,20 @@ function addTestCase( startms, newms ) {
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,      DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,       DateCase.getDate() );
 //    array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,        DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,      DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
     
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_24_3.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_24_3.as
@@ -76,18 +76,21 @@ function addTestCase( startms, newms ) {
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,      DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,       DateCase.getDate() );
 //    array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,        DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,      DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_24_4.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_24_4.as
@@ -76,19 +76,21 @@ function addTestCase( startms, newms ) {
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,      DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,       DateCase.getDate() );
 //    array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,        DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,      DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_24_5.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_24_5.as
@@ -78,19 +78,21 @@ function addTestCase( startms, newms ) {
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,      DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,       DateCase.getDate() );
 //    array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,        DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,      DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_24_6.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_24_6.as
@@ -76,18 +76,21 @@ function addTestCase( startms, newms ) {
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,      DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,       DateCase.getDate() );
 //    array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,        DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,      DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
+    
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_24_7.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_24_7.as
@@ -77,18 +77,20 @@ function addTestCase( startms, newms ) {
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,      DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,       DateCase.getDate() );
 //    array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,        DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,      DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
     
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_24_8.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_24_8.as
@@ -75,18 +75,20 @@ function addTestCase( startms, newms ) {
     array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,      DateCase.getMonth() );
     array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,       DateCase.getDate() );
 //    array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,        DateCase.getDay() );
     array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,      DateCase.getHours() );
     array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
     array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
     array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
 
-    DateCase.toString = Object.prototype.toString;
-	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    if (!as3Enabled) {
+        DateCase.toString = Object.prototype.toString;
+        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+    }
     
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_2_2_rt.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_2_2_rt.as
@@ -45,33 +45,41 @@
     var testcases = getTestCases();
     test();
     
 function getTestCases() {
     var array = new Array();
     var item = 0;    
 
     var OBJ = new MyObject( new Date(0) );
-    thisError="no Error thrown";
-    try{
-        OBJ.toString();
-       }
-    catch(e){
-             thisError=e.toString();
-            }
-    finally{
-
-    /*array[item++] = new TestCase( SECTION,
+    
+    if (as3Enabled) {
+        array[item++] = new TestCase(SECTION,
                                     "var OBJ = new MyObject( new Date(0) ); OBJ.toString()",
-                                    "error",
-                                    OBJ.toString() );*/
-     array[item++] = new TestCase( SECTION,
-                                    "var OBJ = new MyObject( new Date(0) ); OBJ.toString()",
-                                    "TypeError: Error #1034",
-                                    typeError(thisError) );
+                                    "Invalid Date",
+                                    OBJ.toString());
+    } else {
+        thisError="no Error thrown";
+        try{
+            OBJ.toString();
+           }
+        catch(e){
+                 thisError=e.toString();
+                }
+        finally{
+    
+        /*array[item++] = new TestCase( SECTION,
+                                        "var OBJ = new MyObject( new Date(0) ); OBJ.toString()",
+                                        "error",
+                                        OBJ.toString() );*/
+         array[item++] = new TestCase( SECTION,
+                                        "var OBJ = new MyObject( new Date(0) ); OBJ.toString()",
+                                        "TypeError: Error #1034",
+                                        typeError(thisError) );
+        }
     }
            
     return array;           
 }
 function MyObject( value ) {
     this.value = value;
     this.valueOf = function() { return this.value };
     this.toString = Date.prototype.toString;
--- a/test/acceptance/ecma3/Date/e15_9_5_30_1.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_30_1.as
@@ -133,24 +133,26 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-    
-    
-        array[item++] = new TestCase( SECTION,
-                                          DateString+".myToString=Object.prototype.toString;"+DateString+".myToString()",
-                                          "[object Date]",
-                                          (DateCase.myToString = Object.prototype.toString, DateCase.myToString()) );
+        if (!as3Enabled) {
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        
+        
+            array[item++] = new TestCase( SECTION,
+                                              DateString+".myToString=Object.prototype.toString;"+DateString+".myToString()",
+                                              "[object Date]",
+                                              (DateCase.myToString = Object.prototype.toString, DateCase.myToString()) );
+        }
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_31_1.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_31_1.as
@@ -149,23 +149,25 @@ function getTestCases() {
 	} else if (hours == 23 && LocalDate.hours == 0) {
 		hours = 0;
 	}
         array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,      hours );
         array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-    
-        array[item++] = new TestCase( SECTION,
-                                          "Date.prototype.toString()",
-                                          "[object Date]",
-                                          (DateCase.myToString = Object.prototype.toString,DateCase.myToString()) );
+        if (!as3Enabled) {
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        
+            array[item++] = new TestCase( SECTION,
+                                              "Date.prototype.toString()",
+                                              "[object Date]",
+                                              (DateCase.myToString = Object.prototype.toString,DateCase.myToString()) );
+        }
     }
     return array;
 }    
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_32_1.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_32_1.as
@@ -91,23 +91,25 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, DateString + ".getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, DateString + ".getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, DateString + ".getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, DateString + ".getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, DateString + ".getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, DateString + ".getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, DateString + ".getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        DateCase.toString = Object.prototype.toString;
-        array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-    
-        array[item++] = new TestCase( SECTION,
-                                          "DateString.toString=Object.prototype.toString;DateString.toString()",
-                                          "[object Date]",
-                                          (DateCase.myToString = Object.prototype.toString, DateCase.myToString()));
+        if (!as3Enabled) {
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        
+            array[item++] = new TestCase( SECTION,
+                                              "DateString.toString=Object.prototype.toString;DateString.toString()",
+                                              "[object Date]",
+                                              (DateCase.myToString = Object.prototype.toString, DateCase.myToString()));
+        }
     }
     return array;
 }
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_33_1.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_33_1.as
@@ -90,26 +90,25 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "Date.getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, "Date.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "Date.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "Date.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "Date.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "Date.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "Date.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          "Date.toString=Object.prototype.toString;"+DateString+".toString()",
-                                          "[object Date]",
-                                          (DateCase.myToString = Object.prototype.toString, DateCase.myToString()) );
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-    
-    
-      
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              "Date.toString=Object.prototype.toString;"+DateString+".toString()",
+                                              "[object Date]",
+                                              (DateCase.myToString = Object.prototype.toString, DateCase.myToString()) );
+        
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
     }
     return array;
 }
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
     this.hours = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_34_1.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_34_1.as
@@ -155,28 +155,26 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, DateString+".getFullYear()",         true, LocalDate.year ==       DateCase.getFullYear() );
         array[item++] = new TestCase( SECTION, DateString+".getMonth()",            true, LocalDate.month ==      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, DateString+".getDate()",             true, LocalDate.date ==       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, DateString+".getDay()",              true, LocalDate.day ==        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, DateString+".getHours()",            true, LocalDate.hours ==      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          true, LocalDate.minutes ==    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          true, LocalDate.seconds ==    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     true, LocalDate.ms ==         DateCase.getMilliseconds() );
-    
-         array[item++] = new TestCase( SECTION,
-                                          DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
-                                          "[object Date]",(DateCase.myString=Object.prototype.toString,
-                                          DateCase.myString()) );
-                         
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
-                       
-    
-    
-    
+        
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                             DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
+                                             "[object Date]",(DateCase.myString=Object.prototype.toString,
+                                             DateCase.myString()) );
+                            
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
+        }
     }
 
     function addNewTestCase1( DateString, UTCDate, LocalDate) {
         var TDATE:Date = new Date(0);
     	(TDATE).setMonth(11);
         var DateCase:Date = new Date()
     	DateCase = TDATE;
         var thisError:String = "no error";
@@ -197,24 +195,26 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, DateString+".getMonth()",            true, LocalDate.month ==      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, DateString+".getDate()",             true, LocalDate.date ==     DateCase.getDate() );
         array[item++] = new TestCase( SECTION, DateString+".getDay()",              true, LocalDate.day ==       DateCase.getDay() );
         array[item++] = new TestCase( SECTION, DateString+".getHours()",            true, LocalDate.hours ==     DateCase.getHours() );
         array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          true, LocalDate.minutes == DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          true, LocalDate.seconds ==   DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     true, LocalDate.ms ==      DateCase.getMilliseconds() );
     
-         array[item++] = new TestCase( SECTION,
-                                          DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
-                                          "[object Date]",(DateCase.myString=Object.prototype.toString,
-                                          DateCase.myString()) );
     
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
-     
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
+                                              "[object Date]",(DateCase.myString=Object.prototype.toString,
+                                              DateCase.myString()) );
+        
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
+        }
     
     }
     
     function addNewTestCase2( DateString, UTCDate, LocalDate) {
         var TDATE:Date = new Date(now);
     	(TDATE).setMonth(11,31);
         var DateCase:Date = new Date();
     	DateCase = TDATE;
@@ -236,23 +236,24 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, DateString+".getMonth()",            true, LocalDate.month ==      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, DateString+".getDate()",             true, LocalDate.date ==       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, DateString+".getDay()",              true, LocalDate.day ==        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, DateString+".getHours()",            true, LocalDate.hours ==      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          true, LocalDate.minutes ==    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          true, LocalDate.seconds ==    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     true, LocalDate.ms ==         DateCase.getMilliseconds() );
     
-      array[item++] = new TestCase( SECTION,
-                                          DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
-                                          "[object Date]",(DateCase.myString = Object.prototype.toString,DateCase.myString()) );
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
-                          
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                            DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
+                                            "[object Date]",(DateCase.myString = Object.prototype.toString,DateCase.myString()) );
+            
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
+        }
     }
     
     function addNewTestCase5( DateString, UTCDate, LocalDate) {
         var TDATE:Date = new Date(now);
     	(TDATE).setMonth(1);
         var DateCase:Date = new Date();
     	DateCase = TDATE;
         var thisError:String = "no error";
@@ -273,23 +274,24 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, DateString+".getMonth()",            true, LocalDate.month ==      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, DateString+".getDate()",             true, LocalDate.date ==       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, DateString+".getDay()",              true, LocalDate.day ==        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, DateString+".getHours()",            true, LocalDate.hours ==      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          true, LocalDate.minutes ==    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          true, LocalDate.seconds ==    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     true, LocalDate.ms ==         DateCase.getMilliseconds() );
     
-      array[item++] = new TestCase( SECTION,
-                                          DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
-                                          "[object Date]",(DateCase.myString = Object.prototype.toString,DateCase.myString()) );
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
-     
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                            DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
+                                            "[object Date]",(DateCase.myString = Object.prototype.toString,DateCase.myString()) );
+            
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
+        }
     
     }
     
     
     function addNewTestCase3( DateString, UTCDate, LocalDate) {
         //DateCase = eval( DateString );
         var TDATE:Date = new Date(0);
     	(TDATE).setMonth(0,1);
@@ -313,23 +315,24 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, DateString+".getMonth()",            true, LocalDate.month ==      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, DateString+".getDate()",             true, LocalDate.date ==       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, DateString+".getDay()",              true, LocalDate.day ==        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, DateString+".getHours()",            true, LocalDate.hours ==      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          true, LocalDate.minutes ==    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          true, LocalDate.seconds ==    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     true, LocalDate.ms ==         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
-                                          "[object Date]",(DateCase.myString=Object.prototype.toString,DateCase.myString()) );
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
-     
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
+                                              "[object Date]",(DateCase.myString=Object.prototype.toString,DateCase.myString()) );
+        
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
+        }
     
     
     }
     
     
     function addNewTestCase4( DateString, UTCDate, LocalDate) {
         //DateCase = eval( DateString );
         var TDATE:Date = new Date(TIME_1900);
@@ -354,24 +357,25 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, DateString+".getMonth()",            true, LocalDate.month ==      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, DateString+".getDate()",             true, LocalDate.date ==       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, DateString+".getDay()",              true, LocalDate.day ==        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, DateString+".getHours()",            true, LocalDate.hours ==      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          true, LocalDate.minutes ==    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          true, LocalDate.seconds ==    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     true, LocalDate.ms ==         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
-                                          "[object Date]",(DateCase.myString=Object.prototype.toString,
-                                          DateCase.myString() ));
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
-     
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
+                                              "[object Date]",(DateCase.myString=Object.prototype.toString,
+                                              DateCase.myString() ));
+        
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
+        }
     
     }
     function addNewTestCase6( DateString, UTCDate, LocalDate) {
     
         var TDATE:Date = new Date(TIME_1900);
         (TDATE).setMonth(1);
         var DateCase:Date = new Date();
     	DateCase = TDATE;
@@ -393,24 +397,25 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, DateString+".getMonth()",            true, LocalDate.month ==      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, DateString+".getDate()",             true, LocalDate.date ==       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, DateString+".getDay()",              true, LocalDate.day ==        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, DateString+".getHours()",            true, LocalDate.hours ==      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          true, LocalDate.minutes ==    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          true, LocalDate.seconds ==    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     true, LocalDate.ms ==         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
-                                          "[object Date]",(DateCase.myString=Object.prototype.toString,
-                                          DateCase.myString() ));
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
-                          
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
+                                              "[object Date]",(DateCase.myString=Object.prototype.toString,
+                                              DateCase.myString() ));
+        
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
+        }
     }
     
     function addNewTestCase8( DateString, UTCDate, LocalDate) {
     
         var TDATE:Date = new Date(TIME_2000);
         (TDATE).setMonth(11,31);
         var DateCase:Date = new Date();
     	DateCase = TDATE;
@@ -432,24 +437,25 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, DateString+".getMonth()",            true, LocalDate.month ==      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, DateString+".getDate()",             true, LocalDate.date ==       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, DateString+".getDay()",              true, LocalDate.day ==        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, DateString+".getHours()",            true, LocalDate.hours ==      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          true, LocalDate.minutes ==    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          true, LocalDate.seconds ==    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     true, LocalDate.ms ==         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
-                                          "[object Date]",(DateCase.myString=Object.prototype.toString,
-                                          DateCase.myString() ));
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
-                          
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
+                                              "[object Date]",(DateCase.myString=Object.prototype.toString,
+                                              DateCase.myString() ));
+        
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
+        }
     }
     function addNewTestCase7( DateString, UTCDate, LocalDate) {
     
         var TDATE:Date = new Date(TIME_2000);
         (TDATE).setMonth(1);
         var DateCase:Date = new Date();
     	DateCase = TDATE;
         var thisError:String = "no error";
@@ -470,24 +476,25 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, DateString+".getMonth()",            true, LocalDate.month ==      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, DateString+".getDate()",             true, LocalDate.date ==       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, DateString+".getDay()",              true, LocalDate.day ==        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, DateString+".getHours()",            true, LocalDate.hours ==      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, DateString+".getMinutes()",          true, LocalDate.minutes ==    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, DateString+".getSeconds()",          true, LocalDate.seconds ==    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, DateString+".getMilliseconds()",     true, LocalDate.ms ==         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
-                                          "[object Date]",(DateCase.myString=Object.prototype.toString,
-                                          DateCase.myString() ));
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
-                          
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
+                                              "[object Date]",(DateCase.myString=Object.prototype.toString,
+                                              DateCase.myString() ));
+        
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,DateString+".toString=Object.prototype.toString;"+DateString+".toString()","[object Date]", DateCase.toString() );
+        }
     }
 
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_35_1.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_35_1.as
@@ -106,24 +106,24 @@ function getTestCases() {
 		hours = 0;
 	}
         array[item++] = new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,      hours );
 
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-       array[item++] = new TestCase( SECTION,
-                                          "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()) );
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-       
-    
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                               "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
+                                               "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()) );
+         
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
     }
     return array;
 }
     
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_36_1.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_36_1.as
@@ -175,25 +175,24 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "DateString+.getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-                           
-        array[item++] = new TestCase( SECTION,
-                                          "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()) );
-    
-        
+        if (!as3Enabled) {
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+                               
+            array[item++] = new TestCase( SECTION,
+                                              "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
+                                              "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()) );
+        }
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_36_2.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_36_2.as
@@ -159,24 +159,24 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "DateString+.getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()) );
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-       
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
+                                              "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()) );
         
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_36_3.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_36_3.as
@@ -145,23 +145,24 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "DateString+.getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()) );
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-       
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
+                                              "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()) );
+        
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
         
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_36_4.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_36_4.as
@@ -132,23 +132,24 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "DateString+.getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()));
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-       
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
+                                              "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()));
+        
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_36_5.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_36_5.as
@@ -130,23 +130,24 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "DateString+.getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()));
-        
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-       
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
+                                              "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()));
+            
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
         
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_36_6.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_36_6.as
@@ -109,25 +109,24 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "DateString+.getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()));
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-       
-    
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
+                                              "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()));
         
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_36_7.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_36_7.as
@@ -88,25 +88,25 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "DateString+.getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,
-                                          DateCase.myToString()));
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-       
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
+                                              "[object Date]",(DateCase.myToString=Object.prototype.toString,
+                                              DateCase.myToString()));
         
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_37_1.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_37_1.as
@@ -210,26 +210,24 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
       
-    
-        array[item++] = new TestCase( SECTION,
-                                          "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()));
-                       
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-       
-    
-        
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
+                                              "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()));
+                           
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_37_2.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_37_2.as
@@ -138,24 +138,25 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "DateString+.getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          "DateString+.myToString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,
-                                          DateCase.myToString()));
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-       
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              "DateString+.myToString=Object.prototype.toString;+DateString+.toString()",
+                                              "[object Date]",(DateCase.myToString=Object.prototype.toString,
+                                              DateCase.myToString()));
+        
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
         
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_37_3.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_37_3.as
@@ -119,24 +119,25 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "DateString+.getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-         array[item++] = new TestCase( SECTION,
-                                          "DateString+.myToString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,
-                                          DateCase.myToString()));
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-    
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                             "DateString+.myToString=Object.prototype.toString;+DateString+.toString()",
+                                             "[object Date]",(DateCase.myToString=Object.prototype.toString,
+                                             DateCase.myToString()));
+            
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_37_4.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_37_4.as
@@ -106,24 +106,24 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "DateString+.getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()));
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-       
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              "DateString+.toString=Object.prototype.toString;+DateString+.toString()",
+                                              "[object Date]",(DateCase.myToString=Object.prototype.toString,DateCase.myToString()));
         
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
     this.date = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_37_5.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_37_5.as
@@ -91,24 +91,25 @@ function getTestCases() {
         array[item++] = new TestCase( SECTION, "DateString+.getMonth()",            LocalDate.month,      DateCase.getMonth() );
         array[item++] = new TestCase( SECTION, "DateString+.getDate()",             LocalDate.date,       DateCase.getDate() );
         array[item++] = new TestCase( SECTION, "DateString+.getDay()",              LocalDate.day,        DateCase.getDay() );
         array[item++] = new TestCase( SECTION, "DateString+.getHours()",            LocalDate.hours,      DateCase.getHours() );
         array[item++] = new TestCase( SECTION, "DateString+.getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
         array[item++] = new TestCase( SECTION, "DateString+.getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
         array[item++] = new TestCase( SECTION, "DateString+.getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
     
-        array[item++] = new TestCase( SECTION,
-                                          "DateString+.myToString=Object.prototype.toString;+DateString+.toString()",
-                                          "[object Date]",(DateCase.myToString=Object.prototype.toString,
-                                          DateCase.myToString()));
-    
-        DateCase.toString = Object.prototype.toString;
-    	array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
-       
+        if (!as3Enabled) {
+            array[item++] = new TestCase( SECTION,
+                                              "DateString+.myToString=Object.prototype.toString;+DateString+.toString()",
+                                              "[object Date]",(DateCase.myToString=Object.prototype.toString,
+                                              DateCase.myToString()));
+        
+            DateCase.toString = Object.prototype.toString;
+            array[item++]  =new TestCase(SECTION,"DateCase.toString = Object.prototype.toString; DateCase.toString()","[object Date]", DateCase.toString() );
+        }
         
     }
     return array;
 }
 
 function MyDate() {
     this.year = 0;
     this.month = 0;
--- a/test/acceptance/ecma3/Date/e15_9_5_3_1_rt.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_3_1_rt.as
@@ -44,37 +44,38 @@
 
     var testcases = getTestCases();
     test();
     
 function getTestCases() {
     var array = new Array();
     var item = 0;    
 
-    //var OBJ = new MyObject( new Date(0) );
-    thisError="no error thrown";
-    try{
+    if (as3Enabled) {
         var OBJ = new MyObject( new Date(0) );
-        OBJ.valueOf();
-       }
-    catch(e){
-             thisError=e.toString();
-            }
-    finally{
-
-
-    /*array[item++] = new TestCase( SECTION,
-                                    "var OBJ = new MyObject( new Date(0) ); OBJ.valueOf()",
-                                    "error",
-                                    OBJ.valueOf() );*/
-    array[item++] = new TestCase( SECTION,
-                                    "var OBJ = new MyObject( new Date(0) ); OBJ.valueOf()",
-                                    "TypeError: Error #1034",
-                                    typeError(thisError));
-
+        array[item++] = new TestCase( SECTION,
+                                        "var OBJ = new MyObject( new Date(0) ); OBJ.valueOf()",
+                                        NaN,
+                                        OBJ.valueOf());
+    } else {
+        thisError="no error thrown";
+        try{
+            var OBJ = new MyObject( new Date(0) );
+            OBJ.valueOf();
+           }
+        catch(e){
+                 thisError=e.toString();
+                }
+        finally{
+        array[item++] = new TestCase( SECTION,
+                                        "var OBJ = new MyObject( new Date(0) ); OBJ.valueOf()",
+                                        "TypeError: Error #1034",
+                                        typeError(thisError));
+    
+        }
     }
     return array;
 }
 
 function MyObject( value ) {
     this.value = value;
     this.valueOf = Date.prototype.valueOf;
 //  The following line causes an infinte loop.
--- a/test/acceptance/ecma3/Date/e15_9_5_4_2_rt.as
+++ b/test/acceptance/ecma3/Date/e15_9_5_4_2_rt.as
@@ -45,24 +45,34 @@ startTest();
 writeHeaderToLog(SECTION + " " + TITLE);
 var testcases = getTestCases();
 test();
 
 function getTestCases() {
     var array = new Array();
     var item = 0;
     var MYDATE = new MyDate(TIME_2000);
-    thisError = "no error thrown";
-    try {
-    	MYDATE.getTime();
-    }
-    catch(e) {
-    	thisError = e.toString();
-    }
-    finally {
-    	array[item++] = new TestCase(SECTION, "MYDATE.getTime()", "TypeError: Error #1034", typeError(thisError));
+    
+    if (as3Enabled) {
+        array[item++] = new TestCase(SECTION, "MYDATE.getTime()",
+                                         NaN,
+                                         MYDATE.getTime());
+    } else {
+        
+        thisError = "no error thrown";
+        try {
+            MYDATE.getTime();
+        }
+        catch(e) {
+            thisError = e.toString();
+        }
+        finally {
+            array[item++] = new TestCase(SECTION, "MYDATE.getTime()",
+                                         "TypeError: Error #1034",
+                                         typeError(thisError));
+        }
     }
     return array;
 }
 function MyDate( value ) {
     this.value = value;
     this.getTime = Date.prototype.getTime;
 }
--- a/test/acceptance/ecma3/Exceptions/boolean_001_rt.as
+++ b/test/acceptance/ecma3/Exceptions/boolean_001_rt.as
@@ -46,103 +46,108 @@
 function getTestCases() {
     var array = new Array();
     var item = 0;    
 
     var exception = "No exception thrown";
 
     var TO_STRING = Boolean.prototype.toString;
 
+    var expectedError = 1056;
+    if (as3Enabled) {
+        expectedError = 1037;
+    }
+
     try {
         var s = new String("Not a Boolean");
         s.toString = TO_STRING;
         s.toString();
     } catch ( e ) {
         exception = e.toString();
     }finally{
 
     array[item++] = new TestCase(
         SECTION,
         "Assigning Boolean.prototype.toString to a String object ",
-		REFERENCEERROR+1056,
-		referenceError( exception ) );
+        REFERENCEERROR+expectedError,
+        referenceError( exception ) );
     }
-	// new Boolean()
+    // new Boolean()
     try {
         var b = new Boolean();
         b.toString = TO_STRING;
         b.toString();
     } catch ( e1 ) {
         exception = e1.toString();
     }finally{
 
     array[item++] = new TestCase(
         SECTION,
         "Assigning Boolean.prototype.toString to an instance of new Boolean()",
-		REFERENCEERROR+1056,
-		referenceError( exception ) );
+        REFERENCEERROR+expectedError,
+        referenceError( exception ) );
 
     }
-	// new Boolean(true)
+    // new Boolean(true)
     try {
         var b = new Boolean(true);
         b.toString = TO_STRING;
         b.toString();
     } catch ( e2 ) {
         exception = e2.toString();
     }finally{
 
     array[item++] = new TestCase(
         SECTION,
         "Assigning Boolean.prototype.toString to an instance of new Boolean(true)",
-		REFERENCEERROR+1056,
-		referenceError( exception ) );
+        REFERENCEERROR+expectedError,
+        referenceError( exception ) );
 
     }
-	// new Boolean(false)
+    // new Boolean(false)
     try {
         var b = new Boolean(false);
         b.toString = TO_STRING;
         b.toString();
     } catch ( e3 ) {
         exception = e3.toString();
     }finally{
 
     array[item++] = new TestCase(
         SECTION,
         "Assigning Boolean.prototype.toString to an instance of new Boolean(false)",
-		REFERENCEERROR+1056,
-		referenceError( exception ) );
+        REFERENCEERROR+expectedError,
+        referenceError( exception ) );
     }
 
-	// true
+    // true
     try {
         var b = true;
         b.toString = TO_STRING;
         b.toString();
     } catch ( e4 ) {
         exception = e4.toString();
     }finally{
 
     array[item++] = new TestCase(
         SECTION,
         "Assigning Boolean.prototype.toString to an instance of 'true'",
-		REFERENCEERROR+1056,
-		referenceError( exception ) );
+        REFERENCEERROR+expectedError,
+        referenceError( exception ) );
     }
 
-	// false
+    // false
     try {
         var b = false;
         b.toString = TO_STRING;
         b.toString();
     } catch ( e5 ) {
         exception = e5.toString();
     }finally{
 
     array[item++] = new TestCase(
         SECTION,
         "Assigning Boolean.prototype.toString to an instance of 'false'",
-		REFERENCEERROR+1056,
-		referenceError( exception ) );
+        REFERENCEERROR+expectedError,
+        referenceError( exception ) );
     }
     return array;
 }
--- a/test/acceptance/ecma3/Exceptions/boolean_002_rt.as
+++ b/test/acceptance/ecma3/Exceptions/boolean_002_rt.as
@@ -46,105 +46,110 @@
 function getTestCases() {
     var array = new Array();
     var item = 0;
     
     var exception = "No exception thrown";
     var result = "Failed";
 
     var VALUE_OF = Boolean.prototype.valueOf;
+    
+    var expectedError = 1056;
+    if (as3Enabled) {
+        expectedError = 1037;
+    }
 
-	// non-boolean type
+    // non-boolean type
     try {
         var s = new String("Not a Boolean");
         s.valueOf = VALUE_OF;
         s.valueOf();
     } catch ( e ) {
         exception = e.toString();
     }finally{
 
     array[item++] = new TestCase(
         SECTION,
         "Assigning Boolean.prototype.valueOf to a String object ",
-		REFERENCEERROR+1056,
-		referenceError( exception ) );
+        REFERENCEERROR+expectedError,
+        referenceError( exception ) );
     }
-	// new Boolean()
+    // new Boolean()
     try {
         var b = new Boolean();
         b.valueOf= VALUE_OF;
         b.valueOf();
     } catch ( e1 ) {
         exception = e1.toString();
     }finally{
 
     array[item++] = new TestCase(
         SECTION,
         "Assigning Boolean.prototype.valueOf to an instance of new Boolean()",
-		REFERENCEERROR+1056,
-		referenceError( exception ) );
+        REFERENCEERROR+expectedError,
+        referenceError( exception ) );
     }
 
-	// new Boolean(true)
+    // new Boolean(true)
     try {
         var b = new Boolean(true);
         b.valueOf =  VALUE_OF;
         b.valueOf();
     } catch ( e2 ) {
         exception = e2.toString();
     }finally{
 
     array[item++] = new TestCase(
         SECTION,
         "Assigning Boolean.prototype.valueOf to an instance of new Boolean(true)",
-		REFERENCEERROR+1056,
-		referenceError( exception ) );
+        REFERENCEERROR+expectedError,
+        referenceError( exception ) );
     }
 
-	// new Boolean(false)
+    // new Boolean(false)
     try {
         var b = new Boolean(false);
         b.valueOf = VALUE_OF;
         b.valueOf ();
     } catch ( e3 ) {
         exception = e3.toString();
     }finally{
 
     array[item++] = new TestCase(
         SECTION,
         "Assigning Boolean.prototype.valueOf to an instance of new Boolean(false)",
-		REFERENCEERROR+1056,
-		referenceError( exception ) );
+        REFERENCEERROR+expectedError,
+        referenceError( exception ) );
     }
 
-	// true
+    // true
     try {
         var b = true;
         b.valueOf = VALUE_OF;
         b.valueOf ();
     } catch ( e4 ) {
         exception = e4.toString();
     }finally{
 
     array[item++] = new TestCase(
         SECTION,
         "Assigning Boolean.prototype.valueOf to an instance of 'true'",
-		REFERENCEERROR+1056,
-		referenceError( exception ) );
+        REFERENCEERROR+expectedError,
+        referenceError( exception ) );
 
     }
-	// false
+    // false
     try {
         var b = false;
         b.valueOf = VALUE_OF;
         b.valueOf();
     } catch ( e5 ) {
         exception = e5.toString();
     }finally{
 
     array[item++] = new TestCase(
         SECTION,
         "Assigning Boolean.prototype.valueOf to an instance of 'false'",
-		REFERENCEERROR+1056,
-		referenceError( exception ) );
+        REFERENCEERROR+expectedError,
+        referenceError( exception ) );
     }
     return array;
 }
--- a/test/acceptance/ecma3/Exceptions/date_001_rt.as
+++ b/test/acceptance/ecma3/Exceptions/date_001_rt.as
@@ -43,33 +43,42 @@
 
     var testcases = getTestCases();
     test();
     
 function getTestCases() {
     var array = new Array();
     var item = 0;    
 
-    var result = "Failed";
-    var exception = "No exception thrown";
-    var expect = "Passed";
-
-    try {
-    var OBJ = new MyObject( new Date(0) );
-        result = OBJ.toString();
-    } catch ( e ) {
-        result = expect;
-        exception = e.toString();
-    }finally{
-
-    array[item++] = new TestCase(
-        SECTION,
-        "OBJECT = new MyObject( new Date(0)) ; result = OBJ.toString()",
-		"TypeError: Error #1034",
-		typeError( exception ));
+    if (as3Enabled) {
+        var OBJ = new MyObject( new Date(0) );
+        array[item++] = new TestCase(
+            SECTION,
+            "OBJECT = new MyObject( new Date(0)) ; OBJ.toString()",
+            "Invalid Date",
+            OBJ.toString());
+    } else {
+        var result = "Failed";
+        var exception = "No exception thrown";
+        var expect = "Passed";
+        
+        try {
+        var OBJ = new MyObject( new Date(0) );
+            result = OBJ.toString();
+        } catch ( e ) {
+            result = expect;
+            exception = e.toString();
+        }finally{
+    
+        array[item++] = new TestCase(
+            SECTION,
+            "OBJECT = new MyObject( new Date(0)) ; result = OBJ.toString()",
+            "TypeError: Error #1034",
+            typeError( exception ));
+        }
     }
     return array;
 }
 
 function MyObject( value ) {
     this.value = value;
     this.valueOf = function(){ return this.value;}
     this.toString = Date.prototype.toString;
--- a/test/acceptance/ecma3/Exceptions/date_002_rt.as
+++ b/test/acceptance/ecma3/Exceptions/date_002_rt.as
@@ -43,33 +43,42 @@
 
     var testcases = getTestCases();
     test();
     
 function getTestCases() {
     var array = new Array();
     var item = 0;    
 
-    var result = "Failed";
-    var exception = "No exception thrown";
-    var expect = "Passed";
-
-    try {
+    if (as3Enabled) {
         var MYDATE = new MyDate();
-        result = MYDATE.setTime(0);
-    } catch ( e ) {
-        result = expect;
-        exception = e.toString();
-    }finally{
-
-    array[item++] = new TestCase(
-        SECTION,
-        "MYDATE = new MyDate(); MYDATE.setTime(0)",
-		TYPEERROR+1034,
-		typeError(exception) );
+        array[item++] = new TestCase(
+            SECTION,
+            "MYDATE = new MyDate(); MYDATE.setTime(0)",
+            0,
+            MYDATE.setTime(0));
+    } else {
+        var result = "Failed";
+        var exception = "No exception thrown";
+        var expect = "Passed";
+    
+        try {
+            var MYDATE = new MyDate();
+            result = MYDATE.setTime(0);
+        } catch ( e ) {
+            result = expect;
+            exception = e.toString();
+        }finally{
+    
+        array[item++] = new TestCase(
+            SECTION,
+            "MYDATE = new MyDate(); MYDATE.setTime(0)",
+            TYPEERROR+1034,
+            typeError(exception) );
+        }
     }
     return array;
 }
 
 function MyDate(value) {
     this.value = value;
     this.setTime = Date.prototype.setTime;
     return this;
--- a/test/acceptance/ecma3/Exceptions/date_003_rt.as
+++ b/test/acceptance/ecma3/Exceptions/date_003_rt.as
@@ -43,33 +43,42 @@
 
     var testcases = getTestCases();
     test();
     
 function getTestCases() {
     var array = new Array;
     var item = 0;    
 
-    var result = "Failed";
-    var exception = "No exception thrown";
-    var expect = "Passed";
-
-    try {
+    if (as3Enabled) {
         var OBJ = new MyObject( new Date(0) );
-        result = OBJ.valueOf();
-    } catch ( e ) {
-        result = expect;
-        exception = e.toString();
-    }finally{
-
-    array[item++] = new TestCase(
+        array[item++] = new TestCase(
         SECTION,
         "OBJ = new MyObject( new Date(0)); OBJ.valueOf()",
-		TYPEERROR+1034,
-		typeError(exception) );
+        NaN,
+        OBJ.valueOf());
+    } else {
+        var result = "Failed";
+        var exception = "No exception thrown";
+        var expect = "Passed";
+    
+        try {
+            var OBJ = new MyObject( new Date(0) );
+            result = OBJ.valueOf();
+        } catch ( e ) {
+            result = expect;
+            exception = e.toString();
+        }finally{
+    
+        array[item++] = new TestCase(
+            SECTION,
+            "OBJ = new MyObject( new Date(0)); OBJ.valueOf()",
+            TYPEERROR+1034,
+            typeError(exception) );
+        }
     }
     return array;
 }
 
 function MyObject( value ) {
     this.value = value;
     this.valueOf = Date.prototype.valueOf;
 //  The following line causes an infinte loop
--- a/test/acceptance/ecma3/Exceptions/date_004_rt.as
+++ b/test/acceptance/ecma3/Exceptions/date_004_rt.as
@@ -43,34 +43,44 @@
 
     var testcases = getTestCases();
     test();
     
 function getTestCases() {
     var array = new Array();
     var item = 0;    
 
-    var result = "Failed";
-    var exception = "No exception thrown";
-    var expect = "Passed";
-
-    try {
+    if (as3Enabled) {
         var MYDATE = new MyDate();
-        result = MYDATE.getTime();
-    } catch ( e ) {
-        result = expect;
-        exception = e.toString();
-    }finally{
-
-    array[item++] = new TestCase(
-        SECTION,
-        "MYDATE = new MyDate(); MYDATE.getTime()",
-		TYPEERROR+1034,
-		typeError( exception ) );
+        array[item++] = new TestCase(
+            SECTION,
+            "MYDATE = new MyDate(); MYDATE.getTime()",
+            NaN,
+            MYDATE.getTime());
+    } else {
+        var result = "Failed";
+        var exception = "No exception thrown";
+        var expect = "Passed";
+    
+        try {
+            var MYDATE = new MyDate();
+            result = MYDATE.getTime();
+        } catch ( e ) {
+            result = expect;
+            exception = e.toString();
+        }finally{
+    
+        array[item++] = new TestCase(
+            SECTION,
+            "MYDATE = new MyDate(); MYDATE.getTime()",
+            TYPEERROR+1034,
+            typeError( exception ) );
+        }
     }
+    
     return array;
 }
 
 function MyDate( value ) {
     this.value = value;
     this.getTime = Date.prototype.getTime;
 }
 
--- a/test/acceptance/ecma3/Exceptions/exception_003_rt.as
+++ b/test/acceptance/ecma3/Exceptions/exception_003_rt.as
@@ -43,16 +43,21 @@
 
     var testcases = getTestCases();
     test();
     
 function getTestCases() {
     var array = new Array();
     var item = 0;    
 
+    var expectedError = 1056;
+    if (as3Enabled) {
+        expectedError = 1037;
+    }
+
     Target_1();
 
     function Target_1() {
         result = "failed: no exception thrown";
         exception = null;
 
         try {
 
@@ -64,14 +69,14 @@ function getTestCases() {
             //result = "passed:  threw exception",
             result = e.toString();
         } finally {
             array[item++] = new TestCase(
                 SECTION,
                 "string = new String(\"hi\");"+
                 "string.toString = Boolean.prototype.toString" +
                 "string.toString()",
-				REFERENCEERROR+1056,
-				referenceError( result ) );
+                REFERENCEERROR+expectedError,
+                referenceError( result ) );
         }
     }
     return array;
 }
--- a/test/acceptance/ecma3/Number/e15_7_4_2_1_rt.as
+++ b/test/acceptance/ecma3/Number/e15_7_4_2_1_rt.as
@@ -43,73 +43,78 @@
     test();
 
 function getTestCases() {
     var array = new Array();
     var item = 0;
 
     var thisError="no error thrown";
     try{
-       	thisError = Number.prototype.toString();
+        thisError = Number.prototype.toString();
     }
     catch(e)
-	{
+    {
         thisError=e.toString();
     }finally{
-    	array[item++] = new TestCase(SECTION, "Number.prototype.toString()",       
-											  "0",       
-											  thisError);
+        array[item++] = new TestCase(SECTION, "Number.prototype.toString()",
+                                              "0",
+                                              thisError);
     }
 
     array[item++] = new TestCase(SECTION, "typeof(Number.prototype.toString())", "string",      typeof(Number.prototype.toString()) );
 
 
-    thisError="no error thrown";
-    try{
-       	s = Number.prototype.toString;
-       	o = new Number(); 
-    	o.toString = s;
+    var expectedError = 1056;
+    if (as3Enabled) {
+        expectedError = 1037;
     }
-    catch(e1)
-	{
-        thisError=e1.toString();
-    }finally{
-    	array[item++] = new TestCase(SECTION, "s = Number.prototype.toString",       
-											"ReferenceError: Error #1056",       
-											referenceError(thisError));
-    }
- 
+
     thisError="no error thrown";
     try{
         s = Number.prototype.toString;
-        o = new Number(1); 
+        o = new Number();
+        o.toString = s;
+    }
+    catch(e1)
+    {
+        thisError=e1.toString();
+    }finally{
+        array[item++] = new TestCase(SECTION, "s = Number.prototype.toString",
+                                            REFERENCEERROR+expectedError,
+                                            referenceError(thisError));
+    }
+
+    thisError="no error thrown";
+    try{
+        s = Number.prototype.toString;
+        o = new Number(1);
         o.toString = s;
     }
     catch(e2){
         thisError=e2.toString();
     }finally{
-    	array[item++] = new TestCase(SECTION, "s = Number.prototype.toString",       
-												"ReferenceError: Error #1056",       
-												referenceError(thisError));
+        array[item++] = new TestCase(SECTION, "s = Number.prototype.toString",
+                                                REFERENCEERROR+expectedError,
+                                                referenceError(thisError));
     }
-  
+
     thisError="no error thrown";
     try{
         s = Number.prototype.toString;
-        o = new Number(-1); 
-        o.toString = s; 
+        o = new Number(-1);
+        o.toString = s;
     }
     catch(e3){
         thisError=e3.toString();
     }finally{
-        array[item++] = new TestCase(SECTION, "s = Number.prototype.toString",       
-											"ReferenceError: Error #1056",       
-											referenceError(thisError));
+        array[item++] = new TestCase(SECTION, "s = Number.prototype.toString",
+                                            REFERENCEERROR+expectedError,
+                                            referenceError(thisError));
     }
-  
+
     var MYNUM = new Number(255);
     array[item++] = new TestCase(SECTION, "var MYNUM = new Number(255); MYNUM.toString(10)",          "255",      MYNUM.toString(10) );
 
     var MYNUM = new Number(Number.NaN);
     array[item++] = new TestCase(SECTION, "var MYNUM = new Number(Number.NaN); MYNUM.toString(10)",   "NaN",      MYNUM.toString(10) );
 
     var MYNUM = new Number(Infinity);
     array[item++] = new TestCase(SECTION, "var MYNUM = new Number(Infinity); MYNUM.toString(10)",   "Infinity",   MYNUM.toString(10) );
--- a/test/acceptance/ecma3/Number/e15_7_4_2_3_rt.as
+++ b/test/acceptance/ecma3/Number/e15_7_4_2_3_rt.as
@@ -42,24 +42,33 @@
     writeHeaderToLog( SECTION + " Number.prototype.toString()");
     test();
 
 function getTestCases() {
     var array:Array = new Array();
     var item:Number= 0;
     var thisError:String = "no error thrown";
     var o:String = new String();
+    
+    var expectedError = 1056;
+    if (as3Enabled) {
+        expectedError = 1037;
+    }
+    
     try{
      
         o.toString = Number.prototype.toString;
         o.toString();
     }catch(e:ReferenceError){
         thisError=e.toString();
     }finally{
-        array[item++] = new TestCase(SECTION,  "o = new String(); o.toString = Number.prototype.toString; o.toString()",  "ReferenceError: Error #1056",referenceError(thisError));
+        array[item++] = new TestCase(SECTION,
+                            "o = new String(); o.toString = Number.prototype.toString; o.toString()",
+                            REFERENCEERROR+expectedError,
+                            referenceError(thisError));
                      
     } 
      
     //o = new String(); 
     //o.toString = Number.prototype.toString;
     
     //array[item++] = new TestCase(SECTION,  "o = new String(); o.toString = //Number.prototype.toString; o.toString()",  "error",    o.toString() );
 
--- a/test/acceptance/ecma3/Number/e15_7_4_3_3_rt.as
+++ b/test/acceptance/ecma3/Number/e15_7_4_3_3_rt.as
@@ -44,28 +44,37 @@
 
 
 function getTestCases() {
     var array = new Array();
     var item = 0;
 
 //    array[item++] = new TestCase("15.7.4.1", "v = Number.prototype.valueOf; num = 3; num.valueOf = v; num.valueOf()", "error",  "v = Number.prototype.valueOf; num = 3; num.valueOf = v; num.valueOf()" );
 /*
-    v = Number.prototype.valueOf; 
-    o = new String('Infinity'); 
+    v = Number.prototype.valueOf;
+    o = new String('Infinity');
     o.valueOf = v;
     array[item++] = new TestCase("15.7.4.1", "v = Number.prototype.valueOf; o = new String('Infinity'); o.valueOf = v; o.valueOf()", "error",  o.valueOf() );*/
 //    array[item++] = new TestCase("15.7.4.1", "v = Number.prototype.valueOf; o = new Object(); o.valueOf = v; o.valueOf()", "error",  "v = Number.prototype.valueOf; o = new Object(); o.valueOf = v; o.valueOf()" );
     var v = Number.prototype.valueOf;
-    var o = new String('Infinity'); 
+    var o = new String('Infinity');
+
+    var expectedError = 1056;
+    if (as3Enabled) {
+        expectedError = 1037;
+    }
+
     try{
         o.valueOf = v;
         o.valueOf();
     }catch(e:ReferenceError){
         thisError=e.toString();
     }finally{
-        array[item++] = new TestCase("15.7.4.1", "v = Number.prototype.valueOf; o = new String('Infinity'); o.valueOf = v; o.valueOf()", "ReferenceError: Error #1056",  referenceError(thisError) ); 
-    }   
-     
-        
+        array[item++] = new TestCase("15.7.4.1",
+                                    "v = Number.prototype.valueOf; o = new String('Infinity'); o.valueOf = v; o.valueOf()",
+                                    REFERENCEERROR+expectedError,
+                                    referenceError(thisError) );
+    }
+
+
 
     return ( array );
 }
--- a/test/acceptance/ecma3/Number/ecma4_sealedtype_1_rt.as
+++ b/test/acceptance/ecma3/Number/ecma4_sealedtype_1_rt.as
@@ -58,14 +58,20 @@ function getTestCases() {
         //var tostr=Number.prototype.toString; 
     var x:Number=new Number(); 
 	try{
         x.toString=Number.prototype.toString; 
 		
 	} catch (e:ReferenceError) {
         thisError = e.toString();
 	} finally {
-        array[item] = new TestCase( SECTION,"toStr=Number.prototype.toString;x=new Number();x.toString=tostr",
-					 "ReferenceError: Error #1056",
-					 referenceError(thisError) );
+        var expectedError = 1056;
+        if (as3Enabled) {
+            expectedError = 1037;
+        }
+        array[item] = new TestCase(
+                            SECTION,
+                            "toStr=Number.prototype.toString;x=new Number();x.toString=tostr",
+                            REFERENCEERROR+expectedError,
+                            referenceError(thisError) );
 	}
     return ( array );
 }
--- a/test/acceptance/ecma3/Number/ecma4_sealedtype_2_rt.as
+++ b/test/acceptance/ecma3/Number/ecma4_sealedtype_2_rt.as
@@ -30,43 +30,47 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 /*
-	In Ecma4 there are three sealed types; Boolean, Number and String
-	You cannot set properties of an instance of a sealed type
+    In Ecma4 there are three sealed types; Boolean, Number and String
+    You cannot set properties of an instance of a sealed type
 
-	Should throw a ReferenceError
+    Should throw a ReferenceError
 
 */
     var SECTION = "ECMA_4";
     var VERSION = "ECMA_4";
     startTest();
     var TITLE   = "tostr=Number.prototype.toString;x=new Number(4);x.toString=tostr;";
     writeHeaderToLog( TITLE );
 
     var testcases = getTestCases();
     test();
 
 function getTestCases() {
     var array:Array = new Array();
     var item:Number = 0;
 
-	var thisError:String = "no Exception thrown";
-    var tostr=Number.prototype.toString; 
-    var x:Number=new Number(4); 
-	try{
-    	
-    	x.toString=tostr; 
-		x.toString();
-	} catch(e:ReferenceError){
-		thisError = e.toString();
-	} finally {
-		array[item] = new TestCase( SECTION,"toStr=Number.prototype.toString;x=new Number(4);x.toString=tostr",
-					 "ReferenceError: Error #1056",
-					 referenceError(thisError) );
-	}
+    var thisError:String = "no Exception thrown";
+    var tostr=Number.prototype.toString;
+    var x:Number=new Number(4);
+    try{
+
+        x.toString=tostr;
+        x.toString();
+    } catch(e:ReferenceError){
+        thisError = e.toString();
+    } finally {
+        var expectedError = 1056;
+        if (as3Enabled) {
+            expectedError = 1037;
+        }
+        array[item] = new TestCase( SECTION,"toStr=Number.prototype.toString;x=new Number(4);x.toString=tostr",
+                     REFERENCEERROR+expectedError,
+                     referenceError(thisError) );
+    }
     return ( array );
 }
--- a/test/acceptance/ecma3/Number/ecma4_sealedtype_3_rt.as
+++ b/test/acceptance/ecma3/Number/ecma4_sealedtype_3_rt.as
@@ -30,43 +30,47 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 /*
-	In Ecma4 there are three sealed types; Boolean, Number and String
-	You cannot set properties of an instance of a sealed type
+    In Ecma4 there are three sealed types; Boolean, Number and String
+    You cannot set properties of an instance of a sealed type
 
-	Should throw a ReferenceError
+    Should throw a ReferenceError
 
 */
     var SECTION = "ECMA_4";
     var VERSION = "ECMA_4";
     startTest();
     var TITLE   = "tostr=Number.prototype.toString;x=4;x.toString=tostr;";
     writeHeaderToLog( TITLE );
 
     var testcases = getTestCases();
     test();
 
 function getTestCases() {
     var array:Array = new Array();
     var item:Number= 0;
 
-	var thisError = "no exception thrown";
+    var thisError = "no exception thrown";
     var tostr=Number.prototype.toString; 
     var x:Number=4; 
-	try{
-    	
+    try{
+        
         x.toString=tostr; 
-		x.toString();
-	} catch (e:ReferenceError) {
-		thisError = e.toString();
-	} finally {
-		array[item] = new TestCase( SECTION,"toStr=Number.prototype.toString;x=4;x.toString=tostr",
-					 "ReferenceError: Error #1056",
-					 referenceError(thisError) );
-	}
+        x.toString();
+    } catch (e:ReferenceError) {
+        thisError = e.toString();
+    } finally {
+        var expectedError = 1056;
+        if (as3Enabled) {
+            expectedError = 1037;
+        }
+        array[item] = new TestCase( SECTION,"toStr=Number.prototype.toString;x=4;x.toString=tostr",
+                     REFERENCEERROR+expectedError,
+                     referenceError(thisError) );
+    }
     return ( array );
 }
--- a/test/acceptance/ecma3/Number/ecma4_st_valueOf_1_rt.as
+++ b/test/acceptance/ecma3/Number/ecma4_st_valueOf_1_rt.as
@@ -30,48 +30,52 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 /*
-	In Ecma4 there are three sealed types; Boolean, Number and String
-	You cannot set properties of an instance of a sealed type
+    In Ecma4 there are three sealed types; Boolean, Number and String
+    You cannot set properties of an instance of a sealed type
 
-	Should throw a ReferenceError
+    Should throw a ReferenceError
 
-	Author:		mtilburg@macromedia.com
-	Date:		October 13, 2004
+    Author:     mtilburg@macromedia.com
+    Date:       October 13, 2004
 
 */
     var SECTION = "ECMA_4";
     var VERSION = "ECMA_4";
     startTest();
     var TITLE   = "valof=Number.prototype.valueOf;x=new Number();x.valueOf=valof;";
     writeHeaderToLog( TITLE );
 
     var testcases = getTestCases();
     test();
 
 function getTestCases() {
     var array:Array = new Array();
     var item:Number = 0;
 
-	var thisError:String = "no exception thrown";
+    var thisError:String = "no exception thrown";
+
+    var valof=Number.prototype.valueOf;
+    var x:Number=new Number();
+    try{
 
-    var valof=Number.prototype.valueOf; 
-    var x:Number=new Number(); 
-	try{
-    	
-    	x.valueOf=valof; 
-		x.valueOf();
-	} catch(e:ReferenceError){
-		thisError = e.toString();
-	} finally {
-		array[item] = new TestCase( SECTION,"valof=Number.prototype.valueOf;x=new Number();x.valueOf=valof",
-					 "ReferenceError: Error #1056",
-					 referenceError(thisError) );
-	}
+        x.valueOf=valof;
+        x.valueOf();
+    } catch(e:ReferenceError){
+        thisError = e.toString();
+    } finally {
+        var expectedError = 1056;
+        if (as3Enabled) {
+            expectedError = 1037;
+        }
+        array[item] = new TestCase( SECTION,"valof=Number.prototype.valueOf;x=new Number();x.valueOf=valof",
+                     REFERENCEERROR+expectedError,
+                     referenceError(thisError) );
+    }
     return ( array );
 }
 
--- a/test/acceptance/ecma3/Number/ecma4_st_valueOf_2_rt.as
+++ b/test/acceptance/ecma3/Number/ecma4_st_valueOf_2_rt.as
@@ -30,47 +30,51 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 /*
-	In Ecma4 there are three sealed types; Boolean, Number and String
-	You cannot set properties of an instance of a sealed type
+    In Ecma4 there are three sealed types; Boolean, Number and String
+    You cannot set properties of an instance of a sealed type
 
-	Should throw a ReferenceError
+    Should throw a ReferenceError
 
-	Author:		mtilburg@macromedia.com
-	Date:		October 13, 2004
+    Author:     mtilburg@macromedia.com
+    Date:       October 13, 2004
 
 */
     var SECTION = "ECMA_4";
     var VERSION = "ECMA_4";
     startTest();
     var TITLE   = "valof=Number.prototype.valueOf;x=new Number(4);x.valueOf=valof;";
     writeHeaderToLog( TITLE );
 
     var testcases = getTestCases();
     test();
 
 function getTestCases() {
     var array:Array = new Array();
     var item:Number = 0;
 
-	var thisError = "no exception thrown";
-    var valof=Number.prototype.valueOf; 
-    var x:Number=new Number(4); 
-	try{
-    	
-    	x.valueOf=valof; 
-		x.valueOf();
-	} catch(e:ReferenceError) {
-		thisError = e.toString();	
-	} finally {
+    var thisError = "no exception thrown";
+    var valof=Number.prototype.valueOf;
+    var x:Number=new Number(4);
+    try{
+
+        x.valueOf=valof;
+        x.valueOf();
+    } catch(e:ReferenceError) {
+        thisError = e.toString();
+    } finally {
+        var expectedError = 1056;
+        if (as3Enabled) {
+            expectedError = 1037;
+        }
         array[item] = new TestCase( SECTION,"valof=Number.prototype.valueOf;x=new Number(4);x.valueOf=valof",
-					 "ReferenceError: Error #1056",
-					 referenceError(thisError) );
-	}
+                     REFERENCEERROR+expectedError,
+                     referenceError(thisError) );
+    }
 
     return ( array );
 }
--- a/test/acceptance/ecma3/Number/ecma4_st_valueOf_3_rt.as
+++ b/test/acceptance/ecma3/Number/ecma4_st_valueOf_3_rt.as
@@ -30,46 +30,50 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 /*
-	In Ecma4 there are three sealed types; Boolean, Number and String
-	You cannot set properties of an instance of a sealed type
+    In Ecma4 there are three sealed types; Boolean, Number and String
+    You cannot set properties of an instance of a sealed type
 
-	Should throw a ReferenceError
+    Should throw a ReferenceError
 
-	Author:		mtilburg@macromedia.com
-	Date:		October 13, 2004
+    Author:     mtilburg@macromedia.com
+    Date:       October 13, 2004
 
 */
     var SECTION = "ECMA_4";
     var VERSION = "ECMA_4";
     startTest();
     var TITLE   = "valof=Number.prototype.valueOf;x=4;x.valueOf=valof;";
     writeHeaderToLog( TITLE );
 
     var testcases = getTestCases();
     test();
 
 function getTestCases() {
     var array:Array = new Array();
     var item:Number = 0;
 
-	var thisError:String = "no exception thrown";
+    var thisError:String = "no exception thrown";
     var valof=Number.prototype.valueOf; 
     var x:Number=4; 
-	try{
-    	
+    try{
+        
         x.valueOf=valof; 
-		x.valueOf();
-	} catch (e:ReferenceError) {
-		thisError = e.toString();
-	} finally {
-		array[item] = new TestCase( SECTION,"valof=Number.prototype.valueOf;x=4;x.valueOf=valof",
-					 "ReferenceError: Error #1056",
-					 referenceError(thisError) );
-	}
+        x.valueOf();
+    } catch (e:ReferenceError) {
+        thisError = e.toString();
+    } finally {
+        var expectedError = 1056;
+        if (as3Enabled) {
+            expectedError = 1037;
+        }
+        array[item] = new TestCase( SECTION,"valof=Number.prototype.valueOf;x=4;x.valueOf=valof",
+                     REFERENCEERROR+expectedError,
+                     referenceError(thisError) );
+    }
     return ( array );
 }
--- a/test/acceptance/ecma3/Number/toLocaleString3_rt.as
+++ b/test/acceptance/ecma3/Number/toLocaleString3_rt.as
@@ -41,21 +41,25 @@
 
     writeHeaderToLog( SECTION + " Number.prototype.toLocaleString()");
     test();
 
 function getTestCases() {
     var array:Array = new Array();
     var item:Number = 0;
     var o:String = new String();
-	var thisError:String = "no exception thrown";
-	try{
-    	
-    	o.toString = Number.prototype.toString;
-	} catch(e:ReferenceError) {
-		thisError = e.toString();
-	} finally {
-    	array[item++] = new TestCase(SECTION,  "o = new String(); o.toString = Number.prototype.toString; o.toLocaleString()",  
-											"ReferenceError: Error #1056",    
-											referenceError(thisError) );
-	}
+    var thisError:String = "no exception thrown";
+    try{
+
+        o.toString = Number.prototype.toString;
+    } catch(e:ReferenceError) {
+        thisError = e.toString();
+    } finally {
+        var expectedError = 1056;
+        if (as3Enabled) {
+            expectedError = 1037;
+        }
+        array[item++] = new TestCase(SECTION,  "o = new String(); o.toString = Number.prototype.toString; o.toLocaleString()",
+                                            REFERENCEERROR+expectedError,
+                                            referenceError(thisError) );
+    }
     return ( array );
 }
--- a/test/acceptance/ecma3/Number/toLocaleString4_rt.as
+++ b/test/acceptance/ecma3/Number/toLocaleString4_rt.as
@@ -42,23 +42,27 @@
     writeHeaderToLog( SECTION + " Number.prototype.toLocaleString()");
     test();
 
 function getTestCases() {
     var array:Array = new Array();
     var item:Number = 0;
     var o:Number = 3;
 
-	var thisError:String = "no error thrown";
-	try{
-    	 
-    	o.toString = Number.prototype.toString;
-	} catch (e:ReferenceError) {
-		thisError = e.toString();
-	} finally {
-    	array[item++] = new TestCase(SECTION,  "o = 3; o.toString = Number.prototype.toString; o.toLocaleString()",             
-												"ReferenceError: Error #1056",    
-												referenceError(thisError) );
-	}
-    
+    var thisError:String = "no error thrown";
+    try{
+
+        o.toString = Number.prototype.toString;
+    } catch (e:ReferenceError) {
+        thisError = e.toString();
+    } finally {
+        var expectedError = 1056;
+        if (as3Enabled) {
+            expectedError = 1037;
+        }
+        array[item++] = new TestCase(SECTION,  "o = 3; o.toString = Number.prototype.toString; o.toLocaleString()",
+                                                REFERENCEERROR+expectedError,
+                                                referenceError(thisError) );
+    }
+
 
     return ( array );
 }
--- a/test/acceptance/ecma3/ObjectObjects/e15_2_1_1_rt.as
+++ b/test/acceptance/ecma3/ObjectObjects/e15_2_1_1_rt.as
@@ -45,16 +45,21 @@
     var testcases = getTestCases();
     test();
 
 function getTestCases() {
     var array = new Array();
     var item = 0;
 
     var NULL_OBJECT = Object(null);
+    
+    var expectedError = 1056;
+    if (as3Enabled) {
+        expectedError = 1037;
+    }
 
 
            array[item++] = new TestCase( SECTION, "Object(null).valueOf()", NULL_OBJECT,NULL_OBJECT.valueOf());
 
            array[item++] = new TestCase( SECTION, "typeof Object(null)",       "object",               typeof (Object(null)) );
 
            array[item++] = new TestCase( SECTION, "Object(null).constructor.prototype", "[object Object]",Object(null).constructor.prototype+"");
 
@@ -89,47 +94,47 @@ function getTestCases() {
     thisError = "no error";
     try{
        var MYOB = Object(true);
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e4:Error){
            thisError=e4.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object(true), MYOB.toString = Object.prototype.toString, MYOB.toString()", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object(true), MYOB.toString = Object.prototype.toString, MYOB.toString()", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
 
   array[item++] = new TestCase( SECTION, "Object(false).valueOf()",    false,                  (Object(false)).valueOf() );
   array[item++] = new TestCase( SECTION, "typeof Object(false)",      "boolean",               typeof Object(false) );
 
 
   thisError = "no error";
     try{
        var MYOB = Object(false);
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e5:Error){
            thisError=e5.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object(false), MYOB.toString = Object.prototype.toString, MYOB.toString()", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object(false), MYOB.toString = Object.prototype.toString, MYOB.toString()", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
 
   array[item++] = new TestCase( SECTION, "Object(0).valueOf()",       0,                      (Object(0)).valueOf() );
   array[item++] = new TestCase( SECTION, "typeof Object(0)",          "number",               typeof Object(0) );
   thisError = "no error";
     try{
        var MYOB = Object(0);
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e6:Error){
            thisError=e6.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object(0), MYOB.toString = Object.prototype.toString, MYOB.toString()", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object(0), MYOB.toString = Object.prototype.toString, MYOB.toString()", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
 
 
 
   array[item++] = new TestCase( SECTION, "Object(-0).valueOf()",      -0,                     (Object(-0)).valueOf() );
   array[item++] = new TestCase( SECTION, "typeof Object(-0)",         "number",               typeof Object(-0) );
 
@@ -137,180 +142,180 @@ function getTestCases() {
   thisError = "no error";
     try{
        var MYOB = Object(-0);
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e7:Error){
            thisError=e7.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object(-0), MYOB.toString", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object(-0), MYOB.toString", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
 
   array[item++] = new TestCase( SECTION, "Object(1).valueOf()",       1,                      (Object(1)).valueOf() );
     array[item++] = new TestCase( SECTION, "typeof Object(1)",          "number",               typeof Object(1) );
    thisError = "no error";
     try{
        var MYOB = Object(1);
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e8:Error){
            thisError=e8.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object(1), MYOB.toString", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object(1), MYOB.toString", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
 
 
     array[item++] = new TestCase( SECTION, "Object(-1).valueOf()",      -1,                     (Object(-1)).valueOf() );
     array[item++] = new TestCase( SECTION, "typeof Object(-1)",         "number",               typeof Object(-1) );
 
     thisError = "no error";
     try{
        var MYOB = Object(-1);
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e9:Error){
            thisError=e9.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object(-1), MYOB.toString", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object(-1), MYOB.toString", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
 
     array[item++] = new TestCase( SECTION, "Object(Number.MAX_VALUE).valueOf()",    1.7976931348623157e308,         (Object(Number.MAX_VALUE)).valueOf() );
     array[item++] = new TestCase( SECTION, "typeof Object(Number.MAX_VALUE)",       "number", typeof Object(Number.MAX_VALUE) );
 
     thisError = "no error";
     try{
        var MYOB = Object(Number.MAX_VALUE);
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e10:Error){
            thisError=e10.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object(Number.MAX_VALUE), MYOB.toString", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object(Number.MAX_VALUE), MYOB.toString", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
     array[item++] = new TestCase( SECTION, "Object(Number.MIN_VALUE).valueOf()",     5e-324,           (Object(Number.MIN_VALUE)).valueOf() );
     array[item++] = new TestCase( SECTION, "typeof Object(Number.MIN_VALUE)",       "number",         typeof Object(Number.MIN_VALUE) );
 
     thisError = "no error";
     try{
        var MYOB = Object(Number.MIN_VALUE);
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e11:Error){
            thisError=e11.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object(Number.MIN_VALUE), MYOB.toString", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object(Number.MIN_VALUE), MYOB.toString", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
 
     array[item++] = new TestCase( SECTION, "Object(Number.POSITIVE_INFINITY).valueOf()",    Number.POSITIVE_INFINITY,       (Object(Number.POSITIVE_INFINITY)).valueOf() );
     array[item++] = new TestCase( SECTION, "typeof Object(Number.POSITIVE_INFINITY)",       "number",                       typeof Object(Number.POSITIVE_INFINITY) );
 
     thisError = "no error";
     try{
        var MYOB = Object(Number.POSITIVE_INFINITY);
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e12:Error){
            thisError=e12.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object(Number.POSITIVE_INFINITY), MYOB.toString", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object(Number.POSITIVE_INFINITY), MYOB.toString", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
 
     array[item++] = new TestCase( SECTION, "Object(Number.NEGATIVE_INFINITY).valueOf()",    Number.NEGATIVE_INFINITY,       (Object(Number.NEGATIVE_INFINITY)).valueOf() );
     array[item++] = new TestCase( SECTION, "typeof Object(Number.NEGATIVE_INFINITY)",       "number",            typeof Object(Number.NEGATIVE_INFINITY) );
 
     thisError = "no error";
     try{
        var MYOB = Object(Number.NEGATIVE_INFINITY);
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e13:Error){
            thisError=e13.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object(Number.NEGATIVE_INFINITY), MYOB.toString", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object(Number.NEGATIVE_INFINITY), MYOB.toString", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
   array[item++] = new TestCase( SECTION, "Object(Number.NaN).valueOf()",      Number.NaN,                (Object(Number.NaN)).valueOf() );
     array[item++] = new TestCase( SECTION, "typeof Object(Number.NaN)",         "number",                  typeof Object(Number.NaN) );
     thisError = "no error";
     try{
        var MYOB = Object(Number.NaN);
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e14:Error){
            thisError=e14.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object(Number.NaN), MYOB.toString", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object(Number.NaN), MYOB.toString", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
 
 
     array[item++] = new TestCase( SECTION, "Object('a string').valueOf()",      "a string",         (Object("a string")).valueOf() );
     array[item++] = new TestCase( SECTION, "typeof Object('a string')",         "string",           typeof (Object("a string")) );
 
     thisError = "no error";
     try{
        var MYOB = Object('a string');
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e15:Error){
            thisError=e15.toString();
        }finally{
-         array[item++] = new TestCase( SECTION, "var MYOB = Object('a string'), MYOB.toString", "ReferenceError: Error #1056",referenceError(thisError));
+         array[item++] = new TestCase( SECTION, "var MYOB = Object('a string'), MYOB.toString", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
     array[item++] = new TestCase( SECTION, "Object('').valueOf()",              "",                 (Object("")).valueOf() );
     array[item++] = new TestCase( SECTION, "typeof Object('')",                 "string",           typeof (Object("")) );
 
     thisError = "no error";
     try{
        var MYOB = Object('');
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e16:Error){
            thisError=e16.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object(''), MYOB.toString", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object(''), MYOB.toString", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
 
     array[item++] = new TestCase( SECTION, "Object('\\r\\t\\b\\n\\v\\f').valueOf()",   "\r\t\b\n\v\f",   (Object("\r\t\b\n\v\f")).valueOf() );
     array[item++] = new TestCase( SECTION, "typeof Object('\\r\\t\\b\\n\\v\\f')",      "string",           typeof (Object("\\r\\t\\b\\n\\v\\f")) );
 
     thisError = "no error";
     try{
        var MYOB = Object('\\r\\t\\b\\n\\v\\f');
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e17:Error){
            thisError=e17.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object('\\r\\t\\b\\n\\v\\f'), MYOB.toString", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object('\\r\\t\\b\\n\\v\\f'), MYOB.toString", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
 
     array[item++] = new TestCase( SECTION,  "Object( '\\\'\\\"\\' ).valueOf()",      "\'\"\\",          (Object("\'\"\\")).valueOf() );
     array[item++] = new TestCase( SECTION,  "typeof Object( '\\\'\\\"\\' )",        "string",           typeof Object("\'\"\\") );
 
     var MYOB = Object('\\\'\\\"\\' );
     thisError = "no error";
     try{
 
        MYOB.toString = Object.prototype.toString;
        MYOB.toString()
        }catch(e18:Error){
            thisError=e18.toString();
        }finally{
-           array[item++] = new TestCase( SECTION, "var MYOB = Object('\\\'\\\"\\' ), MYOB.toString", "ReferenceError: Error #1056",referenceError(thisError));
+           array[item++] = new TestCase( SECTION, "var MYOB = Object('\\\'\\\"\\' ), MYOB.toString", REFERENCEERROR+expectedError,referenceError(thisError));
         }
 
 
 
 
 
     return ( array );
 }
--- a/test/acceptance/ecma3/ObjectObjects/e15_2_4_2.as
+++ b/test/acceptance/ecma3/ObjectObjects/e15_2_4_2.as
@@ -69,30 +69,39 @@ function getTestCases() {
                                             '[object Object]',
                                             myvar.toString());
 
 	// save
 	var origNumProto = Number.prototype.toString;
 
 	Number.prototype.toString=Object.prototype.toString;
 	myvar = new Number(0);
+    var expectedAns = "[object Number]";
+    if (as3Enabled) {
+        expectedAns = "0";
+    }
+    
     array[item++] = new TestCase( SECTION,  "myvar = new Number(0); myvar.toString = Object.prototype.toString; myvar.toString()",
-                                            "[object Number]",
+                                            expectedAns,
                                              myvar.toString());
 
     // restore
     Number.prototype.toString = origNumProto
 
     //save
     var origStrProto = String.prototype.toString;
 
 	String.prototype.toString=Object.prototype.toString;
 	myvar = new String('');
+    expectedAns = "[object String]";
+    if (as3Enabled) {
+        expectedAns = "";
+    }
 	array[item++] = new TestCase( SECTION,  "myvar = new String(''); myvar.toString = Object.prototype.toString; myvar.toString()",
-                                            "[object String]",
+                                            expectedAns,
                                             myvar.toString() );
 
     // restore
     String.prototype.toString = origStrProto;
 
 	myvar = Math;
 
 	var thisError = "no exception thrown";
--- a/test/acceptance/ecma3/ObjectObjects/e15_2_4_3.as
+++ b/test/acceptance/ecma3/ObjectObjects/e15_2_4_3.as
@@ -80,19 +80,25 @@ function getTestCases() {
     var thisError:String="no error";
     try{
 
        myboolean.valueOf = Object.prototype.valueOf;
        myboolean.valueOf();
     }catch(e:Error){
        thisError=e.toString();
     }finally{//print(thisError);
+        
+        var expectedError = 1056;
+        if (as3Enabled) {
+            expectedError = 1037;
+        }
+        
         array[item++] = new TestCase( SECTION,
                                  "myboolean = new Boolean(); myboolean.valueOf = Object.prototype.valueOf; myboolean.valueOf()",
-                                 "ReferenceError: Error #1056",
+                                 REFERENCEERROR+expectedError,
                                  referenceError(thisError) );
      }
     /*array[item++] = new TestCase( SECTION,
                                  "myboolean = new Boolean(); myboolean.valueOf = Object.prototype.valueOf; myboolean.valueOf()",
                                  myboolean,
                                  myboolean.valueOf() );*/
     array[item++] = new TestCase( SECTION,
                                  "myfunction = function() {}; myfunction.valueOf = Object.prototype.valueOf; myfunction.valueOf()",
@@ -107,62 +113,62 @@ function getTestCases() {
     try{
        mymath.valueOf = Object.prototype.valueOf;
        mymath.valueOf();
     }catch(e1:Error){
        thisError=e1.toString();
     }finally{//print(thisError);
         array[item++] = new TestCase( SECTION,
         "mymath = Math; mymath.valueOf = Object.prototype.valueOf;mymath.valueOf()",
-        "ReferenceError: Error #1056",referenceError(thisError) );
+        REFERENCEERROR+expectedError,referenceError(thisError) );
      }
    /* array[item++] = new TestCase( SECTION,
                                  "mymath = Math; mymath.valueOf = Object.prototype.valueOf; mymath.valueOf()",
                                  mymath,
                                  mymath.valueOf() );*/
     try{
        mynumber.valueOf = Object.prototype.valueOf;
        mynumber.valueOf();
     }catch(e2:ReferenceError){
        thisError=e2.toString();
     }finally{//print(thisError);
         array[item++] = new TestCase( SECTION,
         "mynumber = new Number(); mynumber.valueOf = Object.prototype.valueOf; mynumber.valueOf()",
-        "ReferenceError: Error #1056",referenceError(thisError) );
+        REFERENCEERROR+expectedError,referenceError(thisError) );
      }
 
     /*array[item++] = new TestCase( SECTION,
                                  "mynumber = new Number(); mynumber.valueOf = Object.prototype.valueOf; mynumber.valueOf()",
                                  mynumber,
                                  mynumber.valueOf() );*/
 
     try{
        mystring.valueOf = Object.prototype.valueOf;
        mystring.valueOf();
     }catch(e3:Error){
        thisError=e3.toString();
     }finally{//print(thisError);
         array[item++] = new TestCase( SECTION,
         "mystring = new String(); mystring.valueOf = Object.prototype.valueOf; mystring.valueOf()",
-        "ReferenceError: Error #1056",referenceError(thisError) );
+        REFERENCEERROR+expectedError,referenceError(thisError) );
      }
    /* array[item++] = new TestCase( SECTION,
                                  "mystring = new String(); mystring.valueOf = Object.prototype.valueOf; mystring.valueOf()",
                                  mystring,
                                  mystring.valueOf() );*/
 
     try{
        mydate.valueOf = Object.prototype.valueOf;
        mydate.valueOf();
     }catch(e4:Error){
        thisError=e4.toString();
     }finally{//print(thisError);
         array[item++] = new TestCase( SECTION,
         "mydate = new Date(); mydate.valueOf = Object.prototype.valueOf; mydate.valueOf()",
-        "ReferenceError: Error #1056",referenceError(thisError) );
+        REFERENCEERROR+expectedError,referenceError(thisError) );
      }
     /*array[item++] = new TestCase( SECTION,
                                  "mydate = new Date(); mydate.valueOf = Object.prototype.valueOf; mydate.valueOf()",
                                  mydate,
                                  mydate.valueOf());*/
 
 	// restore
 	Number.prototype.valueOf = origNumProto;
--- a/test/acceptance/ecma3/RegExp/eproperties_001.as
+++ b/test/acceptance/ecma3/RegExp/eproperties_001.as
@@ -40,164 +40,168 @@
     var BUGNUMBER ="http://scopus/bugsplat/show_bug.cgi?id=346000";
 
 startTest();
 writeHeaderToLog(SECTION + " " + TITLE);
 var testcases = getTestCases();
 test();
 
 function getTestCases() {
-	var array = new Array();
-	var item = 0;
+    var array = new Array();
+    var item = 0;
 
     AddRegExpCases( new RegExp, "",   false, false, false, 0 );
     AddRegExpCases( /.*/,       ".*", false, false, false, 0 );
     AddRegExpCases( /[\d]{5}/g, "[\\d]{5}", true, false, false, 0 );
     AddRegExpCases( /[\S]?$/i,  "[\\S]?$", false, true, false, 0 );
     AddRegExpCases( /^([a-z]*)[^\w\s\f\n\r]+/m,  "^([a-z]*)[^\\w\\s\\f\\n\\r]+", false, false, true, 0 );
     AddRegExpCases( /[\D]{1,5}[\ -][\d]/gi,      "[\\D]{1,5}[\\ -][\\d]", true, true, false, 0 );
     AddRegExpCases( /[a-zA-Z0-9]*/gm, "[a-zA-Z0-9]*", true, false, true, 0 );
     AddRegExpCases( /x|y|z/gim, "x|y|z", true, true, true, 0 );
 
     AddRegExpCases( /\u0051/im, "\u0051", false, true, true, 0 );
     AddRegExpCases( /\x45/gm, "\\x45", true, false, true, 0 );
     AddRegExpCases( /\097/gi, "\\097", true, true, false, 0 );
 
-	function AddRegExpCases( re, s, g, i, m, l ) {
+    function AddRegExpCases( re, s, g, i, m, l ) {
+
+        
 
-	    array[item++] = new TestCase(SECTION,
-	    			 re + ".test == RegExp.prototype.test",
-	                 true,
-	                 re.test == RegExp.prototype.test );
+        array[item++] = new TestCase(SECTION,
+                     re + ".toString == RegExp.prototype.toString",
+                     true,
+                     re.toString == RegExp.prototype.toString );
 
-	    array[item++] = new TestCase(SECTION,
-	    			 re + ".toString == RegExp.prototype.toString",
-	                 true,
-	                 re.toString == RegExp.prototype.toString );
+        array[item++] = new TestCase(SECTION,
+                     re + ".constructor == RegExp.prototype.constructor",
+                     true,
+                     re.constructor == RegExp.prototype.constructor );
 
-	    array[item++] = new TestCase(SECTION,
-	    			 re + ".constructor == RegExp.prototype.constructor",
-	                 true,
-	                 re.constructor == RegExp.prototype.constructor );
-
-	    array[item++] = new TestCase(SECTION,
-	    			 re + ".compile == RegExp.prototype.compile",
-	                 true,
-	                 re.compile == RegExp.prototype.compile );
+        array[item++] = new TestCase(SECTION,
+                     re + ".compile == RegExp.prototype.compile",
+                     true,
+                     re.compile == RegExp.prototype.compile );
 
-	    array[item++] = new TestCase(SECTION,
-	    			 re + ".exec == RegExp.prototype.exec",
-	                 true,
-	                 re.exec == RegExp.prototype.exec );
-
-	    // properties
+        if (!as3Enabled) {
+            array[item++] = new TestCase(SECTION,
+                         re + ".test == RegExp.prototype.test",
+                         true,
+                         re.test == RegExp.prototype.test );
+            
+            array[item++] = new TestCase(SECTION,
+                         re + ".exec == RegExp.prototype.exec",
+                         true,
+                         re.exec == RegExp.prototype.exec );
+        }
+        
+        // properties
 
-	    array[item++] = new TestCase(SECTION,
-	    			 re + ".source",
-	                 s,
-	                 re.source );
-	    try{
-	    	re.source = "k";
-	    }catch(e:ReferenceError){
-	        thisError = e.toString();
-	    }finally{
-	        array[item++] = new TestCase(SECTION,
-	        		 re + ".source='k'",
-	                 "ReferenceError: Error #1074",
-	                 referenceError(thisError) );
-	    }
+        array[item++] = new TestCase(SECTION,
+                     re + ".source",
+                     s,
+                     re.source );
+        try{
+            re.source = "k";
+        }catch(e:ReferenceError){
+            thisError = e.toString();
+        }finally{
+            array[item++] = new TestCase(SECTION,
+                     re + ".source='k'",
+                     "ReferenceError: Error #1074",
+                     referenceError(thisError) );
+        }
 
 
 
-	    array[item++] = new TestCase(SECTION,
-	    			 "delete"+re + ".source",
-	                 false,
-	                delete re.source);
+        array[item++] = new TestCase(SECTION,
+                     "delete"+re + ".source",
+                     false,
+                    delete re.source);
 
 
 
-	    array[item++] = new TestCase(SECTION,
-	    			 re + ".toString()",
-	                 "/" + s +"/" + (g?"g":"") + (i?"i":"") +(m?"m":""),
-	                 re.toString() );
+        array[item++] = new TestCase(SECTION,
+                     re + ".toString()",
+                     "/" + s +"/" + (g?"g":"") + (i?"i":"") +(m?"m":""),
+                     re.toString() );
 
-	    array[item++] = new TestCase(SECTION,
-	    			 re + ".global",
-	                 g,
-	                 re.global );
+        array[item++] = new TestCase(SECTION,
+                     re + ".global",
+                     g,
+                     re.global );
 
-	     try{
-	        re.global = true;
-	    }catch(e:ReferenceError){
-	         thisError = e.toString();
-	    }finally{
-	         array[item++] = new TestCase(SECTION,
-	         		 re + ".global=true",
-	                 "ReferenceError: Error #1074",
-	                 referenceError(thisError) );
-	    }
+         try{
+            re.global = true;
+        }catch(e:ReferenceError){
+             thisError = e.toString();
+        }finally{
+             array[item++] = new TestCase(SECTION,
+                     re + ".global=true",
+                     "ReferenceError: Error #1074",
+                     referenceError(thisError) );
+        }
 
 
 
-	    array[item++] = new TestCase(SECTION,
-	    			 "delete"+re + ".global",
-	                 false,
-	                delete re.global);
+        array[item++] = new TestCase(SECTION,
+                     "delete"+re + ".global",
+                     false,
+                    delete re.global);
 
-	    array[item++] = new TestCase(SECTION,
-	    			 re + ".ignoreCase",
-	                 i,
-	                 re.ignoreCase );
+        array[item++] = new TestCase(SECTION,
+                     re + ".ignoreCase",
+                     i,
+                     re.ignoreCase );
 
-	    try{
-	        re.ignoreCase = true;
-	    }catch(e:ReferenceError){
-	         thisError = e.toString();
-	    }finally{
-	         array[item++] = new TestCase(SECTION,
-	         		 re + ".ignoreCase=true",
-	                 "ReferenceError: Error #1074",
-	                 referenceError(thisError) );
-	    }
+        try{
+            re.ignoreCase = true;
+        }catch(e:ReferenceError){
+             thisError = e.toString();
+        }finally{
+             array[item++] = new TestCase(SECTION,
+                     re + ".ignoreCase=true",
+                     "ReferenceError: Error #1074",
+                     referenceError(thisError) );
+        }
 
 
 
-	    array[item++] = new TestCase(SECTION,
-	    			 "delete"+re + ".ignoreCase",
-	                 false,
-	                delete re.ignoreCase);
+        array[item++] = new TestCase(SECTION,
+                     "delete"+re + ".ignoreCase",
+                     false,
+                    delete re.ignoreCase);
 
-	    array[item++] = new TestCase(SECTION,
-	    			 re + ".multiline",
-	                 m,
-	                 re.multiline);
+        array[item++] = new TestCase(SECTION,
+                     re + ".multiline",
+                     m,
+                     re.multiline);
 
-	    try{
-	        re.multiline = true;
-	    }catch(e:ReferenceError){
-	         thisError = e.toString();
-	    }finally{
-	         array[item++] = new TestCase(SECTION,
-	         		 re + ".multiline=true",
-	                 "ReferenceError: Error #1074",
-	                 referenceError(thisError) );
-	    }
+        try{
+            re.multiline = true;
+        }catch(e:ReferenceError){
+             thisError = e.toString();
+        }finally{
+             array[item++] = new TestCase(SECTION,
+                     re + ".multiline=true",
+                     "ReferenceError: Error #1074",
+                     referenceError(thisError) );
+        }
 
 
 
-	    array[item++] = new TestCase(SECTION,
-	    			 "delete"+re + ".multiline",
-	                 false,
-	                delete re.multiline);
+        array[item++] = new TestCase(SECTION,
+                     "delete"+re + ".multiline",
+                     false,
+                    delete re.multiline);
 
-	    array[item++] = new TestCase(SECTION,
-	    			 re + ".lastIndex",
-	                 l,
-	                 re.lastIndex  );
+        array[item++] = new TestCase(SECTION,
+                     re + ".lastIndex",
+                     l,
+                     re.lastIndex  );
 
-	    array[item++] = new TestCase(SECTION,
-	    			 "delete"+re + ".lastIndex",
-	                 false,
-	                delete re.lastIndex);
-	}
+        array[item++] = new TestCase(SECTION,
+                     "delete"+re + ".lastIndex",
+                     false,
+                    delete re.lastIndex);
+    }
 
-	return array;
+    return array;
 }
--- a/test/acceptance/ecma3/RegExp/eproperties_002.as
+++ b/test/acceptance/ecma3/RegExp/eproperties_002.as
@@ -96,40 +96,41 @@ function getTestCases() {
 	re_9 = /\B/;
 	re_9.lastIndex = Math.pow(2,30);
 	AddRegExpCases( re_9, "\\B", false, false, false, Math.pow(2,30) );
 
 
 	function AddRegExpCases( re, s, g, i, m, l ){
 
 	    array[item++] = new TestCase(SECTION,
-	    			 re + ".test == RegExp.prototype.test",
-	                 true,
-	                 re.test == RegExp.prototype.test );
-
-	    array[item++] = new TestCase(SECTION,
 	    			 re + ".toString == RegExp.prototype.toString",
 	                 true,
 	                 re.toString == RegExp.prototype.toString );
 
 	    array[item++] = new TestCase(SECTION,
 	    			 re + ".constructor == RegExp.prototype.constructor",
 	                 true,
 	                 re.constructor == RegExp.prototype.constructor );
 
 	    array[item++] = new TestCase(SECTION,
 	    			 re + ".compile == RegExp.prototype.compile",
 	                 true,
 	                 re.compile == RegExp.prototype.compile );
 
-	    array[item++] = new TestCase(SECTION,
-	    			 re + ".exec == RegExp.prototype.exec",
-	                 true,
-	                 re.exec == RegExp.prototype.exec );
-
+        if (!as3Enabled) {
+            array[item++] = new TestCase(SECTION,
+                         re + ".test == RegExp.prototype.test",
+                         true,
+                         re.test == RegExp.prototype.test );
+    
+            array[item++] = new TestCase(SECTION,
+                         re + ".exec == RegExp.prototype.exec",
+                         true,
+                         re.exec == RegExp.prototype.exec );
+        }
 	    // properties
 
 	    array[item++] = new TestCase(SECTION,
 	    			 re + ".source",
 	                 s,
 	                 re.source );
 
 	    array[item++] = new TestCase(SECTION,
--- a/test/acceptance/ecma3/String/e15_5_4_3_3_rt.as
+++ b/test/acceptance/ecma3/String/e15_5_4_3_3_rt.as
@@ -46,22 +46,28 @@
     var testcases = getTestCases();
     test();
 
 function getTestCases() {
     var array = new Array();
     var item = 0;
     var valof=String.prototype.valueOf;
     astring=new Number();
-        
+    
+    var expectedError = 1056;
+    if (as3Enabled) {
+        expectedError = 1037;
+    }
     try{
         astring.valueOf = valof;
     }catch(e:Error){
         thisError=e.toString();
     }finally{
         array[item++] = new TestCase( SECTION,
-                                  "var valof=String.prototype.valueOf; astring=new Number(); astring.valueOf = valof; astring.valueOf()","ReferenceError: Error #1056",referenceError(thisError) )
+                "var valof=String.prototype.valueOf; astring=new Number(); astring.valueOf = valof; astring.valueOf()",
+                REFERENCEERROR+expectedError,
+                referenceError(thisError) )
     }
 
     
 
     return ( array );
 }
--- a/test/acceptance/ecma3/String/e15_5_4_7_2.as
+++ b/test/acceptance/ecma3/String/e15_5_4_7_2.as
@@ -106,27 +106,29 @@ function getTestCases() {
     var origNumberLastIndexOf = Number.prototype.lastIndexOf;
 	Number.prototype.lastIndexOf=String.prototype.lastIndexOf;
     for ( var i = 0; i < 9; i++ ) {
         array[item++] = new TestCase(   SECTION,
                                         "var n = new Number(Infinity); n.lastIndexOf = String.prototype.lastIndexOf; n.lastIndexOf( 'i', " + i + " )",
                                         ( i < 3 ? -1 : ( i < 5 ? 3 : 5 ) ),
                                         (n = new Number(Infinity), n.lastIndexOf( 'i', i ) ) );
     }
-    var a = new Array( "abc","def","ghi","jkl","mno","pqr","stu","vwx","yz" );
-    a.lastIndexOf = String.prototype.lastIndexOf;
     
-    for ( var i = 0; i < (a.toString()).length; i++ ) {
-        array[item++] = new TestCase( SECTION,
-                                      "var a = new Array( 'abc','def','ghi','jkl','mno','pqr','stu','vwx','yz' ); a.lastIndexOf = String.prototype.lastIndexOf; a.lastIndexOf( ',mno,p', "+i+" )",
-                                      ( i < 15 ? -1 : 15 ),
-                                      (a.lastIndexOf( ',mno,p', i ) ) );
+    if (!as3Enabled) {
+        var a = new Array( "abc","def","ghi","jkl","mno","pqr","stu","vwx","yz" );
+        a.lastIndexOf = String.prototype.lastIndexOf;
+        
+        for ( var i = 0; i < (a.toString()).length; i++ ) {
+            array[item++] = new TestCase( SECTION,
+                                          "var a = new Array( 'abc','def','ghi','jkl','mno','pqr','stu','vwx','yz' ); a.lastIndexOf = String.prototype.lastIndexOf; a.lastIndexOf( ',mno,p', "+i+" )",
+                                          ( i < 15 ? -1 : 15 ),
+                                          (a.lastIndexOf( ',mno,p', i ) ) );
+        }
     }
 
-
     var origMathLastIndexOf = Math.lastIndexOf;
     for ( var i = 0; i < 15; i ++ ) {
         array[item++] = new TestCase(   SECTION,
                                         "var m = Math; m.lastIndexOf = String.prototype.lastIndexOf; m.lastIndexOf('t', "+ i + ")",
                                         ( i < 9 ? -1 : 9 ),
                                         (m = Math, m.lastIndexOf = String.prototype.lastIndexOf, m.lastIndexOf('t', i)) );
     }
 
deleted file mode 100644
--- a/test/acceptance/ecma3/dir.asc_args
+++ /dev/null
@@ -1,6 +0,0 @@
-# ASC args for directory and all subdirectories
-# two modes are available:
-# override| all command line arguments (except builtin.abc) are ignored and replaced by these
-# merge| merge these args in with the current args
-# specifiy an arg that starts with -no will disable the arg... eg: -no-optimize
-merge| -no-AS3
--- a/test/acceptance/shell.as
+++ b/test/acceptance/shell.as
@@ -66,16 +66,19 @@ var REFERENCEERROR = "ReferenceError: Er
 var RANGEERROR = "RangeError: Error #";
 var URIERROR = "URIError: Error #";
 var EVALERROR = "EvalError: Error #";
 var VERIFYERROR = "VerifyError: Error #";
 var VERBOSE = true;
 
 var    DEBUG =	false;
 
+// Was this compiled with -AS3?  Boolean Value.
+var as3Enabled = ((new Namespace).valueOf != Namespace.prototype.valueOf);
+
 function typeError( str ){
 	return str.slice(0,TYPEERROR.length+4);
 }
 
 function referenceError( str ){
 	return str.slice(0,REFERENCEERROR.length+4);
 }
 function rangeError( str ){
@@ -271,22 +274,16 @@ function writeFormattedResult( expect, a
 function writeLineToLog( string	) {
 	_print( string );
 }
 function writeHeaderToLog( string )	{
 	_print( string );
 }
 // end of print functions
 
-function as3Enabled():Boolean {
-    // return whether the test was compiled with -AS3
-    return ((new Boolean()).valueOf != Boolean.prototype.valueOf)
-}
-
-
 //  When running in the shell, run the garbage collector after the
 //  test has completed.
 
 function stopTest(){
     // Call ATS Function if not running in AVM
     if (playerType != 'AVMPlus') {
         try
         {
--- a/test/acceptance/testconfig.txt
+++ b/test/acceptance/testconfig.txt
@@ -529,8 +529,18 @@ ecma3/Expressions/e11_5_3, x86-mac.*valg
 as3/Definitions/Function/functionReturnTypes.*, x86-mac.*valgrind.*, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=590550
 
 as3/Math/e15_8_2_12_rest:Math\.min\(-0\.0. 0\.0\) ,  (^((?!(Dinterp|diff)).)*$|.*wordcode.*), expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=551587
 as3/Math/e15_1_2_2:radix 32, ^((?!diff).)*$ , expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=602912 
 
 as3/RegExp/replace, .* , skip , Do not run testcase until it passes cleanly through sandbox there are failures in interp mode
 #as3/RegExp/replace:str\.replace\(pattern. \".02-.01, ^((?!diff).)*$ , expectedfail , https://bugzilla.mozilla.org/show_bug.cgi?id=605552
 
+ecma3/Boolean/e15_6_4_2_2:tostr=Boolean.prototype.toString; Boolean.prototype.toString=tostr;x=new Boolean\(false\), ppc64-mac-tvm-(?!.*Dinterp).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608132
+ecma3/Boolean/e15_6_4_2_3:tostr=Boolean.prototype.toString; Boolean.prototype.toString=tostr; x=false, ppc64-mac-tvm-(?!.*Dinterp).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608132
+
+ecma3/Boolean/e15_6_4_3_2, ppc64-mac-tvm-(?!.*Dinterp).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/Boolean/e15_6_4_3_3, ppc64-mac-tvm-(?!.*Dinterp).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/Expressions/e11_2_1_2, ppc64-mac-tvm-(?!.*Dinterp).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/Expressions/e11_2_1_5, ppc64-mac-tvm-(?!.*Dinterp).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/ObjectObjects/e15_2_1_1_rt, ppc64-mac-tvm-(?!.*Dinterp).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/ObjectObjects/e15_2_2_1_rt, ppc64-mac-tvm-(?!.*Dinterp).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/TypeConversion/e9_9_1_rt, ppc64-mac-tvm-(?!.*Dinterp).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130