Reviewed by Darin.
authorap <ap@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 31 Oct 2007 08:29:19 +0000 (08:29 +0000)
committerap <ap@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 31 Oct 2007 08:29:19 +0000 (08:29 +0000)
        http://bugs.webkit.org/show_bug.cgi?id=11001
        WebKit doesn't support RegExp.compile method

        Test: fast/js/regexp-compile.html

        * kjs/regexp_object.cpp:
        (RegExpPrototype::RegExpPrototype):
        (RegExpProtoFunc::callAsFunction):
        * kjs/regexp_object.h:
        (KJS::RegExpProtoFunc::):
        Added RegExp.compile.

        * tests/mozilla/expected.html: js1_2/regexp/compile.js now passes.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@27303 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/kjs/regexp_object.cpp
JavaScriptCore/kjs/regexp_object.h
JavaScriptCore/tests/mozilla/expected.html
LayoutTests/ChangeLog
LayoutTests/fast/js/regexp-compile-expected.txt [new file with mode: 0644]
LayoutTests/fast/js/regexp-compile.html [new file with mode: 0644]
LayoutTests/fast/js/resources/regexp-compile.js [new file with mode: 0644]

index e8be2f9ca411d744d003c3f5d9879cb00f459427..62b6502eb049d2eeddf2e4ba5f54a4a66d9d09cd 100644 (file)
@@ -1,3 +1,21 @@
+2007-10-31  Alexey Proskuryakov  <ap@webkit.org>
+
+        Reviewed by Darin.
+
+        http://bugs.webkit.org/show_bug.cgi?id=11001
+        WebKit doesn't support RegExp.compile method
+
+        Test: fast/js/regexp-compile.html
+
+        * kjs/regexp_object.cpp:
+        (RegExpPrototype::RegExpPrototype):
+        (RegExpProtoFunc::callAsFunction):
+        * kjs/regexp_object.h:
+        (KJS::RegExpProtoFunc::):
+        Added RegExp.compile.
+
+        * tests/mozilla/expected.html: js1_2/regexp/compile.js now passes.
+
 2007-10-31  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed by ChangeLog.
index 2564fa4451b102b1260b134f0e3fcc32996ef82e..5e1b006e69f54de2a7b973d5df38d797320edf5a 100644 (file)
@@ -48,9 +48,11 @@ RegExpPrototype::RegExpPrototype(ExecState *exec,
                                        FunctionPrototype *funcProto)
   : JSObject(objProto)
 {
+  static const Identifier* compilePropertyName = new Identifier("compile");
   static const Identifier* execPropertyName = new Identifier("exec");
   static const Identifier* testPropertyName = new Identifier("test");
 
+  putDirectFunction(new RegExpProtoFunc(exec, funcProto, RegExpProtoFunc::Compile, 0, *compilePropertyName), DontEnum);
   putDirectFunction(new RegExpProtoFunc(exec, funcProto, RegExpProtoFunc::Exec, 0, *execPropertyName), DontEnum);
   putDirectFunction(new RegExpProtoFunc(exec, funcProto, RegExpProtoFunc::Test, 0, *testPropertyName), DontEnum);
   putDirectFunction(new RegExpProtoFunc(exec, funcProto, RegExpProtoFunc::ToString, 0, exec->propertyNames().toString), DontEnum);
@@ -119,6 +121,56 @@ JSValue *RegExpProtoFunc::callAsFunction(ExecState *exec, JSObject *thisObj, con
     }
   }
   break;
+  case Compile:
+  {
+    UString source;
+    bool global = false;
+    bool ignoreCase = false;
+    bool multiline = false;
+    if (args.size() > 0) {
+      if (args[0]->isObject(&RegExpImp::info)) {
+        if (args.size() != 1)
+          return throwError(exec, TypeError, "cannot supply flags when constructing one RegExp from another.");
+
+        // Flags are mirrored on the JS object and in the implementation, while source is only preserved on the JS object.
+        RegExp* rhsRegExp = static_cast<RegExpImp*>(args[0])->regExp();
+        global = rhsRegExp->flags() & RegExp::Global;
+        ignoreCase = rhsRegExp->flags() & RegExp::IgnoreCase;
+        multiline = rhsRegExp->flags() & RegExp::Multiline;
+        source = static_cast<RegExpImp*>(args[0])->get(exec, exec->propertyNames().source)->toString(exec);
+      } else
+        source = args[0]->toString(exec);
+
+      if (!args[1]->isUndefined()) {
+        UString flags = args[1]->toString(exec);
+
+        global = (flags.find("g") >= 0);
+        ignoreCase = (flags.find("i") >= 0);
+        multiline = (flags.find("m") >= 0);
+      }
+    }
+
+    int reflags = RegExp::None;
+    if (global)
+        reflags |= RegExp::Global;
+    if (ignoreCase)
+        reflags |= RegExp::IgnoreCase;
+    if (multiline)
+        reflags |= RegExp::Multiline;
+
+    OwnPtr<RegExp> newRegExp(new RegExp(source, reflags));
+    if (!newRegExp->isValid())
+        return throwError(exec, SyntaxError, UString("Invalid regular expression: ").append(newRegExp->errorMessage()));
+
+    thisObj->putDirect(exec->propertyNames().global, jsBoolean(global), DontDelete | ReadOnly | DontEnum);
+    thisObj->putDirect(exec->propertyNames().ignoreCase, jsBoolean(ignoreCase), DontDelete | ReadOnly | DontEnum);
+    thisObj->putDirect(exec->propertyNames().multiline, jsBoolean(multiline), DontDelete | ReadOnly | DontEnum);
+    thisObj->putDirect(exec->propertyNames().source, jsString(source), DontDelete | ReadOnly | DontEnum);
+    thisObj->putDirect(exec->propertyNames().lastIndex, jsNumber(0), DontDelete | DontEnum);
+
+    static_cast<RegExpImp*>(thisObj)->setRegExp(newRegExp.release());
+    return jsUndefined();
+  }
   case ToString:
     UString result = "/" + thisObj->get(exec, exec->propertyNames().source)->toString(exec) + "/";
     if (thisObj->get(exec, exec->propertyNames().global)->toBoolean(exec)) {
index 3552244a8e1e4f8b2061f8c333ff50e88b3341fc..cf7e1ff437e3da74f89cb82904b002277c85c8b9 100644 (file)
@@ -42,7 +42,7 @@ namespace KJS {
 
     virtual JSValue *callAsFunction(ExecState *exec, JSObject *thisObj, const List &args);
 
-    enum { Exec, Test, ToString };
+    enum { Compile, Exec, Test, ToString };
   private:
     int id;
   };
index 4d8d0f0f8b66a3ee75756d839b1fb787887ab819..4b06c3fdf015a49d585ed831906e0175e79bef72 100644 (file)
@@ -7,11 +7,11 @@
 <p class='results_summary'>
 Test List: All tests<br>
 Skip List: (none)<br>
-1135 test(s) selected, 1127 test(s) completed, 62 failures reported (5.5% failed)<br>
+1135 test(s) selected, 1127 test(s) completed, 61 failures reported (5.41% failed)<br>
 Engine command line: /Users/ap/WebKit/WebKitBuild/Debug/testkjs <br>
 OS type: Darwin host-10-10-148-242.bigtelecom.ru 8.10.0 Darwin Kernel Version 8.10.0: Wed May 23 16:50:59 PDT 2007; root:xnu-792.21.3~1/RELEASE_PPC Power Macintosh powerpc<br>
-Testcase execution time: 6 minutes, 44 seconds.<br>
-Tests completed on Sat Sep 29 01:57:37 2007.<br><br>
+Testcase execution time: 7 minutes, 8 seconds.<br>
+Tests completed on Tue Oct 30 10:12:12 2007.<br><br>
 [ <a href='#fail_detail'>Failure Details</a> | <a href='#retest_list'>Retest List</a> | <a href='menu.html'>Test Selection Page</a> ]<br>
 <hr>
 <a name='fail_detail'></a>
@@ -20,242 +20,236 @@ Tests completed on Sat Sep 29 01:57:37 2007.<br><br>
  [ <a href='#failure2'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
---> - "-0x123456789abcde8" = NaN FAILED! expected: 81985529216486880<br>
---> - "-0x123456789abcde8" = NaN FAILED! expected: 81985529216486880<br>
---> -"\u20001234\u2001" = NaN FAILED! expected: -1234<br>
+- "-0x123456789abcde8" = NaN FAILED! expected: 81985529216486880<br>
+- "-0x123456789abcde8" = NaN FAILED! expected: 81985529216486880<br>
+-"\u20001234\u2001" = NaN FAILED! expected: -1234<br>
 </tt><br>
 <a name='failure2'></a><dd><b>Testcase <a target='other_window' href='./ecma_2/Exceptions/function-001.js'>ecma_2/Exceptions/function-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
  [ <a href='#failure1'>Previous Failure</a> | <a href='#failure3'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
---> eval("function f(){}function g(){}") (threw no exception thrown = fail FAILED! expected: pass<br>
+eval("function f(){}function g(){}") (threw no exception thrown = fail FAILED! expected: pass<br>
 </tt><br>
 <a name='failure3'></a><dd><b>Testcase <a target='other_window' href='./ecma_2/RegExp/regress-001.js'>ecma_2/RegExp/regress-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=2157' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=2157</a><br>
  [ <a href='#failure2'>Previous Failure</a> | <a href='#failure4'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 618 KJS::Node<br>
---> RegExp/hex-001.js JS regexp anchoring on empty match bug<br>
---> BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=2157<br>
-[5359] ./ecma_2/RegExp/regress-001.js line 18: TypeError: Object /a||b/ (result of expression /a||b/) does not allow calls.<br>
+RegExp/hex-001.js JS regexp anchoring on empty match bug<br>
+BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=2157<br>
+[494] ./ecma_2/RegExp/regress-001.js line 18: TypeError: Object /a||b/ (result of expression /a||b/) does not allow calls.<br>
 </tt><br>
 <a name='failure4'></a><dd><b>Testcase <a target='other_window' href='./ecma_2/RegExp/unicode-001.js'>ecma_2/RegExp/unicode-001.js</a> failed</b> <br>
  [ <a href='#failure3'>Previous Failure</a> | <a href='#failure5'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 671 KJS::Node<br>
---> RegExp/unicode-001.js new RegExp( pattern, flags )<br>
-[5360] ./ecma_2/RegExp/unicode-001.js line 33: TypeError: Null value<br>
+RegExp/unicode-001.js new RegExp( pattern, flags )<br>
+[495] ./ecma_2/RegExp/unicode-001.js line 33: TypeError: Null value<br>
 </tt><br>
 <a name='failure5'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Date/15.9.5.7.js'>ecma_3/Date/15.9.5.7.js</a> failed</b> <br>
  [ <a href='#failure4'>Previous Failure</a> | <a href='#failure6'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
---> (Wed Dec 31 1969 16:00:00 GMT-0800 (PST)).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
---> (Wed Dec 31 1969 08:00:00 GMT-0800 (PST)).toLocaleTimeString() = 8:00:00 AM PST FAILED! expected: 08:00:00<br>
---> (Sun Dec 31 1899 16:00:00 GMT-0800 (PST)).toLocaleTimeString() = 5:00:00 PM PDT FAILED! expected: 16:00:00<br>
---> (Mon Jan 01 1900 00:00:00 GMT-0800 (PST)).toLocaleTimeString() = 1:00:00 AM PDT FAILED! expected: 00:00:00<br>
---> (Fri Dec 31 1999 16:00:00 GMT-0800 (PST)).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
---> (Sat Jan 01 2000 00:00:00 GMT-0800 (PST)).toLocaleTimeString() = 12:00:00 AM PST FAILED! expected: 00:00:00<br>
---> (Mon Feb 28 2000 16:00:00 GMT-0800 (PST)).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
---> (Mon Feb 28 2000 15:59:59 GMT-0800 (PST)).toLocaleTimeString() = 3:59:59 PM PST FAILED! expected: 15:59:59<br>
---> (Tue Feb 29 2000 00:00:00 GMT-0800 (PST)).toLocaleTimeString() = 12:00:00 AM PST FAILED! expected: 00:00:00<br>
---> (Sat Sep 29 2007 01:56:28 GMT-0700 (PDT)).toLocaleTimeString() = 1:56:28 AM PDT FAILED! expected: 01:56:28<br>
---> (Sat Sep 29 2007 09:56:28 GMT-0700 (PDT)).toLocaleTimeString() = 9:56:28 AM PDT FAILED! expected: 09:56:28<br>
---> (Fri Dec 31 2004 16:00:00 GMT-0800 (PST)).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
---> (Fri Dec 31 2004 15:59:59 GMT-0800 (PST)).toLocaleTimeString() = 3:59:59 PM PST FAILED! expected: 15:59:59<br>
---> (Sat Jan 01 2005 00:00:00 GMT-0800 (PST)).toLocaleTimeString() = 12:00:00 AM PST FAILED! expected: 00:00:00<br>
+(Wed Dec 31 1969 16:00:00 GMT-0800 (PST)).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
+(Wed Dec 31 1969 08:00:00 GMT-0800 (PST)).toLocaleTimeString() = 8:00:00 AM PST FAILED! expected: 08:00:00<br>
+(Sun Dec 31 1899 16:00:00 GMT-0800 (PST)).toLocaleTimeString() = 5:00:00 PM PDT FAILED! expected: 16:00:00<br>
+(Mon Jan 01 1900 00:00:00 GMT-0800 (PST)).toLocaleTimeString() = 1:00:00 AM PDT FAILED! expected: 00:00:00<br>
+(Fri Dec 31 1999 16:00:00 GMT-0800 (PST)).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
+(Sat Jan 01 2000 00:00:00 GMT-0800 (PST)).toLocaleTimeString() = 12:00:00 AM PST FAILED! expected: 00:00:00<br>
+(Mon Feb 28 2000 16:00:00 GMT-0800 (PST)).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
+(Mon Feb 28 2000 15:59:59 GMT-0800 (PST)).toLocaleTimeString() = 3:59:59 PM PST FAILED! expected: 15:59:59<br>
+(Tue Feb 29 2000 00:00:00 GMT-0800 (PST)).toLocaleTimeString() = 12:00:00 AM PST FAILED! expected: 00:00:00<br>
+(Tue Oct 30 2007 10:11:03 GMT-0700 (PDT)).toLocaleTimeString() = 10:11:03 AM PDT FAILED! expected: 10:11:03<br>
+(Tue Oct 30 2007 18:11:03 GMT-0700 (PDT)).toLocaleTimeString() = 6:11:03 PM PDT FAILED! expected: 18:11:03<br>
+(Fri Dec 31 2004 16:00:00 GMT-0800 (PST)).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
+(Fri Dec 31 2004 15:59:59 GMT-0800 (PST)).toLocaleTimeString() = 3:59:59 PM PST FAILED! expected: 15:59:59<br>
+(Sat Jan 01 2005 00:00:00 GMT-0800 (PST)).toLocaleTimeString() = 12:00:00 AM PST FAILED! expected: 00:00:00<br>
 </tt><br>
 <a name='failure6'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/FunExpr/fe-001.js'>ecma_3/FunExpr/fe-001.js</a> failed</b> <br>
  [ <a href='#failure5'>Previous Failure</a> | <a href='#failure7'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 323 KJS::Node<br>
-</tt><br>
+Testcase produced no output!</tt><br>
 <a name='failure7'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/15.10.2-1.js'>ecma_3/RegExp/15.10.2-1.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
  [ <a href='#failure6'>Previous Failure</a> | <a href='#failure8'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: RegExp conformance test<br>
+<tt>STATUS: RegExp conformance test<br>
 Failure messages were:<br>
---> FAILED!: [reported from test()] Section 7 of test -<br>
---> FAILED!: [reported from test()] regexp = /(z)((a+)?(b+)?(c))*/<br>
---> FAILED!: [reported from test()] string = 'zaacbbbcac'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["zaacbbbcac", "z", "ac", "a", , "c"]<br>
---> FAILED!: [reported from test()] Actual: ["zaacbbbcac", "z", "ac", "a", "bbb", "c"]<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 8 of test -<br>
---> FAILED!: [reported from test()] regexp = /(a*)*/<br>
---> FAILED!: [reported from test()] string = 'b'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["", , ]<br>
---> FAILED!: [reported from test()] Actual: ["", ""]<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 12 of test -<br>
---> FAILED!: [reported from test()] regexp = /(.*?)a(?!(a+)b\2c)\2(.*)/<br>
---> FAILED!: [reported from test()] string = 'baaabaac'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["baaabaac", "ba", , "abaac"]<br>
---> FAILED!: [reported from test()] Actual: ["baaabaac", "ba", "aa", "abaac"]<br>
---> FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 7 of test -<br>
+FAILED!: [reported from test()] regexp = /(z)((a+)?(b+)?(c))*/<br>
+FAILED!: [reported from test()] string = 'zaacbbbcac'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["zaacbbbcac", "z", "ac", "a", , "c"]<br>
+FAILED!: [reported from test()] Actual: ["zaacbbbcac", "z", "ac", "a", "bbb", "c"]<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 8 of test -<br>
+FAILED!: [reported from test()] regexp = /(a*)*/<br>
+FAILED!: [reported from test()] string = 'b'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["", , ]<br>
+FAILED!: [reported from test()] Actual: ["", ""]<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 12 of test -<br>
+FAILED!: [reported from test()] regexp = /(.*?)a(?!(a+)b\2c)\2(.*)/<br>
+FAILED!: [reported from test()] string = 'baaabaac'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["baaabaac", "ba", , "abaac"]<br>
+FAILED!: [reported from test()] Actual: ["baaabaac", "ba", "aa", "abaac"]<br>
+FAILED!: [reported from test()] <br>
 </tt><br>
 <a name='failure8'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/perlstress-001.js'>ecma_3/RegExp/perlstress-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
  [ <a href='#failure7'>Previous Failure</a> | <a href='#failure9'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: Testing regular expression edge cases<br>
+<tt>STATUS: Testing regular expression edge cases<br>
 Failure messages were:<br>
---> FAILED!: [reported from test()] Section 218 of test -<br>
---> FAILED!: [reported from test()] regexp = /((foo)|(bar))*/<br>
---> FAILED!: [reported from test()] string = 'foobar'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["foobar", "bar", , "bar"]<br>
---> FAILED!: [reported from test()] Actual: ["foobar", "bar", "foo", "bar"]<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 234 of test -<br>
---> FAILED!: [reported from test()] regexp = /(?:(f)(o)(o)|(b)(a)(r))*/<br>
---> FAILED!: [reported from test()] string = 'foobar'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["foobar", , , , "b", "a", "r"]<br>
---> FAILED!: [reported from test()] Actual: ["foobar", "f", "o", "o", "b", "a", "r"]<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 241 of test -<br>
---> FAILED!: [reported from test()] regexp = /^(?:b|a(?=(.)))*\1/<br>
---> FAILED!: [reported from test()] string = 'abc'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["ab", , ]<br>
---> FAILED!: [reported from test()] Actual: ["ab", "b"]<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 412 of test -<br>
---> FAILED!: [reported from test()] regexp = /^(a(b)?)+$/<br>
---> FAILED!: [reported from test()] string = 'aba'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["aba", "a", , ]<br>
---> FAILED!: [reported from test()] Actual: ["aba", "a", "b"]<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 413 of test -<br>
---> FAILED!: [reported from test()] regexp = /^(aa(bb)?)+$/<br>
---> FAILED!: [reported from test()] string = 'aabbaa'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["aabbaa", "aa", , ]<br>
---> FAILED!: [reported from test()] Actual: ["aabbaa", "aa", "bb"]<br>
---> FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 218 of test -<br>
+FAILED!: [reported from test()] regexp = /((foo)|(bar))*/<br>
+FAILED!: [reported from test()] string = 'foobar'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["foobar", "bar", , "bar"]<br>
+FAILED!: [reported from test()] Actual: ["foobar", "bar", "foo", "bar"]<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 234 of test -<br>
+FAILED!: [reported from test()] regexp = /(?:(f)(o)(o)|(b)(a)(r))*/<br>
+FAILED!: [reported from test()] string = 'foobar'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["foobar", , , , "b", "a", "r"]<br>
+FAILED!: [reported from test()] Actual: ["foobar", "f", "o", "o", "b", "a", "r"]<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 241 of test -<br>
+FAILED!: [reported from test()] regexp = /^(?:b|a(?=(.)))*\1/<br>
+FAILED!: [reported from test()] string = 'abc'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["ab", , ]<br>
+FAILED!: [reported from test()] Actual: ["ab", "b"]<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 412 of test -<br>
+FAILED!: [reported from test()] regexp = /^(a(b)?)+$/<br>
+FAILED!: [reported from test()] string = 'aba'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["aba", "a", , ]<br>
+FAILED!: [reported from test()] Actual: ["aba", "a", "b"]<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 413 of test -<br>
+FAILED!: [reported from test()] regexp = /^(aa(bb)?)+$/<br>
+FAILED!: [reported from test()] string = 'aabbaa'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["aabbaa", "aa", , ]<br>
+FAILED!: [reported from test()] Actual: ["aabbaa", "aa", "bb"]<br>
+FAILED!: [reported from test()] <br>
 </tt><br>
 <a name='failure9'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-78156.js'>ecma_3/RegExp/regress-78156.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=78156' target='other_window'>Bug Number 78156</a><br>
  [ <a href='#failure8'>Previous Failure</a> | <a href='#failure10'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: Testing regular expressions with  ^, $, and the m flag -<br>
+<tt>STATUS: Testing regular expressions with  ^, $, and the m flag -<br>
 Failure messages were:<br>
---> FAILED!: [reported from test()] Section 2 of test -<br>
---> FAILED!: [reported from test()] regexp = /\d$/gm<br>
---> FAILED!: [reported from test()] string = 'aaa\n789\r\nccc\r\n345'<br>
---> FAILED!: [reported from test()] ERROR !!! match arrays have different lengths:<br>
---> FAILED!: [reported from test()] Expect: ["9", "5"]<br>
---> FAILED!: [reported from test()] Actual: ["5"]<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 4 of test -<br>
---> FAILED!: [reported from test()] regexp = /\d$/gm<br>
---> FAILED!: [reported from test()] string = 'aaa\n789\r\nccc\r\nddd'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp FAILED to match anything !!!<br>
---> FAILED!: [reported from test()] Expect: ["9"]<br>
---> FAILED!: [reported from test()] Actual: null<br>
---> FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 2 of test -<br>
+FAILED!: [reported from test()] regexp = /\d$/gm<br>
+FAILED!: [reported from test()] string = 'aaa\n789\r\nccc\r\n345'<br>
+FAILED!: [reported from test()] ERROR !!! match arrays have different lengths:<br>
+FAILED!: [reported from test()] Expect: ["9", "5"]<br>
+FAILED!: [reported from test()] Actual: ["5"]<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 4 of test -<br>
+FAILED!: [reported from test()] regexp = /\d$/gm<br>
+FAILED!: [reported from test()] string = 'aaa\n789\r\nccc\r\nddd'<br>
+FAILED!: [reported from test()] ERROR !!! regexp FAILED to match anything !!!<br>
+FAILED!: [reported from test()] Expect: ["9"]<br>
+FAILED!: [reported from test()] Actual: null<br>
+FAILED!: [reported from test()] <br>
 </tt><br>
 <a name='failure10'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-100199.js'>ecma_3/RegExp/regress-100199.js</a> failed</b> <br>
  [ <a href='#failure9'>Previous Failure</a> | <a href='#failure11'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 853 KJS::Node<br>
-[5487] ./ecma_3/RegExp/regress-100199.js line 48: SyntaxError: Invalid regular expression: missing terminating ] for character class<br>
+[622] ./ecma_3/RegExp/regress-100199.js line 48: SyntaxError: Invalid regular expression: missing terminating ] for character class<br>
 </tt><br>
 <a name='failure11'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-188206.js'>ecma_3/RegExp/regress-188206.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=188206' target='other_window'>Bug Number 188206</a><br>
  [ <a href='#failure10'>Previous Failure</a> | <a href='#failure12'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: Invalid use of regexp quantifiers should generate SyntaxErrors<br>
+<tt>STATUS: Invalid use of regexp quantifiers should generate SyntaxErrors<br>
 Failure messages were:<br>
---> FAILED!: [reported from test()] Section 3 of test -<br>
---> FAILED!: [reported from test()] Expected value 'SyntaxError', Actual value 'Did not generate ANY error!!!'<br>
---> FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 3 of test -<br>
+FAILED!: [reported from test()] Expected value 'SyntaxError', Actual value 'Did not generate ANY error!!!'<br>
+FAILED!: [reported from test()] <br>
 </tt><br>
 <a name='failure12'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-209919.js'>ecma_3/RegExp/regress-209919.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=209919' target='other_window'>Bug Number 209919</a><br>
  [ <a href='#failure11'>Previous Failure</a> | <a href='#failure13'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: Testing regexp submatches with quantifiers<br>
+<tt>STATUS: Testing regexp submatches with quantifiers<br>
 Failure messages were:<br>
---> FAILED!: [reported from test()] Section 1 of test -<br>
---> FAILED!: [reported from test()] regexp = /(a|b*)*/<br>
---> FAILED!: [reported from test()] string = 'a'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["a", "a"]<br>
---> FAILED!: [reported from test()] Actual: ["a", ""]<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 3 of test -<br>
---> FAILED!: [reported from test()] regexp = /(b*)*/<br>
---> FAILED!: [reported from test()] string = 'a'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["", , ]<br>
---> FAILED!: [reported from test()] Actual: ["", ""]<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 5 of test -<br>
---> FAILED!: [reported from test()] regexp = /^\-?(\d{1,}|\.{0,})*(\,\d{1,})?$/<br>
---> FAILED!: [reported from test()] string = '100.00'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["100.00", "00", , ]<br>
---> FAILED!: [reported from test()] Actual: ["100.00", "", , ]<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 6 of test -<br>
---> FAILED!: [reported from test()] regexp = /^\-?(\d{1,}|\.{0,})*(\,\d{1,})?$/<br>
---> FAILED!: [reported from test()] string = '100,00'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["100,00", "100", ",00"]<br>
---> FAILED!: [reported from test()] Actual: ["100,00", "", ",00"]<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 7 of test -<br>
---> FAILED!: [reported from test()] regexp = /^\-?(\d{1,}|\.{0,})*(\,\d{1,})?$/<br>
---> FAILED!: [reported from test()] string = '1.000,00'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
---> FAILED!: [reported from test()] Expect: ["1.000,00", "000", ",00"]<br>
---> FAILED!: [reported from test()] Actual: ["1.000,00", "", ",00"]<br>
---> FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 1 of test -<br>
+FAILED!: [reported from test()] regexp = /(a|b*)*/<br>
+FAILED!: [reported from test()] string = 'a'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["a", "a"]<br>
+FAILED!: [reported from test()] Actual: ["a", ""]<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 3 of test -<br>
+FAILED!: [reported from test()] regexp = /(b*)*/<br>
+FAILED!: [reported from test()] string = 'a'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["", , ]<br>
+FAILED!: [reported from test()] Actual: ["", ""]<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 5 of test -<br>
+FAILED!: [reported from test()] regexp = /^\-?(\d{1,}|\.{0,})*(\,\d{1,})?$/<br>
+FAILED!: [reported from test()] string = '100.00'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["100.00", "00", , ]<br>
+FAILED!: [reported from test()] Actual: ["100.00", "", , ]<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 6 of test -<br>
+FAILED!: [reported from test()] regexp = /^\-?(\d{1,}|\.{0,})*(\,\d{1,})?$/<br>
+FAILED!: [reported from test()] string = '100,00'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["100,00", "100", ",00"]<br>
+FAILED!: [reported from test()] Actual: ["100,00", "", ",00"]<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 7 of test -<br>
+FAILED!: [reported from test()] regexp = /^\-?(\d{1,}|\.{0,})*(\,\d{1,})?$/<br>
+FAILED!: [reported from test()] string = '1.000,00'<br>
+FAILED!: [reported from test()] ERROR !!! regexp failed to give expected match array:<br>
+FAILED!: [reported from test()] Expect: ["1.000,00", "000", ",00"]<br>
+FAILED!: [reported from test()] Actual: ["1.000,00", "", ",00"]<br>
+FAILED!: [reported from test()] <br>
 </tt><br>
 <a name='failure13'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Statements/regress-194364.js'>ecma_3/Statements/regress-194364.js</a> failed</b> <br>
  [ <a href='#failure12'>Previous Failure</a> | <a href='#failure14'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 397 KJS::Node<br>
-[5513] ./ecma_3/Statements/regress-194364.js line 1: SyntaxError: Parse error<br>
+[648] ./ecma_3/Statements/regress-194364.js line 1: SyntaxError: Parse error<br>
 </tt><br>
 <a name='failure14'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-001.js'>ecma_3/Unicode/uc-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=23610' target='other_window'>Bug Number 23610</a><br>
  [ <a href='#failure13'>Previous Failure</a> | <a href='#failure15'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: Unicode format-control character (Category Cf) test.<br>
+<tt>STATUS: Unicode format-control character (Category Cf) test.<br>
 Failure messages were:<br>
---> FAILED!: [reported from test()] Unicode format-control character test (Category Cf.)<br>
---> FAILED!: [reported from test()] Expected value 'no error', Actual value 'no‎ error'<br>
---> FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Unicode format-control character test (Category Cf.)<br>
+FAILED!: [reported from test()] Expected value 'no error', Actual value 'no‎ error'<br>
+FAILED!: [reported from test()] <br>
 </tt><br>
 <a name='failure15'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-002.js'>ecma_3/Unicode/uc-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=23613' target='other_window'>Bug Number 23613</a><br>
  [ <a href='#failure14'>Previous Failure</a> | <a href='#failure16'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: Unicode non-breaking space character test.<br>
+<tt>STATUS: Unicode non-breaking space character test.<br>
 Failure messages were:<br>
---> FAILED!: [reported from test()] Unicode non-breaking space character regexp test.<br>
---> FAILED!: [reported from test()] Expected value '0', Actual value '-1'<br>
---> FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Unicode non-breaking space character regexp test.<br>
+FAILED!: [reported from test()] Expected value '0', Actual value '-1'<br>
+FAILED!: [reported from test()] <br>
 </tt><br>
 <a name='failure16'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Objects/toString-001.js'>js1_2/Objects/toString-001.js</a> failed</b> <br>
  [ <a href='#failure15'>Previous Failure</a> | <a href='#failure17'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 403 KJS::Node<br>
---> JS1_2 Object.toString()<br>
-[5534] ./js1_2/Objects/toString-001.js line 103: TypeError: Object /^\{(.*)\}$/ (result of expression /^\{(.*)\}$/) does not allow calls.<br>
+JS1_2 Object.toString()<br>
+[669] ./js1_2/Objects/toString-001.js line 103: TypeError: Object /^\{(.*)\}$/ (result of expression /^\{(.*)\}$/) does not allow calls.<br>
 </tt><br>
 <a name='failure17'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/Function_object.js'>js1_2/function/Function_object.js</a> failed</b> <br>
  [ <a href='#failure16'>Previous Failure</a> | <a href='#failure18'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
---> f.name = undefined FAILED! expected: a_test_function<br>
---> f.arity = undefined FAILED! expected: 3<br>
---> (new Function()).name = undefined FAILED! expected: anonymous<br>
+f.name = undefined FAILED! expected: a_test_function<br>
+f.arity = undefined FAILED! expected: 3<br>
+(new Function()).name = undefined FAILED! expected: anonymous<br>
 } FAILED! expected: <br>
 </tt><br>
 <a name='failure18'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/function-001-n.js'>js1_2/function/function-001-n.js</a> failed</b> <br>
@@ -263,19 +257,17 @@ Failure messages were:<br>
 <tt>Expected exit code 3, got 0<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-OK.<br>
-LEAK: 331 KJS::Node<br>
---> function-001.js functions not separated by semicolons are errors in version 120 and higher<br>
---> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
+LEAK: 329 KJS::Node<br>
+function-001.js functions not separated by semicolons are errors in version 120 and higher<br>
+eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
 </tt><br>
 <a name='failure19'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/regexparg-1.js'>js1_2/function/regexparg-1.js</a> failed</b> <br>
  [ <a href='#failure18'>Previous Failure</a> | <a href='#failure20'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 333 KJS::Node<br>
---> JS_1.2 The variable statment<br>
-[5547] ./js1_2/function/regexparg-1.js line 80: TypeError: Object /abc/ (result of expression x) does not allow calls.<br>
+JS_1.2 The variable statment<br>
+[682] ./js1_2/function/regexparg-1.js line 80: TypeError: Object /abc/ (result of expression x) does not allow calls.<br>
 </tt><br>
 <a name='failure20'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/tostring-1.js'>js1_2/function/tostring-1.js</a> failed</b> <br>
  [ <a href='#failure19'>Previous Failure</a> | <a href='#failure21'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
@@ -305,35 +297,35 @@ Failure messages were:<br>
  [ <a href='#failure21'>Previous Failure</a> | <a href='#failure23'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
---> (new String('x') == 'x')                  = true FAILED! expected: false<br>
---> ('x' == new String('x'))                  = true FAILED! expected: false<br>
+(new String('x') == 'x')                  = true FAILED! expected: false<br>
+('x' == new String('x'))                  = true FAILED! expected: false<br>
 </tt><br>
 <a name='failure23'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastIndex.js'>js1_2/regexp/RegExp_lastIndex.js</a> failed</b> <br>
  [ <a href='#failure22'>Previous Failure</a> | <a href='#failure24'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
---> re=/x./g; re.lastIndex=4; re.exec('xyabcdxa') = xa FAILED! expected: ["xa"]<br>
---> re.exec('xyabcdef') = xy FAILED! expected: ["xy"]<br>
+re=/x./g; re.lastIndex=4; re.exec('xyabcdxa') = xa FAILED! expected: ["xa"]<br>
+re.exec('xyabcdef') = xy FAILED! expected: ["xy"]<br>
 </tt><br>
 <a name='failure24'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_multiline.js'>js1_2/regexp/RegExp_multiline.js</a> failed</b> <br>
  [ <a href='#failure23'>Previous Failure</a> | <a href='#failure25'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
---> (multiline == true) '123\n456'.match(/^4../) = null FAILED! expected: 456<br>
---> (multiline == true) 'a11\na22\na23\na24'.match(/^a../g) = a11 FAILED! expected: a11,a22,a23,a24<br>
---> (multiline == true) '123\n456'.match(/.3$/) = null FAILED! expected: 23<br>
---> (multiline == true) 'a11\na22\na23\na24'.match(/a..$/g) = a24 FAILED! expected: a11,a22,a23,a24<br>
---> (multiline == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) = a24 FAILED! expected: a11,a22,a23,a24<br>
+(multiline == true) '123\n456'.match(/^4../) = null FAILED! expected: 456<br>
+(multiline == true) 'a11\na22\na23\na24'.match(/^a../g) = a11 FAILED! expected: a11,a22,a23,a24<br>
+(multiline == true) '123\n456'.match(/.3$/) = null FAILED! expected: 23<br>
+(multiline == true) 'a11\na22\na23\na24'.match(/a..$/g) = a24 FAILED! expected: a11,a22,a23,a24<br>
+(multiline == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) = a24 FAILED! expected: a11,a22,a23,a24<br>
 </tt><br>
 <a name='failure25'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_multiline_as_array.js'>js1_2/regexp/RegExp_multiline_as_array.js</a> failed</b> <br>
  [ <a href='#failure24'>Previous Failure</a> | <a href='#failure26'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
---> (['$*'] == true) '123\n456'.match(/^4../) = null FAILED! expected: 456<br>
---> (['$*'] == true) 'a11\na22\na23\na24'.match(/^a../g) = a11 FAILED! expected: a11,a22,a23,a24<br>
---> (['$*'] == true) '123\n456'.match(/.3$/) = null FAILED! expected: 23<br>
---> (['$*'] == true) 'a11\na22\na23\na24'.match(/a..$/g) = a24 FAILED! expected: a11,a22,a23,a24<br>
---> (['$*'] == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) = a24 FAILED! expected: a11,a22,a23,a24<br>
+(['$*'] == true) '123\n456'.match(/^4../) = null FAILED! expected: 456<br>
+(['$*'] == true) 'a11\na22\na23\na24'.match(/^a../g) = a11 FAILED! expected: a11,a22,a23,a24<br>
+(['$*'] == true) '123\n456'.match(/.3$/) = null FAILED! expected: 23<br>
+(['$*'] == true) 'a11\na22\na23\na24'.match(/a..$/g) = a24 FAILED! expected: a11,a22,a23,a24<br>
+(['$*'] == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) = a24 FAILED! expected: a11,a22,a23,a24<br>
 </tt><br>
 <a name='failure26'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/beginLine.js'>js1_2/regexp/beginLine.js</a> failed</b> <br>
  [ <a href='#failure25'>Previous Failure</a> | <a href='#failure27'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
@@ -341,355 +333,319 @@ Failure messages were:<br>
 Failure messages were:<br>
 123xyz'.match(new RegExp('^\d+')) = null FAILED! expected: 123<br>
 </tt><br>
-<a name='failure27'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/compile.js'>js1_2/regexp/compile.js</a> failed</b> <br>
+<a name='failure27'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/endLine.js'>js1_2/regexp/endLine.js</a> failed</b> <br>
  [ <a href='#failure26'>Previous Failure</a> | <a href='#failure28'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>Expected exit code 0, got 3<br>
-Testcase terminated with signal 0<br>
-Complete testcase output was:<br>
-LEAK: 329 KJS::Node<br>
---> Executing script: compile.js<br>
---> As described in Netscape doc "Whats new in JavaScript 1.2" RegExp: compile<br>
-[5574] ./js1_2/regexp/compile.js line 43: TypeError: Value undefined (result of expression regularExpression.compile) is not object.<br>
-</tt><br>
-<a name='failure28'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/endLine.js'>js1_2/regexp/endLine.js</a> failed</b> <br>
- [ <a href='#failure27'>Previous Failure</a> | <a href='#failure29'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 xyz'.match(new RegExp('\d+$')) = null FAILED! expected: 890<br>
 </tt><br>
-<a name='failure29'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/regress-6359.js'>js1_2/regexp/regress-6359.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=6359' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=6359</a><br>
- [ <a href='#failure28'>Previous Failure</a> | <a href='#failure30'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure28'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/regress-6359.js'>js1_2/regexp/regress-6359.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=6359' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=6359</a><br>
+ [ <a href='#failure27'>Previous Failure</a> | <a href='#failure29'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 329 KJS::Node<br>
---> BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=6359<br>
-[5590] ./js1_2/regexp/regress-6359.js line 56: TypeError: Object /(a*)b\1+/ (result of expression /(a*)b\1+/) does not allow calls.<br>
+BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=6359<br>
+[725] ./js1_2/regexp/regress-6359.js line 56: TypeError: Object /(a*)b\1+/ (result of expression /(a*)b\1+/) does not allow calls.<br>
 </tt><br>
-<a name='failure30'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/regress-9141.js'>js1_2/regexp/regress-9141.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=9141' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=9141</a><br>
- [ <a href='#failure29'>Previous Failure</a> | <a href='#failure31'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure29'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/regress-9141.js'>js1_2/regexp/regress-9141.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=9141' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=9141</a><br>
+ [ <a href='#failure28'>Previous Failure</a> | <a href='#failure30'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 329 KJS::Node<br>
---> BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=9141<br>
-[5591] ./js1_2/regexp/regress-9141.js line 73: TypeError: Object /(?:xx|x)*/ (result of expression /(?:xx|x)*/) does not allow calls.<br>
+BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=9141<br>
+[726] ./js1_2/regexp/regress-9141.js line 73: TypeError: Object /(?:xx|x)*/ (result of expression /(?:xx|x)*/) does not allow calls.<br>
 </tt><br>
-<a name='failure31'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/simple_form.js'>js1_2/regexp/simple_form.js</a> failed</b> <br>
- [ <a href='#failure30'>Previous Failure</a> | <a href='#failure32'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure30'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/simple_form.js'>js1_2/regexp/simple_form.js</a> failed</b> <br>
+ [ <a href='#failure29'>Previous Failure</a> | <a href='#failure31'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 329 KJS::Node<br>
---> Executing script: simple_form.js<br>
---> As described in Netscape doc "Whats new in JavaScript 1.2" RegExp: simple form<br>
-[5592] ./js1_2/regexp/simple_form.js line 43: TypeError: Object /[0-9]{3}/ (result of expression /[0-9]{3}/) does not allow calls.<br>
+Executing script: simple_form.js<br>
+As described in Netscape doc "Whats new in JavaScript 1.2" RegExp: simple form<br>
+[727] ./js1_2/regexp/simple_form.js line 43: TypeError: Object /[0-9]{3}/ (result of expression /[0-9]{3}/) does not allow calls.<br>
+</tt><br>
+<a name='failure31'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/string_split.js'>js1_2/regexp/string_split.js</a> failed</b> <br>
+ [ <a href='#failure30'>Previous Failure</a> | <a href='#failure32'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<tt><br>
+Failure messages were:<br>
+'abc'.split(/[a-z]/) = ,,, FAILED! expected: ,,<br>
+'abc'.split(/[a-z]/) = ,,, FAILED! expected: ,,<br>
+'abc'.split(new RegExp('[a-z]')) = ,,, FAILED! expected: ,,<br>
+'abc'.split(new RegExp('[a-z]')) = ,,, FAILED! expected: ,,<br>
 </tt><br>
-<a name='failure32'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/string_split.js'>js1_2/regexp/string_split.js</a> failed</b> <br>
+<a name='failure32'></a><dd><b>Testcase <a target='other_window' href='./js1_2/version120/boolean-001.js'>js1_2/version120/boolean-001.js</a> failed</b> <br>
  [ <a href='#failure31'>Previous Failure</a> | <a href='#failure33'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
---> 'abc'.split(/[a-z]/) = ,,, FAILED! expected: ,,<br>
---> 'abc'.split(/[a-z]/) = ,,, FAILED! expected: ,,<br>
---> 'abc'.split(new RegExp('[a-z]')) = ,,, FAILED! expected: ,,<br>
---> 'abc'.split(new RegExp('[a-z]')) = ,,, FAILED! expected: ,,<br>
+new Boolean(false) = true FAILED! expected: false<br>
 </tt><br>
-<a name='failure33'></a><dd><b>Testcase <a target='other_window' href='./js1_2/version120/boolean-001.js'>js1_2/version120/boolean-001.js</a> failed</b> <br>
+<a name='failure33'></a><dd><b>Testcase <a target='other_window' href='./js1_2/version120/regress-99663.js'>js1_2/version120/regress-99663.js</a> failed</b> <br>
  [ <a href='#failure32'>Previous Failure</a> | <a href='#failure34'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt><br>
+<tt>STATUS: Regression test for Bugzilla bug 99663<br>
 Failure messages were:<br>
---> new Boolean(false) = true FAILED! expected: false<br>
+Section 1 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
+Section 2 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
+Section 3 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
 </tt><br>
-<a name='failure34'></a><dd><b>Testcase <a target='other_window' href='./js1_2/version120/regress-99663.js'>js1_2/version120/regress-99663.js</a> failed</b> <br>
+<a name='failure34'></a><dd><b>Testcase <a target='other_window' href='./js1_3/Script/function-001-n.js'>js1_3/Script/function-001-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
  [ <a href='#failure33'>Previous Failure</a> | <a href='#failure35'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: Regression test for Bugzilla bug 99663<br>
-Failure messages were:<br>
---> Section 1 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
---> Section 2 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
---> Section 3 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
+<tt>Expected exit code 3, got 0<br>
+Testcase terminated with signal 0<br>
+Complete testcase output was:<br>
+LEAK: 389 KJS::Node<br>
+BUGNUMBER: 10278<br>
+function-001.js functions not separated by semicolons are errors in version 120 and higher<br>
+eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
 </tt><br>
-<a name='failure35'></a><dd><b>Testcase <a target='other_window' href='./js1_3/Script/function-001-n.js'>js1_3/Script/function-001-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
+<a name='failure35'></a><dd><b>Testcase <a target='other_window' href='./js1_3/Script/script-001.js'>js1_3/Script/script-001.js</a> failed</b> <br>
  [ <a href='#failure34'>Previous Failure</a> | <a href='#failure36'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>Expected exit code 3, got 0<br>
+<tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-OK.<br>
-LEAK: 391 KJS::Node<br>
---> BUGNUMBER: 10278<br>
---> function-001.js functions not separated by semicolons are errors in version 120 and higher<br>
---> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
+script-001 NativeScript<br>
+[753] ./js1_3/Script/script-001.js line 133: ReferenceError: Can't find variable: Script<br>
 </tt><br>
-<a name='failure36'></a><dd><b>Testcase <a target='other_window' href='./js1_3/Script/script-001.js'>js1_3/Script/script-001.js</a> failed</b> <br>
+<a name='failure36'></a><dd><b>Testcase <a target='other_window' href='./js1_3/regress/function-001-n.js'>js1_3/regress/function-001-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
  [ <a href='#failure35'>Previous Failure</a> | <a href='#failure37'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>Expected exit code 0, got 3<br>
+<tt>Expected exit code 3, got 0<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 LEAK: 389 KJS::Node<br>
---> script-001 NativeScript<br>
-[5618] ./js1_3/Script/script-001.js line 133: ReferenceError: Can't find variable: Script<br>
+BUGNUMBER: 10278<br>
+function-001.js functions not separated by semicolons are errors in version 120 and higher<br>
+eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
 </tt><br>
-<a name='failure37'></a><dd><b>Testcase <a target='other_window' href='./js1_3/regress/function-001-n.js'>js1_3/regress/function-001-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
+<a name='failure37'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-001.js'>js1_5/Exceptions/catchguard-001.js</a> failed</b> <br>
  [ <a href='#failure36'>Previous Failure</a> | <a href='#failure38'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>Expected exit code 3, got 0<br>
+<tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-OK.<br>
-LEAK: 391 KJS::Node<br>
---> BUGNUMBER: 10278<br>
---> function-001.js functions not separated by semicolons are errors in version 120 and higher<br>
---> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
-</tt><br>
-<a name='failure38'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-001.js'>js1_5/Exceptions/catchguard-001.js</a> failed</b> <br>
+Testcase produced no output!</tt><br>
+<a name='failure38'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-002.js'>js1_5/Exceptions/catchguard-002.js</a> failed</b> <br>
  [ <a href='#failure37'>Previous Failure</a> | <a href='#failure39'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 323 KJS::Node<br>
-</tt><br>
-<a name='failure39'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-002.js'>js1_5/Exceptions/catchguard-002.js</a> failed</b> <br>
+Testcase produced no output!</tt><br>
+<a name='failure39'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-003.js'>js1_5/Exceptions/catchguard-003.js</a> failed</b> <br>
  [ <a href='#failure38'>Previous Failure</a> | <a href='#failure40'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 323 KJS::Node<br>
-</tt><br>
-<a name='failure40'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-003.js'>js1_5/Exceptions/catchguard-003.js</a> failed</b> <br>
+Testcase produced no output!</tt><br>
+<a name='failure40'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/errstack-001.js'>js1_5/Exceptions/errstack-001.js</a> failed</b> <br>
  [ <a href='#failure39'>Previous Failure</a> | <a href='#failure41'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 323 KJS::Node<br>
+[798] ./js1_5/Exceptions/errstack-001.js line 247: TypeError: Undefined value<br>
 </tt><br>
-<a name='failure41'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/errstack-001.js'>js1_5/Exceptions/errstack-001.js</a> failed</b> <br>
+<a name='failure41'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/regress-50447.js'>js1_5/Exceptions/regress-50447.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=50447' target='other_window'>Bug Number 50447</a><br>
  [ <a href='#failure40'>Previous Failure</a> | <a href='#failure42'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 473 KJS::Node<br>
-[5663] ./js1_5/Exceptions/errstack-001.js line 247: TypeError: Undefined value<br>
+BUGNUMBER: 50447<br>
+STATUS: Test (non-ECMA) Error object properties fileName, lineNumber<br>
+[799] ./js1_5/Exceptions/regress-50447.js line 65: TypeError: Undefined value<br>
 </tt><br>
-<a name='failure42'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/regress-50447.js'>js1_5/Exceptions/regress-50447.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=50447' target='other_window'>Bug Number 50447</a><br>
+<a name='failure42'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-001.js'>js1_5/GetSet/getset-001.js</a> failed</b> <br>
  [ <a href='#failure41'>Previous Failure</a> | <a href='#failure43'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 654 KJS::Node<br>
---> BUGNUMBER: 50447<br>
---> STATUS: Test (non-ECMA) Error object properties fileName, lineNumber<br>
-[5664] ./js1_5/Exceptions/regress-50447.js line 65: TypeError: Undefined value<br>
-</tt><br>
-<a name='failure43'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-001.js'>js1_5/GetSet/getset-001.js</a> failed</b> <br>
+Testcase produced no output!</tt><br>
+<a name='failure43'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-002.js'>js1_5/GetSet/getset-002.js</a> failed</b> <br>
  [ <a href='#failure42'>Previous Failure</a> | <a href='#failure44'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 323 KJS::Node<br>
-</tt><br>
-<a name='failure44'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-002.js'>js1_5/GetSet/getset-002.js</a> failed</b> <br>
+Testcase produced no output!</tt><br>
+<a name='failure44'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-003.js'>js1_5/GetSet/getset-003.js</a> failed</b> <br>
  [ <a href='#failure43'>Previous Failure</a> | <a href='#failure45'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 323 KJS::Node<br>
-</tt><br>
-<a name='failure45'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-003.js'>js1_5/GetSet/getset-003.js</a> failed</b> <br>
+Testcase produced no output!</tt><br>
+<a name='failure45'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-90596-001.js'>js1_5/Object/regress-90596-001.js</a> failed</b> <br>
  [ <a href='#failure44'>Previous Failure</a> | <a href='#failure46'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 323 KJS::Node<br>
+[814] ./js1_5/Object/regress-90596-001.js line 48: TypeError: Value undefined (result of expression obj.toSource) is not object.<br>
 </tt><br>
-<a name='failure46'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-90596-001.js'>js1_5/Object/regress-90596-001.js</a> failed</b> <br>
+<a name='failure46'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-90596-002.js'>js1_5/Object/regress-90596-002.js</a> failed</b> <br>
  [ <a href='#failure45'>Previous Failure</a> | <a href='#failure47'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 765 KJS::Node<br>
-[5679] ./js1_5/Object/regress-90596-001.js line 48: TypeError: Value undefined (result of expression obj.toSource) is not object.<br>
+[815] ./js1_5/Object/regress-90596-002.js line 48: ReferenceError: Can't find variable: uneval<br>
 </tt><br>
-<a name='failure47'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-90596-002.js'>js1_5/Object/regress-90596-002.js</a> failed</b> <br>
+<a name='failure47'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-96284-001.js'>js1_5/Object/regress-96284-001.js</a> failed</b> <br>
  [ <a href='#failure46'>Previous Failure</a> | <a href='#failure48'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 769 KJS::Node<br>
-[5680] ./js1_5/Object/regress-90596-002.js line 48: ReferenceError: Can't find variable: uneval<br>
+[817] ./js1_5/Object/regress-96284-001.js line 49: TypeError: Value undefined (result of expression obj1.toSource) is not object.<br>
 </tt><br>
-<a name='failure48'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-96284-001.js'>js1_5/Object/regress-96284-001.js</a> failed</b> <br>
+<a name='failure48'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-96284-002.js'>js1_5/Object/regress-96284-002.js</a> failed</b> <br>
  [ <a href='#failure47'>Previous Failure</a> | <a href='#failure49'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 397 KJS::Node<br>
-[5682] ./js1_5/Object/regress-96284-001.js line 49: TypeError: Value undefined (result of expression obj1.toSource) is not object.<br>
+[818] ./js1_5/Object/regress-96284-002.js line 49: ReferenceError: Can't find variable: uneval<br>
 </tt><br>
-<a name='failure49'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-96284-002.js'>js1_5/Object/regress-96284-002.js</a> failed</b> <br>
+<a name='failure49'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-44009.js'>js1_5/Regress/regress-44009.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=44009' target='other_window'>Bug Number 44009</a><br>
  [ <a href='#failure48'>Previous Failure</a> | <a href='#failure50'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 397 KJS::Node<br>
-[5683] ./js1_5/Object/regress-96284-002.js line 49: ReferenceError: Can't find variable: uneval<br>
+BUGNUMBER: 44009<br>
+STATUS: Testing that we don't crash on obj.toSource()<br>
+[823] ./js1_5/Regress/regress-44009.js line 60: TypeError: Value undefined (result of expression obj.toSource) is not object.<br>
 </tt><br>
-<a name='failure50'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-44009.js'>js1_5/Regress/regress-44009.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=44009' target='other_window'>Bug Number 44009</a><br>
+<a name='failure50'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-68498-003.js'>js1_5/Regress/regress-68498-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=68498' target='other_window'>Bug Number 68498</a><br>
  [ <a href='#failure49'>Previous Failure</a> | <a href='#failure51'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>Expected exit code 0, got 3<br>
-Testcase terminated with signal 0<br>
-Complete testcase output was:<br>
-LEAK: 396 KJS::Node<br>
---> BUGNUMBER: 44009<br>
---> STATUS: Testing that we don't crash on obj.toSource()<br>
-[5688] ./js1_5/Regress/regress-44009.js line 60: TypeError: Value undefined (result of expression obj.toSource) is not object.<br>
+<tt>STATUS: Testing calling obj.eval(str)<br>
+Failure messages were:<br>
+FAILED!: [reported from test()] Testing calling obj.eval(str); currently at expect[1] within test -<br>
+FAILED!: [reported from test()] Type mismatch, expected type number, actual type boolean<br>
+FAILED!: [reported from test()] Expected value '43', Actual value 'false'<br>
+FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure51'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-68498-003.js'>js1_5/Regress/regress-68498-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=68498' target='other_window'>Bug Number 68498</a><br>
+<a name='failure51'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-103602.js'>js1_5/Regress/regress-103602.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=103602' target='other_window'>Bug Number 103602</a><br>
  [ <a href='#failure50'>Previous Failure</a> | <a href='#failure52'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: Testing calling obj.eval(str)<br>
+<tt>STATUS: Reassignment to a const is NOT an error per ECMA<br>
 Failure messages were:<br>
---> FAILED!: [reported from test()] Testing calling obj.eval(str); currently at expect[1] within test -<br>
---> FAILED!: [reported from test()] Type mismatch, expected type number, actual type boolean<br>
---> FAILED!: [reported from test()] Expected value '43', Actual value 'false'<br>
---> FAILED!: [reported from test()] <br>
-</tt><br>
-<a name='failure52'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-103602.js'>js1_5/Regress/regress-103602.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=103602' target='other_window'>Bug Number 103602</a><br>
+FAILED!: [reported from test()] Section 1 of test -<br>
+FAILED!: [reported from test()] Expected value '', Actual value 'Redeclaration of a const FAILED to cause an error'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 3 of test -<br>
+FAILED!: [reported from test()] Expected value '1', Actual value '2'<br>
+FAILED!: [reported from test()] <br>
+</tt><br>
+<a name='failure52'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-104077.js'>js1_5/Regress/regress-104077.js</a> failed</b> <br>
  [ <a href='#failure51'>Previous Failure</a> | <a href='#failure53'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: Reassignment to a const is NOT an error per ECMA<br>
-Failure messages were:<br>
---> FAILED!: [reported from test()] Section 1 of test -<br>
---> FAILED!: [reported from test()] Expected value '', Actual value 'Redeclaration of a const FAILED to cause an error'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 3 of test -<br>
---> FAILED!: [reported from test()] Expected value '1', Actual value '2'<br>
---> FAILED!: [reported from test()] <br>
-</tt><br>
-<a name='failure53'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-104077.js'>js1_5/Regress/regress-104077.js</a> failed</b> <br>
- [ <a href='#failure52'>Previous Failure</a> | <a href='#failure54'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 323 KJS::Node<br>
-</tt><br>
-<a name='failure54'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-127557.js'>js1_5/Regress/regress-127557.js</a> failed</b> <br>
- [ <a href='#failure53'>Previous Failure</a> | <a href='#failure55'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+Testcase produced no output!</tt><br>
+<a name='failure53'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-127557.js'>js1_5/Regress/regress-127557.js</a> failed</b> <br>
+ [ <a href='#failure52'>Previous Failure</a> | <a href='#failure54'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 419 KJS::Node<br>
-[5714] ./js1_5/Regress/regress-127557.js line 75: ReferenceError: Can't find variable: clone<br>
+[849] ./js1_5/Regress/regress-127557.js line 75: ReferenceError: Can't find variable: clone<br>
 </tt><br>
-<a name='failure55'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-172699.js'>js1_5/Regress/regress-172699.js</a> failed</b> <br>
- [ <a href='#failure54'>Previous Failure</a> | <a href='#failure56'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure54'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-172699.js'>js1_5/Regress/regress-172699.js</a> failed</b> <br>
+ [ <a href='#failure53'>Previous Failure</a> | <a href='#failure55'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 397 KJS::Node<br>
-[5723] ./js1_5/Regress/regress-172699.js line 61: URIError: URI error<br>
+[858] ./js1_5/Regress/regress-172699.js line 61: URIError: URI error<br>
 </tt><br>
-<a name='failure56'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-179524.js'>js1_5/Regress/regress-179524.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=179524' target='other_window'>Bug Number 179524</a><br>
- [ <a href='#failure55'>Previous Failure</a> | <a href='#failure57'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: Don't crash on extraneous arguments to str.match(), etc.<br>
+<a name='failure55'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-179524.js'>js1_5/Regress/regress-179524.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=179524' target='other_window'>Bug Number 179524</a><br>
+ [ <a href='#failure54'>Previous Failure</a> | <a href='#failure56'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<tt>STATUS: Don't crash on extraneous arguments to str.match(), etc.<br>
 Failure messages were:<br>
---> FAILED!: [reported from test()] Section 14 of test -<br>
---> FAILED!: [reported from test()] Expected value 'A', Actual value 'a'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 15 of test -<br>
---> FAILED!: [reported from test()] Expected value 'A,a', Actual value 'a'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 17 of test -<br>
---> FAILED!: [reported from test()] Expected value 'A', Actual value 'a'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 18 of test -<br>
---> FAILED!: [reported from test()] Expected value 'A,a', Actual value 'a'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 20 of test -<br>
---> FAILED!: [reported from test()] Expected value 'SHOULD HAVE FALLEN INTO CATCH-BLOCK!', Actual value 'a'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 22 of test -<br>
---> FAILED!: [reported from test()] Expected value '0', Actual value '4'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 23 of test -<br>
---> FAILED!: [reported from test()] Expected value '0', Actual value '4'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 25 of test -<br>
---> FAILED!: [reported from test()] Expected value '0', Actual value '4'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 26 of test -<br>
---> FAILED!: [reported from test()] Expected value '0', Actual value '4'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 28 of test -<br>
---> FAILED!: [reported from test()] Type mismatch, expected type string, actual type number<br>
---> FAILED!: [reported from test()] Expected value 'SHOULD HAVE FALLEN INTO CATCH-BLOCK!', Actual value '4'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 30 of test -<br>
---> FAILED!: [reported from test()] Expected value 'ZBC abc', Actual value 'ABC Zbc'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 31 of test -<br>
---> FAILED!: [reported from test()] Expected value 'ZBC Zbc', Actual value 'ABC Zbc'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 33 of test -<br>
---> FAILED!: [reported from test()] Expected value 'ZBC abc', Actual value 'ABC Zbc'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 34 of test -<br>
---> FAILED!: [reported from test()] Expected value 'ZBC Zbc', Actual value 'ABC Zbc'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 36 of test -<br>
---> FAILED!: [reported from test()] Expected value 'SHOULD HAVE FALLEN INTO CATCH-BLOCK!', Actual value 'ABC Zbc'<br>
---> FAILED!: [reported from test()] <br>
-</tt><br>
-<a name='failure57'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/regress-220584.js'>js1_5/Scope/regress-220584.js</a> failed</b> <br>
- [ <a href='#failure56'>Previous Failure</a> | <a href='#failure58'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+FAILED!: [reported from test()] Section 14 of test -<br>
+FAILED!: [reported from test()] Expected value 'A', Actual value 'a'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 15 of test -<br>
+FAILED!: [reported from test()] Expected value 'A,a', Actual value 'a'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 17 of test -<br>
+FAILED!: [reported from test()] Expected value 'A', Actual value 'a'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 18 of test -<br>
+FAILED!: [reported from test()] Expected value 'A,a', Actual value 'a'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 20 of test -<br>
+FAILED!: [reported from test()] Expected value 'SHOULD HAVE FALLEN INTO CATCH-BLOCK!', Actual value 'a'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 22 of test -<br>
+FAILED!: [reported from test()] Expected value '0', Actual value '4'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 23 of test -<br>
+FAILED!: [reported from test()] Expected value '0', Actual value '4'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 25 of test -<br>
+FAILED!: [reported from test()] Expected value '0', Actual value '4'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 26 of test -<br>
+FAILED!: [reported from test()] Expected value '0', Actual value '4'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 28 of test -<br>
+FAILED!: [reported from test()] Type mismatch, expected type string, actual type number<br>
+FAILED!: [reported from test()] Expected value 'SHOULD HAVE FALLEN INTO CATCH-BLOCK!', Actual value '4'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 30 of test -<br>
+FAILED!: [reported from test()] Expected value 'ZBC abc', Actual value 'ABC Zbc'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 31 of test -<br>
+FAILED!: [reported from test()] Expected value 'ZBC Zbc', Actual value 'ABC Zbc'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 33 of test -<br>
+FAILED!: [reported from test()] Expected value 'ZBC abc', Actual value 'ABC Zbc'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 34 of test -<br>
+FAILED!: [reported from test()] Expected value 'ZBC Zbc', Actual value 'ABC Zbc'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Section 36 of test -<br>
+FAILED!: [reported from test()] Expected value 'SHOULD HAVE FALLEN INTO CATCH-BLOCK!', Actual value 'ABC Zbc'<br>
+FAILED!: [reported from test()] <br>
+</tt><br>
+<a name='failure56'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/regress-220584.js'>js1_5/Scope/regress-220584.js</a> failed</b> <br>
+ [ <a href='#failure55'>Previous Failure</a> | <a href='#failure57'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 397 KJS::Node<br>
-[5748] ./js1_5/Scope/regress-220584.js line 56: ReferenceError: Can't find variable: Script<br>
+[883] ./js1_5/Scope/regress-220584.js line 56: ReferenceError: Can't find variable: Script<br>
 </tt><br>
-<a name='failure58'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/scope-001.js'>js1_5/Scope/scope-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=53268' target='other_window'>Bug Number 53268</a><br>
+<a name='failure57'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/scope-001.js'>js1_5/Scope/scope-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=53268' target='other_window'>Bug Number 53268</a><br>
+ [ <a href='#failure56'>Previous Failure</a> | <a href='#failure58'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<tt>STATUS: Testing scope after changing obj.__proto__<br>
+Failure messages were:<br>
+FAILED!: [reported from test()] Step 1:  setting obj.__proto__ = global object<br>
+FAILED!: [reported from test()] Expected value '5', Actual value '1'<br>
+FAILED!: [reported from test()] <br>
+FAILED!: [reported from test()] Step 2:  setting obj.__proto__ = null<br>
+FAILED!: [reported from test()] Type mismatch, expected type undefined, actual type number<br>
+FAILED!: [reported from test()] Expected value 'undefined', Actual value '1'<br>
+FAILED!: [reported from test()] <br>
+</tt><br>
+<a name='failure58'></a><dd><b>Testcase <a target='other_window' href='./js1_6/Regress/regress-301574.js'>js1_6/Regress/regress-301574.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=301574' target='other_window'>Bug Number 301574</a><br>
  [ <a href='#failure57'>Previous Failure</a> | <a href='#failure59'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: Testing scope after changing obj.__proto__<br>
+<tt>STATUS: E4X should be enabled even when e4x=1 not specified<br>
 Failure messages were:<br>
---> FAILED!: [reported from test()] Step 1:  setting obj.__proto__ = global object<br>
---> FAILED!: [reported from test()] Expected value '5', Actual value '1'<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Step 2:  setting obj.__proto__ = null<br>
---> FAILED!: [reported from test()] Type mismatch, expected type undefined, actual type number<br>
---> FAILED!: [reported from test()] Expected value 'undefined', Actual value '1'<br>
---> FAILED!: [reported from test()] <br>
-</tt><br>
-<a name='failure59'></a><dd><b>Testcase <a target='other_window' href='./js1_6/Regress/regress-301574.js'>js1_6/Regress/regress-301574.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=301574' target='other_window'>Bug Number 301574</a><br>
+FAILED!: E4X should be enabled even when e4x=1 not specified: XML()<br>
+FAILED!: Expected value 'No error', Actual value 'error: ReferenceError: Can't find variable: XML'<br>
+FAILED!: <br>
+FAILED!: E4X should be enabled even when e4x=1 not specified: XMLList()<br>
+FAILED!: Expected value 'No error', Actual value 'error: ReferenceError: Can't find variable: XML'<br>
+FAILED!: <br>
+</tt><br>
+<a name='failure59'></a><dd><b>Testcase <a target='other_window' href='./js1_6/Regress/regress-309242.js'>js1_6/Regress/regress-309242.js</a> failed</b> <br>
  [ <a href='#failure58'>Previous Failure</a> | <a href='#failure60'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
-<tt>--> STATUS: E4X should be enabled even when e4x=1 not specified<br>
-Failure messages were:<br>
---> FAILED!: E4X should be enabled even when e4x=1 not specified: XML()<br>
---> FAILED!: Expected value 'No error', Actual value 'error: ReferenceError: Can't find variable: XML'<br>
---> FAILED!: <br>
---> FAILED!: E4X should be enabled even when e4x=1 not specified: XMLList()<br>
---> FAILED!: Expected value 'No error', Actual value 'error: ReferenceError: Can't find variable: XML'<br>
---> FAILED!: <br>
-</tt><br>
-<a name='failure60'></a><dd><b>Testcase <a target='other_window' href='./js1_6/Regress/regress-309242.js'>js1_6/Regress/regress-309242.js</a> failed</b> <br>
- [ <a href='#failure59'>Previous Failure</a> | <a href='#failure61'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 1212 KJS::Node<br>
-</tt><br>
-<a name='failure61'></a><dd><b>Testcase <a target='other_window' href='./js1_6/Regress/regress-314887.js'>js1_6/Regress/regress-314887.js</a> failed</b> <br>
- [ <a href='#failure60'>Previous Failure</a> | <a href='#failure62'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+Testcase produced no output!</tt><br>
+<a name='failure60'></a><dd><b>Testcase <a target='other_window' href='./js1_6/Regress/regress-314887.js'>js1_6/Regress/regress-314887.js</a> failed</b> <br>
+ [ <a href='#failure59'>Previous Failure</a> | <a href='#failure61'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 1212 KJS::Node<br>
-</tt><br>
-<a name='failure62'></a><dd><b>Testcase <a target='other_window' href='./js1_6/String/regress-306591.js'>js1_6/String/regress-306591.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=306591' target='other_window'>Bug Number 306591</a><br>
- [ <a href='#failure61'>Previous Failure</a> | <a href='#failure63'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+Testcase produced no output!</tt><br>
+<a name='failure61'></a><dd><b>Testcase <a target='other_window' href='./js1_6/String/regress-306591.js'>js1_6/String/regress-306591.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=306591' target='other_window'>Bug Number 306591</a><br>
+ [ <a href='#failure60'>Previous Failure</a> | <a href='#failure62'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-LEAK: 1212 KJS::Node<br>
---> BUGNUMBER: 306591<br>
---> STATUS: String static methods<br>
---> STATUS: See https://bugzilla.mozilla.org/show_bug.cgi?id=304828<br>
-[5770] ./js1_6/String/regress-306591.js line 48: TypeError: Value undefined (result of expression String.split) is not object.<br>
+BUGNUMBER: 306591<br>
+STATUS: String static methods<br>
+STATUS: See https://bugzilla.mozilla.org/show_bug.cgi?id=304828<br>
+[905] ./js1_6/String/regress-306591.js line 48: TypeError: Value undefined (result of expression String.split) is not object.<br>
 </tt><br>
 </dl>
 [ <a href='#tippy_top'>Top of Page</a> | <a href='#fail_detail'>Top of Failures</a> ]<br>
@@ -697,9 +653,9 @@ LEAK: 1212 KJS::Node<br>
 <pre>
 <a name='retest_list'></a>
 <h2>Retest List</h2><br>
-# Retest List, kjs, generated Sat Sep 29 01:57:37 2007.
+# Retest List, kjs, generated Tue Oct 30 10:12:12 2007.
 # Original test base was: All tests.
-# 1127 of 1135 test(s) were completed, 62 failures reported.
+# 1127 of 1135 test(s) were completed, 61 failures reported.
 ecma/TypeConversion/9.3.1-3.js
 ecma_2/Exceptions/function-001.js
 ecma_2/RegExp/regress-001.js
@@ -726,7 +682,6 @@ js1_2/regexp/RegExp_lastIndex.js
 js1_2/regexp/RegExp_multiline.js
 js1_2/regexp/RegExp_multiline_as_array.js
 js1_2/regexp/beginLine.js
-js1_2/regexp/compile.js
 js1_2/regexp/endLine.js
 js1_2/regexp/regress-6359.js
 js1_2/regexp/regress-9141.js
index e0b8aec28fddcf6d16574425f83cd3e0d89a802b..0aeecb45cec2f7a458f6cb3549210d4796919577 100644 (file)
@@ -1,3 +1,14 @@
+2007-10-31  Alexey Proskuryakov  <ap@webkit.org>
+
+        Reviewed by Darin.
+
+        http://bugs.webkit.org/show_bug.cgi?id=11001
+        WebKit doesn't support RegExp.compile method
+
+        * fast/js/regexp-compile-expected.txt: Added.
+        * fast/js/regexp-compile.html: Added.
+        * fast/js/resources/regexp-compile.js: Added.
+
 2007-10-31  Alexey Proskuryakov  <ap@webkit.org>
 
         Reviewed by Anders.
diff --git a/LayoutTests/fast/js/regexp-compile-expected.txt b/LayoutTests/fast/js/regexp-compile-expected.txt
new file mode 100644 (file)
index 0000000..4b85c3e
--- /dev/null
@@ -0,0 +1,26 @@
+Test RegExp.compile method.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS re.toString() is '/a/i'
+PASS re.multiline is false
+PASS re.ignoreCase is false
+PASS re.global is false
+PASS re.test('A') is false
+PASS re.toString() is '/a/'
+PASS re.toString() is '/b/g'
+PASS re.toString() is '/c/'
+PASS re.ignoreCase is true
+PASS re.test('C') is true
+PASS re.toString() is '/c/i'
+PASS re.compile(new RegExp('c'), 'i'); threw exception TypeError: cannot supply flags when constructing one RegExp from another..
+PASS re.compile(new RegExp('+')); threw exception SyntaxError: Invalid regular expression: nothing to repeat.
+PASS re.toString() is '/undefined/'
+PASS re.toString() is '/null/'
+PASS re.toString() is '//'
+PASS re.toString() is '/z/'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/js/regexp-compile.html b/LayoutTests/fast/js/regexp-compile.html
new file mode 100644 (file)
index 0000000..61346eb
--- /dev/null
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="resources/js-test-style.css">
+<script src="resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="resources/regexp-compile.js"></script>
+<script src="resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/fast/js/resources/regexp-compile.js b/LayoutTests/fast/js/resources/regexp-compile.js
new file mode 100644 (file)
index 0000000..6fc2783
--- /dev/null
@@ -0,0 +1,42 @@
+description(
+'Test RegExp.compile method.'
+);
+
+re = new RegExp("a", "i");
+shouldBe("re.toString()", "'/a/i'");
+
+re.compile("a");
+shouldBe("re.multiline", "false");
+shouldBe("re.ignoreCase", "false");
+shouldBe("re.global", "false");
+shouldBe("re.test('A')", "false");
+shouldBe("re.toString()", "'/a/'");
+
+re.compile("b", "g");
+shouldBe("re.toString()", "'/b/g'");
+
+re.compile(new RegExp("c"));
+shouldBe("re.toString()", "'/c/'");
+
+re.compile(new RegExp("c", "i"));
+shouldBe("re.ignoreCase", "true");
+shouldBe("re.test('C')", "true");
+shouldBe("re.toString()", "'/c/i'");
+
+shouldThrow("re.compile(new RegExp('c'), 'i');");
+
+shouldThrow("re.compile(new RegExp('+'));");
+
+re.compile(undefined);
+shouldBe("re.toString()", "'/undefined/'");
+
+re.compile(null);
+shouldBe("re.toString()", "'/null/'");
+
+re.compile();
+shouldBe("re.toString()", "'//'"); // /(?:)/ in Firefox
+
+re.compile("z", undefined);
+shouldBe("re.toString()", "'/z/'");
+
+var successfullyParsed = true;