Bug 800381: add support in acceptance testsuite for multiple versions of asc (r=brbaker,r=cpeyer)
authorDan Schaffer <Dan.Schaffer@adobe.com>
Tue, 16 Oct 2012 13:50:18 -0700
changeset 7566 40afc58cab030f342bd054541720efcb9463a2fa
parent 7565 e7e08ab8fc7650e6cb4d83d326bc51bf15e8716a
child 7567 c22a2f1de742840a26bcd946267c308f5d8a7a7d
push id4262
push userdschaffe@adobe.com
push dateWed, 30 Jan 2013 19:01:31 +0000
reviewersbrbaker, cpeyer
bugs800381, 1125789
Bug 800381: add support in acceptance testsuite for multiple versions of asc (r=brbaker,r=cpeyer) detects asc version strings 1,2 or 3. adds version string to the runtests.py config strings. tested with asc1 and asc2. CL@1125789
test/acceptance/as3/Definitions/Classes/ClassDef/Bug118272Package.as
test/acceptance/as3/Definitions/Packages/FutureReservedPackageNames.as
test/acceptance/as3/Definitions/Packages/IdentifierPackageNames.as
test/acceptance/as3/Definitions/const/ConstVarInsideGlobalFunction5_rt.as
test/acceptance/as3/Expressions/asOperator/asTypeError.as
test/acceptance/as3/Expressions/e11_2_4.as
test/acceptance/as3/Expressions/isOperator/isOperTypeError.as
test/acceptance/as3/ShellClasses/toplevel.as
test/acceptance/ecma3/Expressions/e11_6_3.as
test/acceptance/ecma3/LexicalConventions/e7_7_3.as
test/acceptance/ecma3/Number/e15_7_1.as
test/acceptance/ecma3/Number/e15_7_2.as
test/acceptance/failconfig.txt
test/acceptance/regress/bug_673284.as
test/acceptance/runtests.py
test/acceptance/spidermonkey/js1_5/Regress/regress-387951-02.as
test/acceptance/spidermonkey/js1_5/Regress/regress-453173.as
test/acceptance/spidermonkey/js1_5/Regress/regress-477733.as
test/acceptance/testconfig.txt
test/util/runtestBase.py
--- a/test/acceptance/as3/Definitions/Classes/ClassDef/Bug118272Package.as
+++ b/test/acceptance/as3/Definitions/Classes/ClassDef/Bug118272Package.as
@@ -11,21 +11,21 @@ var BUGNUMBER = "";
 //-----------------------------------------------------------------------------
 
 import Bug118272Package.*;
 
 import com.adobe.test.Assert;
 import com.adobe.test.Utils;
 
 var eg = new BugTest();
-Assert.expectEq("Trying to initialize public  class identifier", "ReferenceError: Error #1056", Utils.referenceError(eg.thisError));
-Assert.expectEq("Trying to initialize default class identifier", "ReferenceError: Error #1056", Utils.referenceError(eg.thisError1));
-Assert.expectEq("Trying to initialize internal class identifier", "ReferenceError: Error #1056", Utils.referenceError(eg.thisError2));
-Assert.expectEq("Trying to initialize dynamic class identifier", "ReferenceError: Error #1056", Utils.referenceError(eg.thisError3));
-Assert.expectEq("Trying to initialize final class identifier", "ReferenceError: Error #1056", Utils.referenceError(eg.thisError4));
+Assert.expectEq("Trying to initialize public  class identifier", "ReferenceError: Error #1074", Utils.referenceError(eg.thisError));
+Assert.expectEq("Trying to initialize default class identifier", "ReferenceError: Error #1074", Utils.referenceError(eg.thisError1));
+Assert.expectEq("Trying to initialize internal class identifier", "ReferenceError: Error #1074", Utils.referenceError(eg.thisError2));
+Assert.expectEq("Trying to initialize dynamic class identifier", "ReferenceError: Error #1074", Utils.referenceError(eg.thisError3));
+Assert.expectEq("Trying to initialize final class identifier", "ReferenceError: Error #1074", Utils.referenceError(eg.thisError4));
 
 
 
 //test case in bug118272
 class A { }
 var thisError:String = "no error";
 try{
 A = null;
--- a/test/acceptance/as3/Definitions/Packages/FutureReservedPackageNames.as
+++ b/test/acceptance/as3/Definitions/Packages/FutureReservedPackageNames.as
@@ -1,16 +1,16 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 // Future Reserved Words as Package names
 package abstract {}
 package debugger {}
 package enum {}
-package goto {}
+// package goto {} - is reserved word in asc2
 //package interface {} - this is a reserved word in AS3 - moved to Errors/ReservedPackageNames.as
 package native {}
 package synchronized {}
 package throws {}
 package transient {}
 package volatile {}
 
 import com.adobe.test.Assert;
--- a/test/acceptance/as3/Definitions/Packages/IdentifierPackageNames.as
+++ b/test/acceptance/as3/Definitions/Packages/IdentifierPackageNames.as
@@ -2,17 +2,18 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 // Identifier package names
 package dynamic {}
 package each {}
 package final {}
 package get {}
-package internal {}
+// Not a valid testcase anymore - see jira bugs: CMP-1137, ASLSPEC-9
+// package internal {}
 package namespace {}
 package override {}
 package set {}
 package static {}
 
 
 
 // Internal Class Names as package names
--- a/test/acceptance/as3/Definitions/const/ConstVarInsideGlobalFunction5_rt.as
+++ b/test/acceptance/as3/Definitions/const/ConstVarInsideGlobalFunction5_rt.as
@@ -7,23 +7,22 @@ import com.adobe.test.Assert;
 // var VERSION = "ActionScript 3.0";           // Version of JavaScript or ECMA
 // var TITLE   = "Initialize a local const inside a function after its initializer";       // Provide ECMA section title or a description
 var BUGNUMBER = "";
 
 
 function myConstArgs( arg1 ) {
 
     const n2;
-    n2 = -( n1 / 30 );
+    n2 = -( arg1 / 30 );
     return n2;
 }
 
 
 var thisError:String = "no error";
-
 try
 {
     myConstArgs( 10 );
 }
 catch(err)
 {
     thisError = err.toString();
 }
--- a/test/acceptance/as3/Expressions/asOperator/asTypeError.as
+++ b/test/acceptance/as3/Expressions/asOperator/asTypeError.as
@@ -31,16 +31,17 @@ try {
     z = (x as temp);
 
 } catch(e:TypeError) {
     y = e;
 } finally {
     Assert.expectEq( "as Type Error: temp='hello'; (x as temp)", "TypeError: Error #1009", Utils.typeError(y) );
 }
 
+/* errors are now compile-time in falcon
 try {
     x = 13;
     y = "";
     z = (x as undefined);
 
 } catch(e:TypeError) {
     y = e;
 } finally {
@@ -64,14 +65,15 @@ try {
     z = (x as "string");
 
 } catch(e:TypeError) {
     y = e;
 } finally {
     Assert.expectEq( "as Type Error: (x as 'string')", "TypeError: Error #1009", Utils.typeError(y) );
 }
 
+*/
 
 //
 ////////////////////////////////////////////////////////////////
 
               // displays results.
 
--- a/test/acceptance/as3/Expressions/e11_2_4.as
+++ b/test/acceptance/as3/Expressions/e11_2_4.as
@@ -167,17 +167,17 @@ function getTestCases() {
    q=g;
    r=h;
    return "passed";
    }
 
    array[item++] = Assert.expectEq( 
                                     "Function with arguments of different data types",
                                     "passed",
-                                    MyFunction4(1,"string",[2,3,4],goo(),false,null,void));
+                                    MyFunction4(1,"string",[2,3,4],goo(),false,null,void 0));
 
    array[item++] = Assert.expectEq( 
                                     "Function with arguments of different data types",
                                     1,
                                      k);
 
    array[item++] = Assert.expectEq( 
                                     "Function with arguments of different data types",
--- a/test/acceptance/as3/Expressions/isOperator/isOperTypeError.as
+++ b/test/acceptance/as3/Expressions/isOperator/isOperTypeError.as
@@ -16,17 +16,18 @@ var myString:String = "hello";
 var result:String = "Type Error Not Thrown";
 try {
     myNumber is notAValidType;
 } catch (e:ReferenceError) {
     result = e;
 } finally {
     Assert.expectEq("is Operator: invalid Type - notAValidType","ReferenceError: Error #1065", Utils.referenceError(result));
 }
-
+// The following tests are now compile-time errors in falcon - See CMP-2028 for details.
+/*
 result = "Type Error Not Thrown";
 try {
     myNumber is 897;
 } catch (e:TypeError) {
     result = e;
 } finally {
     Assert.expectEq("is Operator: invalid Type - 897","TypeError: Error #1009", Utils.typeError(result));
 }
@@ -43,17 +44,17 @@ try {
 result = "Type Error Not Thrown";
 try {
     myNumber is myString;
 } catch (e:TypeError) {
     result = e;
 } finally {
     Assert.expectEq("is Operator: invalid Type - different var on RHS","TypeError: Error #1009", Utils.typeError(result));
 }
-
+*/
 result = "Value error not thrown";
 try {
     nonDeclaredVar is Object;
 } catch (e:ReferenceError) {
     result = e;
 } finally {
     Assert.expectEq("is Operator: undeclared var on LHS","ReferenceError: Error #1065",Utils.referenceError(result));
 }
--- a/test/acceptance/as3/ShellClasses/toplevel.as
+++ b/test/acceptance/as3/ShellClasses/toplevel.as
@@ -10,17 +10,17 @@
 
     import avmplus.System
     import flash.system.Capabilities
 
 import com.adobe.test.Assert;
 
 
     Assert.expectEq("queue a gc collection",
-      void,
+      void 0,
       System.queueCollection());
 
     Assert.expectEq("playerType is AVMPlus",
       "AVMPlus",
       Capabilities.playerType);
 
     Assert.expectEq("isDebugger is true/false",
       true,
--- a/test/acceptance/ecma3/Expressions/e11_6_3.as
+++ b/test/acceptance/ecma3/Expressions/e11_6_3.as
@@ -55,15 +55,15 @@ function getTestCases() {
     array[item++] = Assert.expectEq(   "0 - 745.33",       -745.33,      0  - 745.33);
     array[item++] = Assert.expectEq(   "67007.5 + 0",     67007.5 ,      67007.5  + 0 );
     array[item++] = Assert.expectEq(   "2480.00 - 0",     2480.00 ,      2480.00 - 0 );
 
 // the sum of two nonzero finite values of the same magnitude and opposite sign is +0
     array[item++] = Assert.expectEq(   "2480.00 + -2480.00",     +0 ,      2480.00 + -2480.00 );
     array[item++] = Assert.expectEq(   "-268.05 + 268.05",     +0 ,     -268.05 + 268.05 );
     
-    array[item++] = Assert.expectEq(   "Number.MAX_VALUE + 1",     "1.79769313486231e+308",  Number.MAX_VALUE + 1+"");
-    array[item++] = Assert.expectEq(   "Number.MAX_VALUE + 99.99",     "1.79769313486231e+308",  Number.MAX_VALUE + 99.99+"" );
+    array[item++] = Assert.expectEq(   "Number.MAX_VALUE + 1",     "1.797693134862316e+308",  Number.MAX_VALUE + 1+"");
+    array[item++] = Assert.expectEq(   "Number.MAX_VALUE + 99.99",     "1.797693134862316e+308",  Number.MAX_VALUE + 99.99+"" );
     array[item++] = Assert.expectEq(   "4324.43 + (-64.000503)",      4260.429497, 4324.43 + (-64.000503) );
     
     
     return ( array );
 }
--- a/test/acceptance/ecma3/LexicalConventions/e7_7_3.as
+++ b/test/acceptance/ecma3/LexicalConventions/e7_7_3.as
@@ -190,80 +190,80 @@ function getTestCases() {
     array[item++] = Assert.expectEq(  "077",  77,   077 );
 
     array[item++] = Assert.expectEq(  "0.00000000001",  0.00000000001,  0.00000000001 );
     array[item++] = Assert.expectEq(  "0.00000000001e-2",  0.0000000000001,  0.00000000001e-2 );
 
 
     array[item++] = Assert.expectEq( 
                                   "123456789012345671.9999",
-                                  "123456789012345660",
+                                  "123456789012345700",
                                   123456789012345671.9999 +"");
     array[item++] = Assert.expectEq( 
                                "123456789012345672",
-                               "123456789012345660",
+                               "123456789012345700",
                                123456789012345672 +"");
 
     array[item++] = Assert.expectEq(   
                                     "123456789012345672.000000000000000000000000000",
-                                   "123456789012345660",
+                                   "123456789012345700",
                                     123456789012345672.000000000000000000000000000 +"");
 
     array[item++] = Assert.expectEq( 
            "123456789012345672.01",
-           "123456789012345680",
+           "123456789012345700",
            123456789012345672.01 +"");
 
     array[item++] = Assert.expectEq( 
-           "123456789012345672.000000000000000000000000001+'' == 123456789012345680 || 123456789012345660",
+           "123456789012345672.000000000000000000000000001+'' == 123456789012345700 || 123456789012345660 ",
            true,
-           ( 123456789012345672.00000000000000000000000000 +""  == 1234567890 * 100000000 + 12345680 )
+           ( 123456789012345672.00000000000000000000000000 +""  == 1234567890 * 100000000 + 12345700 )
            ||
            ( 123456789012345672.00000000000000000000000000 +""  == 1234567890 * 100000000 + 12345660) );
 
     array[item++] = Assert.expectEq( 
            "123456789012345673",
-           "123456789012345680",
+           "123456789012345700",
            123456789012345673 +"" );
 
     array[item++] = Assert.expectEq( 
            "-123456789012345671.9999",
-           "-123456789012345660",
+           "-123456789012345700",
            -123456789012345671.9999 +"" );
 
     array[item++] = Assert.expectEq( 
            "-123456789012345672",
-           "-123456789012345660",
+           "-123456789012345700",
            -123456789012345672+"");
 
     array[item++] = Assert.expectEq( 
            "-123456789012345672.000000000000000000000000000",
-           "-123456789012345660",
+           "-123456789012345700",
            -123456789012345672.000000000000000000000000000 +"");
 
     array[item++] = Assert.expectEq( 
            "-123456789012345672.01",
-           "-123456789012345680",
+           "-123456789012345700",
            -123456789012345672.01 +"" );
 
     array[item++] = Assert.expectEq( 
            "-123456789012345672.000000000000000000000000001 == -123456789012345680 or -123456789012345660",
            true,
            (-123456789012345672.000000000000000000000000001 == -1234567890 * 100000000 -12345680)
            ||
            (-123456789012345672.000000000000000000000000001 == -1234567890 * 100000000 -12345660));
 
     array[item++] = Assert.expectEq( 
            -123456789012345673,
-           "-123456789012345680",
+           "-123456789012345700",
            -123456789012345673 +"");
 
     array[item++] = Assert.expectEq( 
            "12345678901234567890",
-           "12345678901234567000",
+           "12345678901234570000",
            12345678901234567890 +"" );
 
 
 
   /*array[item++] = Assert.expectEq(  "12345678901234567",         "12345678901234567",        12345678901234567+"" );
     array[item++] = Assert.expectEq(  "123456789012345678",        "123456789012345678",       123456789012345678+"" );
     array[item++] = Assert.expectEq(  "1234567890123456789",       "1234567890123456789",      1234567890123456789+"" );
     array[item++] = Assert.expectEq(  "12345678901234567890",      "12345678901234567890",     12345678901234567890+"" );
--- a/test/acceptance/ecma3/Number/e15_7_1.as
+++ b/test/acceptance/ecma3/Number/e15_7_1.as
@@ -54,17 +54,17 @@ function getTestCases() {
 
     array[item++] = Assert.expectEq( "Number(new Number(false)",         0,   Number(new Number(false)) );
     
 
     array[item++] = Assert.expectEq( "Number('3000000000.25')",          (3000000000.25),   Number("3000000000.25") );
 
     array[item++] = Assert.expectEq( "Number(-'3000000000.25')",          (-3000000000.25),   Number(-"3000000000.25") );
 
-    array[item++] = Assert.expectEq( "Number('1.79769313486231e+308')",(Number.MAX_VALUE+""),Number("1.79769313486231e+308")+"" );
+    array[item++] = Assert.expectEq( "Number('1.797693134862316e+308')",(Number.MAX_VALUE+""),Number("1.797693134862316e+308")+"" );
     // https://bugzilla.mozilla.org/show_bug.cgi?id=555805 - MIN_VALUE is not a cross-platform constant,
     // This test is not useful.  The number formatter prevents us from making it useful.
     //array[item++] = Assert.expectEq( "Number('4.9406564584124654e-324')",(Number.MIN_VALUE+""),Number("4.9406564584124654e-324")+"" );
     array[item++] = Assert.expectEq( "Number.MIN_VALUE > 0", Number.MIN_VALUE > 0, true);
     array[item++] = Assert.expectEq( "Number.MIN_VALUE/2", Number.MIN_VALUE/2, 0.0);
     array[item++] = Assert.expectEq( "Number(new MyObject(100))",  100,        Number(new MyObject(100)) );
 
    var s:String =
--- a/test/acceptance/ecma3/Number/e15_7_2.as
+++ b/test/acceptance/ecma3/Number/e15_7_2.as
@@ -182,17 +182,17 @@ function getTestCases() {
 
     array[item++] = Assert.expectEq( "new Number(new Number(false)",         0,   new Number(new Number(false)) );
     
 
     array[item++] = Assert.expectEq( "new Number('3000000000.25')",          (3000000000.25),   new Number("3000000000.25") );
 
     array[item++] = Assert.expectEq( "new Number(-'3000000000.25')",          (-3000000000.25),   new Number(-"3000000000.25") );
 
-    array[item++] = Assert.expectEq( "new Number('1.79769313486231e+308')",(Number.MAX_VALUE+""),new Number("1.79769313486231e+308")+"" );
+    array[item++] = Assert.expectEq( "new Number('1.797693134862316e+308')",(Number.MAX_VALUE+""),new Number("1.797693134862316e+308")+"" );
     // https://bugzilla.mozilla.org/show_bug.cgi?id=555805 - MIN_VALUE is not a cross-platform constant,
     // This test is not useful.  The number formatter prevents us from making it useful.
     //array[item++] = Assert.expectEq( "new Number('4.9406564584124654e-324')",(Number.MIN_VALUE+""),new Number("4.9406564584124654e-324")+"" );
     array[item++] = Assert.expectEq( "new Number(new MyObject(100))",  100,        new Number(new MyObject(100)) );
 
    var s:String =
 "0xFFFFFFFFFFFFF80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
 
--- a/test/acceptance/failconfig.txt
+++ b/test/acceptance/failconfig.txt
@@ -175,17 +175,17 @@ spidermonkey/js1_5/Array/regress-364104:
 spidermonkey/js1_5/Exceptions/regress-123002:(^Class|^Section), .*,, expectedfail, \
     Class.constructor.length should list number of params in constructor function?
 spidermonkey/js1_5/Function/regress-364023, .*,, skip, uses eval
 spidermonkey/js1_5/Regress/regress-159334, .*,, skip, need to replicate without eval
 spidermonkey/js1_5/GC/.*, .*,, skip, GC tests for spidermonkey
 spidermonkey/js1_5/Object/regress-308806-01, .*, diff, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=550358
 spidermonkey/js1_5/Regress/regress-58116, .*,, skip, locale-specific test: https://bugzilla.mozilla.org/show_bug.cgi?id=564127
 spidermonkey/js1_5/Regress/regress-104077, .*,, skip, verifyerror: https://bugzilla.mozilla.org/show_bug.cgi?id=550512
-spidermonkey/js1_5/Regress/regress-140974:^Section [3-6].*, .*,, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=550530
+spidermonkey/js1_5/Regress/regress-140974:^Section [3-6].*, asc1,, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=550530
 spidermonkey/js1_5/Regress/regress-169559, .*,, skip, need to investigate if global performance is really an issue
 spidermonkey/js1_5/Regress/regress-174709, .*,, skip, need to figure out what test is trying to do
 spidermonkey/js1_5/Regress/regress-179524, .*,, skip, needs investigation, may not have to port this one over
 
 # Test Requires building a large string (previously evaluated using eval or Function Body form)
 spidermonkey/js1_5/Regress/regress-191633, .*,, skip, test builds very large string with comments and then evals it - may need to create huge file
 spidermonkey/js1_5/Regress/regress-367561-01, .*,, skip, need to build large test string
 spidermonkey/js1_5/Regress/regress-367561-03, .*,, skip, need to build large test string
@@ -205,17 +205,17 @@ spidermonkey/js1_5/Regress/regress-31099
 spidermonkey/js1_5/Regress/regress-311071, .*,, skip, how should e4x comments behave in as3?
 spidermonkey/js1_5/Regress/regress-31255, .*, ,exclude, how should e4x comments behave in as3?, excluding since it will not compile
 spidermonkey/js1_5/Regress/regress-334807-0.*, .*,, skip, need to investigate if this is a legit bug
 spidermonkey/js1_5/Regress/regress-352009, .*,, exclude, should array comprehension work?, excluding since it will not compile
 
 spidermonkey/js1_5/Regress/regress-230216-1:Section 1.*, .*, diff, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=550976
 spidermonkey/js1_5/Regress/regress-247179:RegExp \\b.*, .*, diff, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=550984
 spidermonkey/js1_5/Regress/regress-248444:.*Section (4|5).*, .*, diff, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=550987
-spidermonkey/js1_5/Regress/regress-252892:Section (5|7).*, .*, diff, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=550990
+spidermonkey/js1_5/Regress/regress-252892:Section (5|7).*, asc1, diff, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=550990
 
 spidermonkey/js1_5/Regress/regress-271716-n, .*,, skip, \
     takes too long to run - tries to crash by doing while (1) a=new Array(a) - possibly run in deep?
 
 spidermonkey/js1_5/Regress/regress-274035:Array.prototype.(concat|splice).*, .*, diff, expectedfail, \
     https://bugzilla.mozilla.org/show_bug.cgi?id=551032
 
 spidermonkey/js1_5/Regress/regress-280769-(4|5), .*, diff, expectedfail, Needs further investigation into what test is trying to do
@@ -301,46 +301,46 @@ as3/ByteArray/ByteArrayLzma ,.*valgrind.
 # This is because the testing diffs the out between 32 and 64bit plus -Ojit vs -Dinterp, and since the avmdiff
 # script does not return PASS/FAIL for each testcase but instead just a single PASS/FAIL then we need to expect
 # the entire abc to fail and not just an individual test.
 as3/Math/e15_1_2_2:radix 32, .*, diff, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=602912 
 
 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
+    ppc64-mac, 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
+    ppc64-mac, 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
+ecma3/Boolean/e15_6_4_3_2, ppc64-mac-.*, Dinterp, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/Boolean/e15_6_4_3_3, ppc64-mac-.*, Dinterp, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/Expressions/e11_2_1_2, ppc64-mac-.*, Dinterp, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/Expressions/e11_2_1_5, ppc64-mac-.*, Dinterp, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/ObjectObjects/e15_2_1_1_rt, ppc64-mac-.*, Dinterp, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/ObjectObjects/e15_2_2_1_rt, ppc64-mac-.*, Dinterp, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/TypeConversion/e9_9_1_rt, ppc64-mac-.*, Dinterp, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
 
 # These failed before exact tracing landed, then started working again.
 # Probably there's still a bug so just skip them.
-ecma3/Boolean/e15_6_4_3_2, ppc64-mac-tvm-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
-ecma3/Boolean/e15_6_4_3_3, ppc64-mac-tvm-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
-ecma3/Expressions/e11_2_1_2, ppc64-mac-tvm-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
-ecma3/Expressions/e11_2_1_5, ppc64-mac-tvm-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
-ecma3/ObjectObjects/e15_2_1_1_rt, ppc64-mac-tvm-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
-ecma3/ObjectObjects/e15_2_2_1_rt, ppc64-mac-tvm-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
-ecma3/TypeConversion/e9_9_1_rt, ppc64-mac-tvm-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/Boolean/e15_6_4_3_2, ppc64-mac-asc[0-9]+-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/Boolean/e15_6_4_3_3, ppc64-mac-asc[0-9]+-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/Expressions/e11_2_1_2, ppc64-mac-asc[0-9]+-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/Expressions/e11_2_1_5, ppc64-mac-asc[0-9]+-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/ObjectObjects/e15_2_1_1_rt, ppc64-mac-asc[0-9]+-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/ObjectObjects/e15_2_2_1_rt, ppc64-mac-asc[0-9]+-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
+ecma3/TypeConversion/e9_9_1_rt, ppc64-mac-asc[0-9]+-(?!.*Dinterp).*,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=608130
 
 
 as3/sampling/BackwardBranches , .* ,, skip, Bugzilla 614529
 as3/sampling/Callback , .* ,, skip,  Bugzilla 614529
 as3/sampling/FunctionEntry , .* ,, skip,  Bugzilla 614529
 
-as3/Definitions/Function/OneOptArgFunction, mips-lnx-tvm-.*,, skip, Intermittent Failure: Bugzilla 638533
+as3/Definitions/Function/OneOptArgFunction, mips-lnx-.*,, skip, Intermittent Failure: Bugzilla 638533
 # Temporarily re-instate to see if removing asteammips1 from build system (in bug 679515) fixed this as well.
-ecma3/Statements/eregress_74474_003, mips-lnx-tvm-.*,, skip, Intermittent Failure: Bugzilla 658253
+ecma3/Statements/eregress_74474_003, mips-lnx-.*,, skip, Intermittent Failure: Bugzilla 658253
 
 regress/bug_654807:semisealed.*, .*-ES,, skip, Bugzilla 661575
 spidermonkey/js1_5/Array/regress-465980-02, .*, diff,expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=681399
 
 ####################
 # AOT specific
 ####################
 ecma3/Exceptions/bug127913,                     AOT ,, skip, Need to follow up as this hangs when AOT compiled
@@ -416,16 +416,37 @@ spidermonkey/js1_5/Regress/regress-36096
 spidermonkey/js1_5/Regress/regress-360969-04 , .*diff,, skip, Testcase outputs an execution time which is not part of the test and can cause a failure INVESTIGATE
 abcasm/bug_554915b, .* , , skip, testcase can cause a timeout INVESTIGATE
 
 regress/security/bug_689243b:Correct exception thrown , (x86|arm)-.*-Dinterp , , expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=689243
 
 ####################
 # Workers
 ####################
-regress/.*243b,(x86-lnx-tvm-release-Dinterp|arm-android-tvm-release-Dinterp|arm-android-tvm-release-Dinterp|x86-win-tvm-release-Dinterp), , expectedfail, bug 
+regress/.*243b,(x86-lnx-asc[0-9]+-release-Dinterp|arm-android-asc[0-9]+-release-Dinterp|arm-android-asc[0-9]+-release-Dinterp|x86-win-asc[0-9]+-release-Dinterp), , expectedfail, bug 
 regress/.*243a,.*,, skip, bug
 as3/ShellClasses/toplevel:exitcode, arm-lnx,, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=698855 System.exit(n) always exits 1 linux arm does not support exitcode
 as3/Workers/(ByteArrayWorkersLzma|WorkerDomain|Worker|WorkerErrors|regress/bug774294|regress/bug774302), (android|arm-) ,, skip, ARM platforms not supported https://bugzilla.mozilla.org/show_bug.cgi?id=755345
 as3/Workers/(ByteArrayWorkers|RemoteCall|WorkerCreateMax), .*, ,skip, https://bugzilla.mozilla.org/show_bug.cgi?id=774332
 as3/Workers/(Worker|WorkerDomain|WorkerCreateMax|WorkerErrors|regress/bug774294|regress/bug774302), -debug ,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=774294
 as3/Workers/ByteArrayWorkersLzma, -debug ,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=778727
-as3/Workers/ByteArrayWorkersLzma, x64-win-tvm ,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=780127
+as3/Workers/ByteArrayWorkersLzma, x64-win ,, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=780127
+
+####################
+# ASC2
+####################
+ecma3/Expressions/e11_6_3 : Number.MAX_VALUE \+, asc1,, expectedfail, precision increased in ASC2 bug 3346729
+ecma3/LexicalConventions/e7_7_3 : (123456789012345671.9999|123456789012345672 F|123456789012345672.000000000000000000000000000|123456789012345672.01|123456789012345673|-123456789012345680 F|12345678901234567890), asc1,, expectedfail, precision differences in ASC2 bug 3346729
+as3/Definitions/Variable/ConstVariables : Class2 const variable classItem6, asc[23],, expectedfail, static const when import class fails bug 3346810
+as3/Directives/usenamespace/NSInsideTryCatch, asc[23],, skip, not legal in falcon - see CMP-1147 for details
+as3/Directives/usenamespace/longQualifier, asc[23] ,, skip, CMP-1150
+as3/RuntimeErrors/Error1112ArgCountMismatchOnClassCoercion, asc[23] ,, skip, CMP-1177
+as3/Definitions/const/ConstConditionalInitializationInClass3_rt, asc[23],, skip, CMP-1177 - increment op is invalid
+as3/Expressions/QualifiedReferences/AS3NSReferences, asc[23],, skip, importing namespace causes NPE: http://watsonexp.corp.adobe.com/#bug=3345064
+as3/Expressions/QualifiedReferences/AssignmentExp, asc[23],, skip, importing namespace causes NPE: http://watsonexp.corp.adobe.com/#bug=3345064
+as3/RuntimeErrors/Error1041RHSOfIsMustBeClass, asc[23],, skip, CMP-1177
+spidermonkey/js1_5/Regress/regress-326453, asc[23],, skip, Skip this test since this is not permitted in falcon - function def in a with statement not in a block.
+as3/Vector/bug_683507, asc[23],, skip, CMP-2130
+as3/Definitions/Classes/ClassDef/Bug118272Package : Trying to initialize public  class identifier, asc1,, expectedfail, different runtime error #1074 instead of #1056
+as3/Definitions/Classes/ClassDef/Bug118272Package : Trying to initialize default class identifier, asc1,, expectedfail, different runtime error #1074 instead of #1056
+as3/Definitions/Classes/ClassDef/Bug118272Package : Trying to initialize internal class identifier, asc1,, expectedfail, different runtime error #1074 instead of #1056
+as3/Definitions/Classes/ClassDef/Bug118272Package : Trying to initialize dynamic class identifier, asc1,, expectedfail, different runtime error #1074 instead of #1056
+as3/Definitions/Classes/ClassDef/Bug118272Package : Trying to initialize final class identifier, asc1,, expectedfail, different runtime error #1074 instead of #1056
--- a/test/acceptance/regress/bug_673284.as
+++ b/test/acceptance/regress/bug_673284.as
@@ -56,17 +56,19 @@ for (var i = 0; i < 10; i ++) {
     subject.match(/(?i)a(?-i)b(abc){1,2}c/g);
     subject.match(/(?i)a(?-i)b(b+?|a){1,2}?c/g);
     subject.match(/(?i)a(?-i)bb+?c/g);
     subject.match(/(?i)a(?-i)b(b+|a){1,2}c/g);
     subject.match(/(?i)a(?-i)b(b+|a){1,2}?c/g);
     subject.match(/(?i)a(?-i)b(b*|ba){1,2}?c/g);
     subject.match(/(?i)a(?-i)b(ba|b*){1,2}?c/g);
     subject.match(/(?i)a(?-i)b\c/g);
+    /* bug http://watsonexp.corp.adobe.com/#bug=3345099
     subject.match(/(?i)a(?-i)b[c/g);
+    */
     subject.match(/(?i)a(?-i)bc{c/g);
     subject.match(/(?i)a(?-i)b[ab\]cde]c/g);
     subject.match(/(?i)a(?-i)b[]cde]c/g);
     subject.match(/(?i)a(?-i)b[0-9]+c/g);
     subject.match(/(?i)a(?-i)b.*c/g);
 
 }
 
--- a/test/acceptance/runtests.py
+++ b/test/acceptance/runtests.py
@@ -113,16 +113,17 @@ class AcceptanceRuntest(RuntestBase):
 
     def run(self):
         self.setEnvironVars()
         self.loadPropertiesFile()
         self.setOptions()
         self.parseOptions()
         self.setTimestamp()
         self.checkPath()
+        (self.ascbuild,self.ascversion)=self.getAscVersion(self.asc)
         if not self.config:
             self.determineConfig()
         if self.verifyonly and 'debugger' not in self.vmtype:
             exit('You must be running a debugger build in order to use the -Dverifyonly option')
         if self.rebuildtests==False and (re.search('arm-winmobile-emulator',self.config)!=None or self.osName=='winmobile'):
             if re.search('^arm-winmobile-emulator',self.config)==None:
                 print('ERROR: to use windows mobile build set --config arm-winmobile-emulator-tvm-release or install cygwin utility /usr/bin/file.exe')
                 sys.exit(1)
--- a/test/acceptance/spidermonkey/js1_5/Regress/regress-387951-02.as
+++ b/test/acceptance/spidermonkey/js1_5/Regress/regress-387951-02.as
@@ -18,15 +18,15 @@ addtestcases();
 //-----------------------------------------------------------------------------
 
 function addtestcases()
 {
 
   //printBugNumber(BUGNUMBER);
   //printStatus (summary);
  
-  "" + (function() { if(delete(null?0:{})){[]} });
+  "" + (function() { if(delete(null?0:{})){var x=[]} });
 
   Assert.expectEq(summary, expect, actual);
 
 
 }
 
--- a/test/acceptance/spidermonkey/js1_5/Regress/regress-453173.as
+++ b/test/acceptance/spidermonkey/js1_5/Regress/regress-453173.as
@@ -21,17 +21,17 @@ function addtestcases()
 
   //printBugNumber(BUGNUMBER);
   //printStatus (summary);
 
   var i;
 
 
 
-  for(i=0;i<4;++i) [,];
+  for(i=0;i<4;++i) var x=[,];
 
 
 
   Assert.expectEq(summary, expect, actual);
 
 
 }
 
--- a/test/acceptance/spidermonkey/js1_5/Regress/regress-477733.as
+++ b/test/acceptance/spidermonkey/js1_5/Regress/regress-477733.as
@@ -21,17 +21,17 @@ function addtestcases()
 {
 
   //printBugNumber(BUGNUMBER);
   //printStatus (summary);
 
 
 
   function g() {
-    [];
+    var x = [];
   }
 
   try {
     d.d.d;
   } catch(e) {
     void (function(){});
   }
 
--- a/test/acceptance/testconfig.txt
+++ b/test/acceptance/testconfig.txt
@@ -39,17 +39,17 @@
 #
 # comments: please include bug reference and reason for the entry
 #
 ########################################################################################################################
 
 # Some operating systems do not adjust past dates for historical DST settings
 regress/bug_606478:.*(19\d\d|200[0-6]).*, (arm-lnx|mips-lnx|win), diff, expectedfail, Operating system does not adjust past dates for historical DST settings
 # These fail when run on panda boards. Turning them off for all android to avoid unexpected passes when run againnst actual phone devices.
-regress/bug_606478:.*(19\d\d|200[0-6]).*, (arm-android-ssh-tvm-), diff, skip, Skip on android because panda boards do not adjust past dates for historical DST settings
+regress/bug_606478:.*(19\d\d|200[0-6]).*, (arm-android-ssh-), diff, skip, Skip on android because panda boards do not adjust past dates for historical DST settings
 
 ####################
 # abcasm:
 ####################
 abcasm/adhoc , .* ,, skip, inconsistencies in different debug output, need to implement regex matching of diffs
 abcasm/abs_helper , .* ,, skip, abcasm helper, not a test
 # Test uses abcasm to check a boundary condition, failure is correct result
 abcasm/traitsSparseSlots , .* ,, expectedfail , Error 1107 is correct output
@@ -92,19 +92,19 @@ as3/ByteArray/ByteArray_bug662851 , .*32
 
 # Different error codes based on runmode for swf9/10, this test has been superseded by vectorIndexRangeExceptions.as
 as3/Vector/nonindexproperty, .*diff, , skip, https://bugzilla.mozilla.org/show_bug.cgi?id=456852
 
 
 ####################
 # Windows Mobile
 ####################
-mops/mops, arm-winmobile-tvm.*,, skip, multiple abc files not supported on winmo devices
-abcasm/.*, arm-winmobile-tvm.*,, skip, multiple abc files not supported on winmo devices
-versioning/.*, arm-winmobile.*,, skip, passing args to abc does not work with winmo tools that we use
+mops/mops, arm-winmobile,, skip, multiple abc files not supported on winmo devices
+abcasm/.*, arm-winmobile,, skip, multiple abc files not supported on winmo devices
+versioning/.*, arm-winmobile,, skip, passing args to abc does not work with winmo tools that we use
 
 ####################
 # ARM
 ####################
 ecma3/Unicode/u5000_CJKUnifiedIdeographs , (arm|mips|sh4),, deep , test runs too slowly
 ecma3/Unicode/u6000_CJKUnifiedIdeographs , (arm|mips|sh4),, deep , test runs too slowly
 ecma3/Unicode/u7000_CJKUnifiedIdeographs , (arm|mips|sh4),, deep , test runs too slowly
 ecma3/Unicode/u8000_CJKUnifiedIdeographs , (arm|mips|sh4),, deep , test runs too slowly
@@ -114,20 +114,20 @@ ecma3/Unicode/u3400_CJKUnifiedIdeographs
 ecma3/Unicode/uAC00_HangulSyllables , (arm|mips|sh4),, deep , test runs too slowly
 ecma3/Unicode/uA000_YiSyllables, (arm|mips|sh4),, deep, tests run too slowly on winmo
 mops/mops , (arm|mips|sh4),, deep, test runs too slowly
 
 ####################
 # Windows Mobile Emulator
 ####################
 # emulator is not using DST by default
-ecma3/Date/e15_9_5_14, arm-winmobile-emulator-tvm,, skip, emulator DST problem
-ecma3/Date/e15_9_5_34_1, arm-winmobile-emulator-tvm,, skip, emulator DST problem
-ecma3/Date/e15_9_5_35_1, arm-winmobile-emulator-tvm,, skip, emulator DST problem
-ecma3/Date/e15_9_5_10, arm-winmobile-emulator-tvm,, skip, tests run too slowly on winmo
+ecma3/Date/e15_9_5_14, arm-winmobile-emulator,, skip, emulator DST problem
+ecma3/Date/e15_9_5_34_1, arm-winmobile-emulator,, skip, emulator DST problem
+ecma3/Date/e15_9_5_35_1, arm-winmobile-emulator,, skip, emulator DST problem
+ecma3/Date/e15_9_5_10, arm-winmobile-emulator,, skip, tests run too slowly on winmo
 
 ####################
 # SH4
 ####################
 abcasm/syntaxErrors , sh4.*,, skip, sh4 box lacks java
 versioning/bugcompat , sh4.*,, skip, sh4 box lacks java
 as3/Expressions/indexProperties , sh4.*,, skip , \
     This testcase causes the SH4 box to run out of memory when running inside buildbot  
@@ -141,24 +141,24 @@ misc/performance_placeholder, .*,, perfo
 as3/Definitions/Function/RestOptimization,  .* ,  (interp|wordcode|(debugger-(?!.*Dnodebugger))) , \
     performance, Optimization not enabled unless running JIT without a debugger
 as3/Definitions/Function/ArgumentsOptimization,  .* ,  (interp|wordcode|(debugger-(?!.*Dnodebugger))) , \
     performance, Optimization not enabled unless running JIT without a debugger
 
 ####################
 # run slow tests in deep test phase
 ####################
-ecma3/Unicode/u3400_CJKUnifiedIdeographsExtensionA,((sparc-sol|x64-win|ppc-mac|ppc64-mac)-tvm-debug(|debugger).*),, deep, bug 499685 skip slow tests
-ecma3/Unicode/u5000_CJKUnifiedIdeographs,((sparc-sol|x64-win|ppc-mac|ppc64-mac)-tvm-debug(|debugger).*),, deep, bug 499685 skip slow tests
-ecma3/Unicode/u6000_CJKUnifiedIdeographs,((sparc-sol|x64-win|ppc-mac|ppc64-mac)-tvm-debug(|debugger).*),, deep, bug 499685 skip slow tests
-ecma3/Unicode/u7000_CJKUnifiedIdeographs,((sparc-sol|x64-win|ppc-mac|ppc64-mac)-tvm-debug(|debugger).*),, deep, bug 499685 skip slow tests
-ecma3/Unicode/u9000_CJKUnifiedIdeographs,((sparc-sol|x64-win|ppc-mac|ppc64-mac)-tvm-debug(|debugger).*),, deep, bug 499685 skip slow tests
-ecma3/Unicode/uE000_PrivateUseArea, ((sparc-sol|x64-win|ppc-mac|ppc64-mac)-tvm-debug(|debugger).*),, deep, bug 499685 skip slow tests
-ecma3/Unicode/uAC00_HangulSyllables, ((sparc-sol|x64-win|x64-lnx|ppc-mac|ppc64-mac)-tvm-debug(|debugger).*),, deep, bug 499685 skip slow tests
-mops/mops, ((sparc-sol|x64-win|ppc-mac|ppc64-mac)-tvm-debug(|debugger).*),, deep, bug 499685 skip slow tests
+ecma3/Unicode/u3400_CJKUnifiedIdeographsExtensionA,((sparc-sol|x64-win|ppc-mac|ppc64-mac)-asc[0-9]+-debug(|debugger).*),, deep, bug 499685 skip slow tests
+ecma3/Unicode/u5000_CJKUnifiedIdeographs,((sparc-sol|x64-win|ppc-mac|ppc64-mac)-asc[0-9]+-debug(|debugger).*),, deep, bug 499685 skip slow tests
+ecma3/Unicode/u6000_CJKUnifiedIdeographs,((sparc-sol|x64-win|ppc-mac|ppc64-mac)-asc[0-9]+-debug(|debugger).*),, deep, bug 499685 skip slow tests
+ecma3/Unicode/u7000_CJKUnifiedIdeographs,((sparc-sol|x64-win|ppc-mac|ppc64-mac)-asc[0-9]+-debug(|debugger).*),, deep, bug 499685 skip slow tests
+ecma3/Unicode/u9000_CJKUnifiedIdeographs,((sparc-sol|x64-win|ppc-mac|ppc64-mac)-asc[0-9]+-debug(|debugger).*),, deep, bug 499685 skip slow tests
+ecma3/Unicode/uE000_PrivateUseArea, ((sparc-sol|x64-win|ppc-mac|ppc64-mac)-asc[0-9]+-debug(|debugger).*),, deep, bug 499685 skip slow tests
+ecma3/Unicode/uAC00_HangulSyllables, ((sparc-sol|x64-win|x64-lnx|ppc-mac|ppc64-mac)-asc[0-9]+-debug(|debugger).*),, deep, bug 499685 skip slow tests
+mops/mops, ((sparc-sol|x64-win|ppc-mac|ppc64-mac)-asc[0-9]+-debug(|debugger).*),, deep, bug 499685 skip slow tests
 regress/bug_483783, .*,, deep, skip slow tests - https://bugzilla.mozilla.org/show_bug.cgi?id=483783
 mmgc/pauseForGCIfCollectionImminent, mips-.*,, deep,  bug 499685 skip slow tests
 misc/catchableTimeout, .*,, deep, skip slow tests
 misc/doubleTimeout, .*,, deep, skip slow tests
 spidermonkey/js1_5/Array/regress-157652, .*,, deep, skip slow tests
 spidermonkey/js1_5/Regress/regress-203278-1, .*,, deep, skip slow tests
 spidermonkey/js1_5/Regress/regress-360969-0(5|6), .*,, deep, skip slow tests
 spidermonkey/js1_5/Regress/regress-80981, .*,, deep, skip slow tests
@@ -291,17 +291,17 @@ as3/Vector/nonindexproperty,    AOT ,, s
 as3/Vector/vectorIndexRangeExceptions, AOT ,, skip, AOT does not support versioning yet
 as3/Workers/.*,                 AOT ,, skip, workers feature not yet supported on iOS
 e4x/XML/e13_4_4_29,             AOT ,, skip, AOT does not support versioning yet
 e4x/XML/e13_4_4_3,              AOT ,, skip, AOT does not support versioning yet
 e4x/XML/e13_4_4_32,             AOT ,, skip, AOT does not support versioning yet
 ecma3/JSON/versioned,           AOT ,, skip, AOT does not support versioning yet
 misc/bug_526662,                AOT ,, skip, AOT does not support versioning yet
 misc/invalid_opcodes,           AOT ,, skip, Handled by the GO
-mops/mops.abc_,                 AOT ,, skip, precompilation of AOT application currently doesn't handle precompiled abcs
+mops/mops,                      AOT ,, skip, precompilation of AOT application currently doesn't handle precompiled abcs
 regress/bug_498979,             AOT ,, skip, AOT catches Verify errors at compile time 
 regress/bug_520888,             AOT ,, skip, AOT catches Verify errors at compile time
 regress/bug_548684,             AOT ,, skip, AOT catches Verify errors at compile time
 regress/bug_551587_2,           AOT ,, skip, AOT does not support versioning yet
 regress/bug_555045,             AOT ,, skip, AOT catches Verify errors at compile time
 regress/bug_555048,             AOT ,, skip, AOT catches Verify errors at compile time
 regress/bug_555053,             AOT ,, skip, AOT catches Verify errors at compile time
 regress/bug_555097a,            AOT ,, skip, AOT catches Verify errors at compile time
@@ -331,17 +331,17 @@ regress/security/bug636565,     AOT ,, s
 regress/vector_domain_bug,      AOT ,, skip, AOT does not support loadBytes()
 versioning/.*,                  AOT ,, skip, AOT does not support versioning yet
 
 ###########
 # MMgc
 ###########
 mmgc/outofmemory , (.*-Dgcthreshold|.*-Dverifyonly) ,, skip , Threshold test takes too long to run out of mem
 mmgc/pauseForGCIfCollectionImminent, arm-.*-debug,, skip, Test takes too long to run on debug android shell
-as3/ByteArray/ByteArray_bug662851 , (AOT|x86-mac-tvm-releasedebugger-air),, skip , system malloc on mac32 produces stderr for this testcase which trips up the testing framework
+as3/ByteArray/ByteArray_bug662851 , (AOT|x86-mac-asc[0-9]+-releasedebugger-air),, skip , system malloc on mac32 produces stderr for this testcase which trips up the testing framework
 mmgc/outofmemory, .*, , verify_skip, Test takes too long to run when attempting to run with --verify
 
 ###########
 # Running -ES compiled tests
 ###########
 e4x/XML/setNotification , .*-ES , , skip, Testcase does not work with -ES
 
 ####################
@@ -359,12 +359,12 @@ as3/AMF/AMFSerializer_float , .* , .*flo
 ####################
 ecma3/Unicode/uAC00_HangulSyllables , .*valgrind , , skip , This test takes over 10 minutes to run in valgrind
 
 ###########
 # Helper files
 ###########
 as3/asc/import-with-float4-helper , .* , , skip , Not a test on its own
 generated/.* , .* , , skip , Not a test on its own
-as3/ByteArray/ByteArrayLzmaThirdParty , arm-android-tvm-,, skip, reads helper files which are not deployed on Android see https://bugzilla.mozilla.org/show_bug.cgi?id=733051
+as3/ByteArray/ByteArrayLzmaThirdParty , arm-android,, skip, reads helper files which are not deployed on Android see https://bugzilla.mozilla.org/show_bug.cgi?id=733051
 
 
 
--- a/test/util/runtestBase.py
+++ b/test/util/runtestBase.py
@@ -72,16 +72,17 @@ class RuntestBase(object):
     ascargs = ''
     ash = ''
     # list of args to remove defined using -no-argname format in --ascargs
     asc_negative_args = []
     atsDir = 'ATS_SWFS'
     ascOutputFilename = 'ascoutput.log'
     ascOutputFile = None
     ascversion = ''
+    ascbuild= ''
     avm = ''
     avmce = ''
     avmversion = ''
     avm_features = ''
     builtinabc = ''
     config = ''
     junitlog = None
     junitlogname = None
@@ -287,17 +288,16 @@ class RuntestBase(object):
             elif o in ('-x', '--exclude'):
                 self.exclude += v.split(',')
                 # remove any trailing /,\ and whitespace from exclude list
                 self.exclude = list(map(lambda s: s.rstrip('\\/ '), self.exclude))
             elif o in ('-t', '--notime'):
                 self.timestamps = False
             elif o in ('-f', '--forcerebuild'):
                 self.forcerebuild = True
-                self.ascversion = self.getAscVersion(self.asc)
             elif o in ('-c', '--config'):
                 self.config = v
             elif o in ('--addtoconfig',):
                 self.addtoconfig = v
             elif o in ('--ascargs',):
                 self.ascargs = v
             elif o in ('--ascoutput'):
                 self.ascOutputOnly = True
@@ -327,17 +327,16 @@ class RuntestBase(object):
                     self.usage(2)
             elif o in ('-d',):
                 # Note that this is not documented in the usage text.  This
                 # should only be used for debugging the runtests scripts
                 self.debug = True
             elif o in ('--rebuildtests',):
                 self.rebuildtests = True
                 self.forcerebuild = True
-                self.ascversion = self.getAscVersion(self.asc)
             elif o in ('--cleanexit',):
                 self.cleanexit = True
             elif o in ('-q', '--quiet'):
                 self.quiet = True
             elif o in ('--summaryonly',):
                 self.summaryonly = True
                 self.quiet = True
             elif o in ('-l', '--log'):
@@ -381,21 +380,21 @@ class RuntestBase(object):
             elif o in ('--writeresult',):
                 self.writeResultProperties = True
 
         return opts
 
 
     ### Config and Settings ###
 
-    def determineConfig(self, vm_str='tvm'):
+    def determineConfig(self):
         # ================================================
         # Determine the configruation if it has not been
         # passed into the script:
-        # {CPU_ARCH}-{OS}-{VM}-{VERSION}-{VMSWITCH}
+        # {CPU_ARCH}-{OS}-{ASC}-{VERSION}-{VMSWITCH}
         # ================================================
 
         try:
             # Try and determine CPU architecture of the AVM, if it fails drop back to platform.machine()
             cputype = ''
             (f,err,exitcode) = self.run_pipe('file "%s"' % (self.avm))
             f = ' '.join(f).replace(self.avm, '');
             self.verbose_print('determineConfig: %s' % f)
@@ -501,18 +500,21 @@ class RuntestBase(object):
                 self.avmversion = 'unknown'
 
         # need to also check for wordcode in the avm name for winmo
         if re.search('AVMFEATURE_WORDCODE_INTERP', self.avm_features) \
            or re.search('wordcode', self.avm):
             wordcode = '-wordcode'
         else:
             wordcode = ''
+        asc_str="asc1"
+        if self.ascversion:
+            asc_str="asc%s" % self.ascversion
             
-        self.config = cputype+'-'+self.osName+'-'+vm_str+'-'+self.vmtype+ \
+        self.config = cputype+'-'+self.osName+'-'+asc_str+'-'+self.vmtype+ \
                       wordcode+self.vmargs.replace(" ", "")+self.addtoconfig
         
         
 
     def determineOS(self):
         _os = platform.system()
         ostype = ''
         # When running on a windows system we can either be running with cygwin python
@@ -1183,16 +1185,19 @@ class RuntestBase(object):
             javaArgList = parseArgStringToList(self.javaargs)
             javaArgList = self.loadArgsFile(javaArgList, dir, as_file, 'java_args')
             
             cmd = '%s -j "%s" -a "%s"' % (self.abcasmRunner, self.java, ' '.join(javaArgList))
             
         elif as_file.endswith(self.executableExtensions):
             # directly executable file doesn't need to be compiled
             return
+
+        if self.ascversion=='3':
+            cmd=self.translateToAsc3(cmd)
         
         if self.ascOutputOnly:
             self.ascOutputFile.write('%s %s\n' % (cmd, as_file))
             return ''
         
         
         if '$' in as_file:
             if self.osName != 'win' or self.cygwin:
@@ -1368,16 +1373,18 @@ class RuntestBase(object):
                             else:
                                 cmd += " -swf 200,200 %s" % test
                                 cmd=self.fixAbcCommand(cmd)
                                 self.debug_print(cmd)
                                 child.sendline(cmd)
                                 child.expect("\(ash\)")
                                 moveAtsSwf(dir,file, self.atsDir)
                         else:
+                            if self.ascversion=='3':
+                                cmd=self.translateToAsc3(cmd)
                             cmd += " %s" % test
                             cmd=self.fixAbcCommand(cmd)
                             child.sendline(cmd)
                             child.expect("\(ash\)")
 
                             if not exists(testdir+".abc"):
                                 print("ERROR: abc file %s.abc not created, cmd used to compile: %s" % (testdir,cmd))
                                 self.ashErrors.append("abc file %s.abc not created, cmd used to compile: %s" % (testdir,cmd))
@@ -1399,16 +1406,39 @@ class RuntestBase(object):
                         self.js_print("ERROR: AOT compilation failed for %s" % (testdir+".abc"))
                         [self.js_print(line) for line in err]
                         self.ashErrors.append("AOT compilation failed for %s\n\t%s" % (testdir+".abc", '\n'.join(str(x) for x in err)))
 
 
 
         end_time = datetime.today()
 
+    def translateToAsc3(self,cmd):
+        # translates the asc switches syntax from asc1,2 to asc3
+        # from: java -jar asc.jar -import builtin.abc -import shell_toplevel.abc test.as
+        #   to: java -jar asc.jar -builtin-external-library-path builtin.abc shell_toplevel.abc -abc -c -include-sources test.as
+        self.verbose_print("translate to as3 before: %s"%cmd)
+        
+        tokens=cmd.split()
+        newcmd=[]
+        imports=['Assert.abc','Utils.abc','DateUtils.abc']
+        for i in range(len(tokens)):
+            if tokens[i]=="-import" and len(tokens)>i+1:
+                imports.append(tokens[i+1])
+            elif tokens[i] not in imports and tokens[i]!='-AS3':
+                newcmd.append(tokens[i])
+        if len(imports)>0:
+            newcmd.append('-builtin-external-library-path')
+            newcmd+=imports
+        newcmd+=['-dialect','3.0','-abc','-c','-include-sources']
+        cmd=string.join(newcmd)
+
+        self.verbose_print("translate to as3 after: %s"%cmd)
+        return cmd
+
     def compile_support_files_extra_pass(self, support_dir, abc_files, outputCalls = []):
         # One of the support files may have required another file to be imported.
         # Attempt to compile again with all the .abcs that did compile imported.
         if self.compile_support_attempts > 10:
             return
         extra_args = ['-import %s' % abcfile for abcfile in abc_files]
         compile_error = False
         for p, dirs, files in walk(support_dir):
@@ -1736,18 +1766,18 @@ class RuntestBase(object):
 
     ### Run Tests ###
 
     def preProcessTests(self):  # don't need AVM if rebuilding tests
         self.js_print('current configuration: %s' % self.config, overrideQuiet=True)
         self.verbose_print(self.avm_features)
         if self.avmversion:
             self.js_print('avm version: %s' % self.avmversion)
-        if self.ascversion:
-            self.js_print('asc version: %s' % self.ascversion)
+        if self.ascversion and self.ascbuild:
+            self.js_print('asc version: %s build: %s' % (self.ascversion,self.ascbuild))
         self.js_print('thread count: %d' % self.threads)
         self.js_print('Executing %d tests against vm: %s' % (len(self.tests), self.avm), overrideQuiet=True)
 
     def runTests(self, testList):
         testnum = len(testList) + 1
         if self.random:
             if not self.randomSeed:
                 self.randomSeed = abs(hash(os.urandom(20)))     # Take the absolute val so that seeds are not negative
@@ -1906,27 +1936,34 @@ class RuntestBase(object):
                 os.unlink(self.junitlog+'.txt')
 
         if self.ashErrors and not self.cleanexit:
             exit(1)
 
     ### Misc Functions ###
 
     def getAscVersion(self, asc):
+        build='unknown'
+        version='unknown'
         if asc.endswith('.jar'):
             cmd = '"%s" -jar %s' % (self.java,asc)
         else:
             cmd = asc
 
         (f,err,exitcode) = self.run_pipe(cmd)
 
         try:
-            return re.compile('.*build (\d+|\S+)').search(f[1]).group(1)
+            build=re.compile('.*build (\d+|\S+)').search(f[1]).group(1)
         except:
-            return 'unknown'
+            pass
+        try:
+            version=re.compile('[Vv]ersion (\d+)\.').search(f[1]).group(1)
+        except:
+            pass
+        return(build,version)    
 
     def getAvmVersion(self, vm=None, txt=None):
         '''Pull the avm version out of the vm info or description string if provided.'''
         if vm:
             (f,err,exitcode) = self.run_pipe('%s' % vm)
             txt = f[1]
         try:
             return re.compile('.*build (\d+:\S+|\S+)').search(txt).group(1)