Changeset 110657 in webkit


Ignore:
Timestamp:
Mar 13, 2012, 7:12:25 PM (13 years ago)
Author:
[email protected]
Message:

Type conversion of exponential part failed
https://bugs.webkit.org/show_bug.cgi?id=80673

Reviewed by Geoffrey Garen.

  • parser/Lexer.cpp:

(JSC::::lex):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::parseInt):
(JSC):
(JSC::jsStrDecimalLiteral): Added another template argument that exposes whether or not
we accept trailing junk to clients of jsStrDecimalLiteral. Also added additional template
parameter for strtod to allow trailing spaces.
(JSC::toDouble):
(JSC::parseFloat): Accept trailing junk, as per the ECMA 262 spec (15.1.2.3).

  • runtime/LiteralParser.cpp:

(JSC::::Lexer::lexNumber):

  • tests/mozilla/expected.html: Update the expected page for run-javascriptcore-tests so that

we will run ecma/TypeConversion/9.3.1-3.js as a regression test now.

  • wtf/dtoa.cpp:

(WTF):
(WTF::strtod): We also needed to sometimes accept trailing spaces to pass a few other tests that were
broken by changing the default allowance of trailing junk in jsStrDecimalLiteral.

  • wtf/dtoa.h:
  • wtf/dtoa/double-conversion.cc: When the AdvanceToNonspace function was lifted out of the

Chromium codebase, the person porting it only thought to check for spaces when skipping whitespace.
A few of our JSC tests check for other types of trailing whitespace, so I've added checks for those
here to cover those cases (horizontal tab, vertical tab, carriage return, form feed, and line feed).

  • wtf/text/WTFString.cpp:

(WTF::toDoubleType): Disallow trailing spaces, as this breaks form input verification stuff.

Location:
trunk/Source/JavaScriptCore
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r110654 r110657  
     12012-03-13  Mark Hahnenberg  <[email protected]>
     2
     3        Type conversion of exponential part failed
     4        https://bugs.webkit.org/show_bug.cgi?id=80673
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        * parser/Lexer.cpp:
     9        (JSC::::lex):
     10        * runtime/JSGlobalObjectFunctions.cpp:
     11        (JSC::parseInt):
     12        (JSC):
     13        (JSC::jsStrDecimalLiteral): Added another template argument that exposes whether or not
     14        we accept trailing junk to clients of jsStrDecimalLiteral. Also added additional template
     15        parameter for strtod to allow trailing spaces.
     16        (JSC::toDouble):
     17        (JSC::parseFloat): Accept trailing junk, as per the ECMA 262 spec (15.1.2.3).
     18        * runtime/LiteralParser.cpp:
     19        (JSC::::Lexer::lexNumber):
     20        * tests/mozilla/expected.html: Update the expected page for run-javascriptcore-tests so that
     21        we will run ecma/TypeConversion/9.3.1-3.js as a regression test now.
     22        * wtf/dtoa.cpp:
     23        (WTF):
     24        (WTF::strtod): We also needed to sometimes accept trailing spaces to pass a few other tests that were
     25        broken by changing the default allowance of trailing junk in jsStrDecimalLiteral.
     26        * wtf/dtoa.h:
     27        * wtf/dtoa/double-conversion.cc: When the AdvanceToNonspace function was lifted out of the
     28        Chromium codebase, the person porting it only thought to check for spaces when skipping whitespace.
     29        A few of our JSC tests check for other types of trailing whitespace, so I've added checks for those
     30        here to cover those cases (horizontal tab, vertical tab, carriage return, form feed, and line feed).
     31        * wtf/text/WTFString.cpp:
     32        (WTF::toDoubleType): Disallow trailing spaces, as this breaks form input verification stuff.
     33
    1342012-03-13  Filip Pizlo  <[email protected]>
    235
  • trunk/Source/JavaScriptCore/parser/Lexer.cpp

    r110033 r110657  
    14811481                // Null-terminate string for strtod.
    14821482                m_buffer8.append('\0');
    1483                 tokenData->doubleValue = WTF::strtod<WTF::AllowTrailingJunk>(reinterpret_cast<const char*>(m_buffer8.data()), 0);
     1483                tokenData->doubleValue = WTF::strtod<WTF::AllowTrailingJunk, WTF::DisallowTrailingSpaces>(reinterpret_cast<const char*>(m_buffer8.data()), 0);
    14841484            }
    14851485            token = NUMBER;
  • trunk/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp

    r110033 r110657  
    298298    if (number >= mantissaOverflowLowerBound) {
    299299        if (radix == 10)
    300             number = WTF::strtod<WTF::AllowTrailingJunk>(s.substringSharingImpl(firstDigitPosition, p - firstDigitPosition).utf8().data(), 0);
     300            number = WTF::strtod<WTF::AllowTrailingJunk, WTF::DisallowTrailingSpaces>(s.substringSharingImpl(firstDigitPosition, p - firstDigitPosition).utf8().data(), 0);
    301301        else if (radix == 2 || radix == 4 || radix == 8 || radix == 16 || radix == 32)
    302302            number = parseIntOverflow(s.substringSharingImpl(firstDigitPosition, p - firstDigitPosition).utf8().data(), p - firstDigitPosition, radix);
     
    357357
    358358// See ecma-262 9.3.1
    359 template <typename CharType>
     359template <WTF::AllowTrailingJunkTag allowTrailingJunk, typename CharType>
    360360static double jsStrDecimalLiteral(const CharType*& data, const CharType* end)
    361361{
     
    370370    byteBuffer.append(0);
    371371    char* endOfNumber;
    372     double number = WTF::strtod<WTF::AllowTrailingJunk>(byteBuffer.data(), &endOfNumber);
     372    double number = WTF::strtod<allowTrailingJunk, WTF::AllowTrailingSpaces>(byteBuffer.data(), &endOfNumber);
    373373
    374374    // Check if strtod found a number; if so return it.
     
    426426        number = jsHexIntegerLiteral(characters, endCharacters);
    427427    else
    428         number = jsStrDecimalLiteral(characters, endCharacters);
     428        number = jsStrDecimalLiteral<WTF::DisallowTrailingJunk>(characters, endCharacters);
    429429   
    430430    // Allow trailing white space.
     
    483483            return std::numeric_limits<double>::quiet_NaN();
    484484
    485         return jsStrDecimalLiteral(data, end);
     485        return jsStrDecimalLiteral<WTF::AllowTrailingJunk>(data, end);
    486486    }
    487487
     
    499499        return std::numeric_limits<double>::quiet_NaN();
    500500
    501     return jsStrDecimalLiteral(data, end);
     501    return jsStrDecimalLiteral<WTF::AllowTrailingJunk>(data, end);
    502502}
    503503
  • trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp

    r108742 r110657  
    538538    buffer[i] = 0;
    539539    char* end;
    540     token.numberToken = WTF::strtod<WTF::AllowTrailingJunk>(buffer.data(), &end);
     540    token.numberToken = WTF::strtod<WTF::AllowTrailingJunk, WTF::DisallowTrailingSpaces>(buffer.data(), &end);
    541541    ASSERT(buffer.data() + (token.end - token.start) == end);
    542542    return TokNumber;
  • trunk/Source/JavaScriptCore/tests/mozilla/expected.html

    r76180 r110657  
    77<p class='results_summary'>
    88Test List: All tests<br>
    9 Skip List: ecma/Date/15.9.2.1.js, ecma/Date/15.9.2.2-1.js, ecma/Date/15.9.2.2-2.js, ecma/Date/15.9.2.2-3.js, ecma/Date/15.9.2.2-4.js, ecma/Date/15.9.2.2-5.js, ecma/Date/15.9.2.2-6.js, ecma_3/Date/15.9.5.7.js<br>
    10 1127 test(s) selected, 1119 test(s) completed, 51 failures reported (4.55% failed)<br>
    11 Engine command line: "/Volumes/BigData/git/WebKit/WebKitBuild/Debug/jsc" <br>
    12 OS type: Darwin 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386<br>
    13 Testcase execution time: 1 minutes, 3 seconds.<br>
    14 Tests completed on Wed Jan 19 13:26:57 2011.<br><br>
     9Skip List: ecma/Date/15.9.2.1.js, ecma/Date/15.9.2.2-1.js, ecma/Date/15.9.2.2-2.js, ecma/Date/15.9.2.2-3.js, ecma/Date/15.9.2.2-4.js, ecma/Date/15.9.2.2-5.js, ecma/Date/15.9.2.2-6.js, ecma_3/Date/15.9.5.7.js, ecma/Date/15.9.5.14.js, ecma/Date/15.9.5.31-1.js, ecma/Date/15.9.5.34-1.js<br>
     101124 test(s) selected, 1116 test(s) completed, 50 failures reported (4.48% failed)<br>
     11Engine command line: "/Users/mhahnenberg/Code/WebKit/WebKitBuild/Debug/jsc" <br>
     12OS type: Darwin Marks-MacBook-Pro.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64<br>
     13Testcase execution time: 44 seconds.<br>
     14Tests completed on Fri Mar  9 18:26:54 2012.<br><br>
    1515[ <a href='#fail_detail'>Failure Details</a> | <a href='#retest_list'>Retest List</a> | <a href='menu.html'>Test Selection Page</a> ]<br>
    1616<hr>
    1717<a name='fail_detail'></a>
    1818<h2>Failure Details</h2><br>
    19 <dl><a name='failure1'></a><dd><b>Testcase <a target='other_window' href='./ecma/TypeConversion/9.3.1-3.js'>ecma/TypeConversion/9.3.1-3.js</a> failed</b> <br>
     19<dl><a name='failure1'></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>
    2020 [ <a href='#failure2'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    2121<tt><br>
    2222Failure messages were:<br>
    23 - "-0x123456789abcde8" = NaN FAILED! expected: 81985529216486880<br>
    24 - "-0x123456789abcde8" = NaN FAILED! expected: 81985529216486880<br>
    25 </tt><br>
    26 <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>
     23eval("function f(){}function g(){}") (threw no exception thrown = fail FAILED! expected: pass<br>
     24</tt><br>
     25<a name='failure2'></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>
    2726 [ <a href='#failure1'>Previous Failure</a> | <a href='#failure3'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    28 <tt><br>
    29 Failure messages were:<br>
    30 eval("function f(){}function g(){}") (threw no exception thrown = fail FAILED! expected: pass<br>
    31 </tt><br>
    32 <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>
    33  [ <a href='#failure2'>Previous Failure</a> | <a href='#failure4'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    3427<tt>Expected exit code 0, got 3<br>
    3528Testcase terminated with signal 0<br>
     
    3831BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=2157<br>
    3932</tt><br>
    40 <a name='failure4'></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>
    41  [ <a href='#failure3'>Previous Failure</a> | <a href='#failure5'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     33<a name='failure3'></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>
     34 [ <a href='#failure2'>Previous Failure</a> | <a href='#failure4'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    4235<tt>STATUS: Function Expression Statements basic test.<br>
    4336Failure messages were:<br>
     
    4639FAILED!: [reported from test()] <br>
    4740</tt><br>
    48 <a name='failure5'></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>
     41<a name='failure4'></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>
     42 [ <a href='#failure3'>Previous Failure</a> | <a href='#failure5'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     43<tt>Expected exit code 0, got 3<br>
     44Testcase terminated with signal 0<br>
     45Complete testcase output was:<br>
     46Testcase produced no output!</tt><br>
     47<a name='failure5'></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>
    4948 [ <a href='#failure4'>Previous Failure</a> | <a href='#failure6'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    50 <tt>Expected exit code 0, got 3<br>
    51 Testcase terminated with signal 0<br>
    52 Complete testcase output was:<br>
    53 Testcase produced no output!</tt><br>
    54 <a name='failure6'></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>
    55  [ <a href='#failure5'>Previous Failure</a> | <a href='#failure7'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    5649<tt>STATUS: Unicode format-control character (Category Cf) test.<br>
    5750Failure messages were:<br>
     
    6053FAILED!: [reported from test()] <br>
    6154</tt><br>
    62 <a name='failure7'></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>
     55<a name='failure6'></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>
     56 [ <a href='#failure5'>Previous Failure</a> | <a href='#failure7'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     57<tt>Expected exit code 0, got 3<br>
     58Testcase terminated with signal 0<br>
     59Complete testcase output was:<br>
     60JS1_2 Object.toString()<br>
     61</tt><br>
     62<a name='failure7'></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>
    6363 [ <a href='#failure6'>Previous Failure</a> | <a href='#failure8'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    64 <tt>Expected exit code 0, got 3<br>
    65 Testcase terminated with signal 0<br>
    66 Complete testcase output was:<br>
    67 JS1_2 Object.toString()<br>
    68 </tt><br>
    69 <a name='failure8'></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>
     64<tt><br>
     65Failure messages were:<br>
     66f.arity = undefined FAILED! expected: 3<br>
     67} FAILED! expected: <br>
     68</tt><br>
     69<a name='failure8'></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>
    7070 [ <a href='#failure7'>Previous Failure</a> | <a href='#failure9'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    71 <tt><br>
    72 Failure messages were:<br>
    73 f.arity = undefined FAILED! expected: 3<br>
    74 } FAILED! expected: <br>
    75 </tt><br>
    76 <a name='failure9'></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>
    77  [ <a href='#failure8'>Previous Failure</a> | <a href='#failure10'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    7871<tt>Expected exit code 3, got 0<br>
    7972Testcase terminated with signal 0<br>
     
    8275eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
    8376</tt><br>
    84 <a name='failure10'></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>
     77<a name='failure9'></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>
     78 [ <a href='#failure8'>Previous Failure</a> | <a href='#failure10'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     79<tt>Expected exit code 0, got 3<br>
     80Testcase terminated with signal 0<br>
     81Complete testcase output was:<br>
     82JS_1.2 The variable statment<br>
     83</tt><br>
     84<a name='failure10'></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>
    8585 [ <a href='#failure9'>Previous Failure</a> | <a href='#failure11'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    86 <tt>Expected exit code 0, got 3<br>
    87 Testcase terminated with signal 0<br>
    88 Complete testcase output was:<br>
    89 JS_1.2 The variable statment<br>
    90 </tt><br>
    91 <a name='failure11'></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>
     86<tt><br>
     87Failure messages were:<br>
     88} FAILED! expected: <br>
     89} FAILED! expected: <br>
     90} FAILED! expected: <br>
     91} FAILED! expected: <br>
     92} FAILED! expected: <br>
     93</tt><br>
     94<a name='failure11'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/tostring-2.js'>js1_2/function/tostring-2.js</a> failed</b> <br>
    9295 [ <a href='#failure10'>Previous Failure</a> | <a href='#failure12'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    9396<tt><br>
     
    98101} FAILED! expected: <br>
    99102} FAILED! expected: <br>
    100 </tt><br>
    101 <a name='failure12'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/tostring-2.js'>js1_2/function/tostring-2.js</a> failed</b> <br>
     103} FAILED! expected: <br>
     104} FAILED! expected: <br>
     105} FAILED! expected: <br>
     106} FAILED! expected: <br>
     107</tt><br>
     108<a name='failure12'></a><dd><b>Testcase <a target='other_window' href='./js1_2/operator/equality.js'>js1_2/operator/equality.js</a> failed</b> <br>
    102109 [ <a href='#failure11'>Previous Failure</a> | <a href='#failure13'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    103 <tt><br>
    104 Failure messages were:<br>
    105 } FAILED! expected: <br>
    106 } FAILED! expected: <br>
    107 } FAILED! expected: <br>
    108 } FAILED! expected: <br>
    109 } FAILED! expected: <br>
    110 } FAILED! expected: <br>
    111 } FAILED! expected: <br>
    112 } FAILED! expected: <br>
    113 } FAILED! expected: <br>
    114 </tt><br>
    115 <a name='failure13'></a><dd><b>Testcase <a target='other_window' href='./js1_2/operator/equality.js'>js1_2/operator/equality.js</a> failed</b> <br>
    116  [ <a href='#failure12'>Previous Failure</a> | <a href='#failure14'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    117110<tt><br>
    118111Failure messages were:<br>
     
    120113('x' == new String('x'))                  = true FAILED! expected: false<br>
    121114</tt><br>
    122 <a name='failure14'></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>
    123  [ <a href='#failure13'>Previous Failure</a> | <a href='#failure15'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     115<a name='failure13'></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>
     116 [ <a href='#failure12'>Previous Failure</a> | <a href='#failure14'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    124117<tt><br>
    125118Failure messages were:<br>
     
    127120re.exec('xyabcdef') = xy FAILED! expected: ["xy"]<br>
    128121</tt><br>
    129 <a name='failure15'></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>
    130  [ <a href='#failure14'>Previous Failure</a> | <a href='#failure16'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     122<a name='failure14'></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>
     123 [ <a href='#failure13'>Previous Failure</a> | <a href='#failure15'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    131124<tt><br>
    132125Failure messages were:<br>
     
    137130(multiline == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) = a24 FAILED! expected: a11,a22,a23,a24<br>
    138131</tt><br>
    139 <a name='failure16'></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>
    140  [ <a href='#failure15'>Previous Failure</a> | <a href='#failure17'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     132<a name='failure15'></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>
     133 [ <a href='#failure14'>Previous Failure</a> | <a href='#failure16'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    141134<tt><br>
    142135Failure messages were:<br>
     
    147140(['$*'] == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) = a24 FAILED! expected: a11,a22,a23,a24<br>
    148141</tt><br>
    149 <a name='failure17'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/beginLine.js'>js1_2/regexp/beginLine.js</a> failed</b> <br>
     142<a name='failure16'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/beginLine.js'>js1_2/regexp/beginLine.js</a> failed</b> <br>
     143 [ <a href='#failure15'>Previous Failure</a> | <a href='#failure17'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     144<tt><br>
     145Failure messages were:<br>
     146123xyz'.match(new RegExp('^\d+')) = null FAILED! expected: 123<br>
     147</tt><br>
     148<a name='failure17'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/endLine.js'>js1_2/regexp/endLine.js</a> failed</b> <br>
    150149 [ <a href='#failure16'>Previous Failure</a> | <a href='#failure18'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    151150<tt><br>
    152151Failure messages were:<br>
    153 123xyz'.match(new RegExp('^\d+')) = null FAILED! expected: 123<br>
    154 </tt><br>
    155 <a name='failure18'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/endLine.js'>js1_2/regexp/endLine.js</a> failed</b> <br>
     152xyz'.match(new RegExp('\d+$')) = null FAILED! expected: 890<br>
     153</tt><br>
     154<a name='failure18'></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>
    156155 [ <a href='#failure17'>Previous Failure</a> | <a href='#failure19'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    157 <tt><br>
    158 Failure messages were:<br>
    159 xyz'.match(new RegExp('\d+$')) = null FAILED! expected: 890<br>
    160 </tt><br>
    161 <a name='failure19'></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>
     156<tt>Expected exit code 0, got 3<br>
     157Testcase terminated with signal 0<br>
     158Complete testcase output was:<br>
     159BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=6359<br>
     160</tt><br>
     161<a name='failure19'></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>
    162162 [ <a href='#failure18'>Previous Failure</a> | <a href='#failure20'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    163163<tt>Expected exit code 0, got 3<br>
    164164Testcase terminated with signal 0<br>
    165165Complete testcase output was:<br>
    166 BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=6359<br>
    167 </tt><br>
    168 <a name='failure20'></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>
     166BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=9141<br>
     167</tt><br>
     168<a name='failure20'></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>
    169169 [ <a href='#failure19'>Previous Failure</a> | <a href='#failure21'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    170 <tt>Expected exit code 0, got 3<br>
    171 Testcase terminated with signal 0<br>
    172 Complete testcase output was:<br>
    173 BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=9141<br>
    174 </tt><br>
    175 <a name='failure21'></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>
    176  [ <a href='#failure20'>Previous Failure</a> | <a href='#failure22'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    177170<tt>Expected exit code 0, got 3<br>
    178171Testcase terminated with signal 0<br>
     
    181174As described in Netscape doc "Whats new in JavaScript 1.2" RegExp: simple form<br>
    182175</tt><br>
    183 <a name='failure22'></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>
    184  [ <a href='#failure21'>Previous Failure</a> | <a href='#failure23'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     176<a name='failure21'></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>
     177 [ <a href='#failure20'>Previous Failure</a> | <a href='#failure22'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    185178<tt><br>
    186179Failure messages were:<br>
     
    190183'abc'.split(new RegExp('[a-z]')) = ,,, FAILED! expected: ,,<br>
    191184</tt><br>
    192 <a name='failure23'></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>
     185<a name='failure22'></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>
     186 [ <a href='#failure21'>Previous Failure</a> | <a href='#failure23'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     187<tt><br>
     188Failure messages were:<br>
     189new Boolean(false) = true FAILED! expected: false<br>
     190</tt><br>
     191<a name='failure23'></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>
    193192 [ <a href='#failure22'>Previous Failure</a> | <a href='#failure24'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    194 <tt><br>
    195 Failure messages were:<br>
    196 new Boolean(false) = true FAILED! expected: false<br>
    197 </tt><br>
    198 <a name='failure24'></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>
    199  [ <a href='#failure23'>Previous Failure</a> | <a href='#failure25'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    200193<tt>STATUS: Regression test for Bugzilla bug 99663<br>
    201194Failure messages were:<br>
     
    204197Section 3 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
    205198</tt><br>
    206 <a name='failure25'></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>
    207  [ <a href='#failure24'>Previous Failure</a> | <a href='#failure26'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     199<a name='failure24'></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>
     200 [ <a href='#failure23'>Previous Failure</a> | <a href='#failure25'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    208201<tt>Expected exit code 3, got 0<br>
    209202Testcase terminated with signal 0<br>
     
    213206eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
    214207</tt><br>
    215 <a name='failure26'></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>
     208<a name='failure25'></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>
     209 [ <a href='#failure24'>Previous Failure</a> | <a href='#failure26'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     210<tt>Expected exit code 0, got 3<br>
     211Testcase terminated with signal 0<br>
     212Complete testcase output was:<br>
     213script-001 NativeScript<br>
     214</tt><br>
     215<a name='failure26'></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>
    216216 [ <a href='#failure25'>Previous Failure</a> | <a href='#failure27'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    217 <tt>Expected exit code 0, got 3<br>
    218 Testcase terminated with signal 0<br>
    219 Complete testcase output was:<br>
    220 script-001 NativeScript<br>
    221 </tt><br>
    222 <a name='failure27'></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>
    223  [ <a href='#failure26'>Previous Failure</a> | <a href='#failure28'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    224217<tt>Expected exit code 3, got 0<br>
    225218Testcase terminated with signal 0<br>
     
    229222eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
    230223</tt><br>
    231 <a name='failure28'></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>
     224<a name='failure27'></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>
     225 [ <a href='#failure26'>Previous Failure</a> | <a href='#failure28'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     226<tt>Expected exit code 0, got 3<br>
     227Testcase terminated with signal 0<br>
     228Complete testcase output was:<br>
     229Testcase produced no output!</tt><br>
     230<a name='failure28'></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>
    232231 [ <a href='#failure27'>Previous Failure</a> | <a href='#failure29'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    233232<tt>Expected exit code 0, got 3<br>
     
    235234Complete testcase output was:<br>
    236235Testcase produced no output!</tt><br>
    237 <a name='failure29'></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>
     236<a name='failure29'></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>
    238237 [ <a href='#failure28'>Previous Failure</a> | <a href='#failure30'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    239238<tt>Expected exit code 0, got 3<br>
     
    241240Complete testcase output was:<br>
    242241Testcase produced no output!</tt><br>
    243 <a name='failure30'></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>
     242<a name='failure30'></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>
    244243 [ <a href='#failure29'>Previous Failure</a> | <a href='#failure31'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    245244<tt>Expected exit code 0, got 3<br>
     
    247246Complete testcase output was:<br>
    248247Testcase produced no output!</tt><br>
    249 <a name='failure31'></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>
     248<a name='failure31'></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>
    250249 [ <a href='#failure30'>Previous Failure</a> | <a href='#failure32'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    251 <tt>Expected exit code 0, got 3<br>
    252 Testcase terminated with signal 0<br>
    253 Complete testcase output was:<br>
    254 Testcase produced no output!</tt><br>
    255 <a name='failure32'></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>
    256  [ <a href='#failure31'>Previous Failure</a> | <a href='#failure33'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    257250<tt>Expected exit code 0, got 3<br>
    258251Testcase terminated with signal 0<br>
     
    261254STATUS: Test (non-ECMA) Error object properties fileName, lineNumber<br>
    262255</tt><br>
    263 <a name='failure33'></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>
     256<a name='failure32'></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>
     257 [ <a href='#failure31'>Previous Failure</a> | <a href='#failure33'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     258<tt>Expected exit code 0, got 3<br>
     259Testcase terminated with signal 0<br>
     260Complete testcase output was:<br>
     261Testcase produced no output!</tt><br>
     262<a name='failure33'></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>
    264263 [ <a href='#failure32'>Previous Failure</a> | <a href='#failure34'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    265264<tt>Expected exit code 0, got 3<br>
     
    267266Complete testcase output was:<br>
    268267Testcase produced no output!</tt><br>
    269 <a name='failure34'></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>
     268<a name='failure34'></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>
    270269 [ <a href='#failure33'>Previous Failure</a> | <a href='#failure35'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    271270<tt>Expected exit code 0, got 3<br>
     
    273272Complete testcase output was:<br>
    274273Testcase produced no output!</tt><br>
    275 <a name='failure35'></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>
     274<a name='failure35'></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>
    276275 [ <a href='#failure34'>Previous Failure</a> | <a href='#failure36'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    277276<tt>Expected exit code 0, got 3<br>
     
    279278Complete testcase output was:<br>
    280279Testcase produced no output!</tt><br>
    281 <a name='failure36'></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>
     280<a name='failure36'></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>
    282281 [ <a href='#failure35'>Previous Failure</a> | <a href='#failure37'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    283282<tt>Expected exit code 0, got 3<br>
     
    285284Complete testcase output was:<br>
    286285Testcase produced no output!</tt><br>
    287 <a name='failure37'></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>
     286<a name='failure37'></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>
    288287 [ <a href='#failure36'>Previous Failure</a> | <a href='#failure38'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    289288<tt>Expected exit code 0, got 3<br>
     
    291290Complete testcase output was:<br>
    292291Testcase produced no output!</tt><br>
    293 <a name='failure38'></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>
     292<a name='failure38'></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>
    294293 [ <a href='#failure37'>Previous Failure</a> | <a href='#failure39'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    295294<tt>Expected exit code 0, got 3<br>
     
    297296Complete testcase output was:<br>
    298297Testcase produced no output!</tt><br>
    299 <a name='failure39'></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>
     298<a name='failure39'></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>
    300299 [ <a href='#failure38'>Previous Failure</a> | <a href='#failure40'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    301 <tt>Expected exit code 0, got 3<br>
    302 Testcase terminated with signal 0<br>
    303 Complete testcase output was:<br>
    304 Testcase produced no output!</tt><br>
    305 <a name='failure40'></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>
    306  [ <a href='#failure39'>Previous Failure</a> | <a href='#failure41'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    307300<tt>Expected exit code 0, got 3<br>
    308301Testcase terminated with signal 0<br>
     
    311304STATUS: Testing that we don't crash on obj.toSource()<br>
    312305</tt><br>
    313 <a name='failure41'></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>
    314  [ <a href='#failure40'>Previous Failure</a> | <a href='#failure42'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     306<a name='failure40'></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>
     307 [ <a href='#failure39'>Previous Failure</a> | <a href='#failure41'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    315308<tt>STATUS: Reassignment to a const is NOT an error per ECMA<br>
    316309Failure messages were:<br>
     
    322315FAILED!: [reported from test()] <br>
    323316</tt><br>
    324 <a name='failure42'></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>
     317<a name='failure41'></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>
     318 [ <a href='#failure40'>Previous Failure</a> | <a href='#failure42'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     319<tt>Expected exit code 0, got 3<br>
     320Testcase terminated with signal 0<br>
     321Complete testcase output was:<br>
     322Testcase produced no output!</tt><br>
     323<a name='failure42'></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>
    325324 [ <a href='#failure41'>Previous Failure</a> | <a href='#failure43'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    326325<tt>Expected exit code 0, got 3<br>
     
    328327Complete testcase output was:<br>
    329328Testcase produced no output!</tt><br>
    330 <a name='failure43'></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>
     329<a name='failure43'></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>
    331330 [ <a href='#failure42'>Previous Failure</a> | <a href='#failure44'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    332331<tt>Expected exit code 0, got 3<br>
     
    334333Complete testcase output was:<br>
    335334Testcase produced no output!</tt><br>
    336 <a name='failure44'></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>
     335<a name='failure44'></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>
    337336 [ <a href='#failure43'>Previous Failure</a> | <a href='#failure45'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    338 <tt>Expected exit code 0, got 3<br>
    339 Testcase terminated with signal 0<br>
    340 Complete testcase output was:<br>
    341 Testcase produced no output!</tt><br>
    342 <a name='failure45'></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>
    343  [ <a href='#failure44'>Previous Failure</a> | <a href='#failure46'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    344337<tt>STATUS: Don't crash on extraneous arguments to str.match(), etc.<br>
    345338Failure messages were:<br>
     
    391384FAILED!: [reported from test()] <br>
    392385</tt><br>
    393 <a name='failure46'></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>
     386<a name='failure45'></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>
     387 [ <a href='#failure44'>Previous Failure</a> | <a href='#failure46'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     388<tt>Expected exit code 0, got 3<br>
     389Testcase terminated with signal 0<br>
     390Complete testcase output was:<br>
     391Testcase produced no output!</tt><br>
     392<a name='failure46'></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>
    394393 [ <a href='#failure45'>Previous Failure</a> | <a href='#failure47'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    395 <tt>Expected exit code 0, got 3<br>
    396 Testcase terminated with signal 0<br>
    397 Complete testcase output was:<br>
    398 Testcase produced no output!</tt><br>
    399 <a name='failure47'></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>
    400  [ <a href='#failure46'>Previous Failure</a> | <a href='#failure48'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    401394<tt>STATUS: Testing scope after changing obj.__proto__<br>
    402395Failure messages were:<br>
     
    409402FAILED!: [reported from test()] <br>
    410403</tt><br>
    411 <a name='failure48'></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>
    412  [ <a href='#failure47'>Previous Failure</a> | <a href='#failure49'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     404<a name='failure47'></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>
     405 [ <a href='#failure46'>Previous Failure</a> | <a href='#failure48'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    413406<tt>STATUS: E4X should be enabled even when e4x=1 not specified<br>
    414407Failure messages were:<br>
     
    420413FAILED!: <br>
    421414</tt><br>
    422 <a name='failure49'></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>
     415<a name='failure48'></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>
     416 [ <a href='#failure47'>Previous Failure</a> | <a href='#failure49'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     417<tt>Expected exit code 0, got 3<br>
     418Testcase terminated with signal 0<br>
     419Complete testcase output was:<br>
     420Testcase produced no output!</tt><br>
     421<a name='failure49'></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>
    423422 [ <a href='#failure48'>Previous Failure</a> | <a href='#failure50'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    424423<tt>Expected exit code 0, got 3<br>
     
    426425Complete testcase output was:<br>
    427426Testcase produced no output!</tt><br>
    428 <a name='failure50'></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>
     427<a name='failure50'></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>
    429428 [ <a href='#failure49'>Previous Failure</a> | <a href='#failure51'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    430 <tt>Expected exit code 0, got 3<br>
    431 Testcase terminated with signal 0<br>
    432 Complete testcase output was:<br>
    433 Testcase produced no output!</tt><br>
    434 <a name='failure51'></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>
    435  [ <a href='#failure50'>Previous Failure</a> | <a href='#failure52'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    436429<tt>Expected exit code 0, got 3<br>
    437430Testcase terminated with signal 0<br>
     
    447440<a name='retest_list'></a>
    448441<h2>Retest List</h2><br>
    449 # Retest List, squirrelfish, generated Wed Jan 19 13:26:57 2011.
     442# Retest List, squirrelfish, generated Fri Mar  9 18:26:54 2012.
    450443# Original test base was: All tests.
    451 # 1119 of 1127 test(s) were completed, 51 failures reported.
    452 ecma/TypeConversion/9.3.1-3.js
     444# 1116 of 1124 test(s) were completed, 50 failures reported.
    453445ecma_2/Exceptions/function-001.js
    454446ecma_2/RegExp/regress-001.js
  • trunk/Source/JavaScriptCore/wtf/dtoa.cpp

    r107625 r110657  
    649649#define n_bigtens 5
    650650
    651 template<AllowTrailingJunkTag allowTrailingJunk>
     651template<AllowTrailingJunkTag allowTrailingJunk, AllowTrailingSpacesTag allowTrailingSpaces>
    652652double strtod(const char* s00, char** se)
    653653{
     
    655655    double_conversion::StringToDoubleConverter converter(
    656656        (allowTrailingJunk ? double_conversion::StringToDoubleConverter::ALLOW_TRAILING_JUNK : 0) |
     657        (allowTrailingSpaces ? double_conversion::StringToDoubleConverter::ALLOW_TRAILING_SPACES : 0) |
    657658        double_conversion::StringToDoubleConverter::ALLOW_LEADING_SPACES,
    658659        0.0,
     
    666667}
    667668
    668 template double strtod<AllowTrailingJunk>(const char*, char**);
    669 template double strtod<DisallowTrailingJunk>(const char*, char**);
     669template double strtod<AllowTrailingJunk, AllowTrailingSpaces>(const char*, char**);
     670template double strtod<AllowTrailingJunk, DisallowTrailingSpaces>(const char*, char**);
     671template double strtod<DisallowTrailingJunk, AllowTrailingSpaces>(const char*, char**);
     672template double strtod<DisallowTrailingJunk, DisallowTrailingSpaces>(const char*, char**);
    670673
    671674static ALWAYS_INLINE int quorem(BigInt& b, BigInt& S)
  • trunk/Source/JavaScriptCore/wtf/dtoa.h

    r107625 r110657  
    3737
    3838enum AllowTrailingJunkTag { DisallowTrailingJunk = 0, AllowTrailingJunk };
     39enum AllowTrailingSpacesTag { DisallowTrailingSpaces = 0, AllowTrailingSpaces };
    3940
    4041// s00: input string. Must not be 0 and must be terminated by 0.
    4142// se: *se will have the last consumed character position + 1.
    42 template<AllowTrailingJunkTag allowTrailingJunk>
     43template<AllowTrailingJunkTag allowTrailingJunk, AllowTrailingSpacesTag allowTrailingSpaces>
    4344double strtod(const char* s00, char** se);
    4445
  • trunk/Source/JavaScriptCore/wtf/dtoa/double-conversion.cc

    r94520 r110657  
    435435   
    436436   
    437     // Returns true if a nonspace found and false if the end has reached.
     437    // Returns true if whitespace found and false if the end has reached.
    438438    static inline bool AdvanceToNonspace(const char** current, const char* end) {
    439439        while (*current != end) {
    440             if (**current != ' ') return true;
    441             ++*current;
     440            switch(**current) {
     441            case ' ':
     442            case '\t':
     443            case '\v':
     444            case '\r':
     445            case '\f':
     446            case '\n': ++*current; continue;
     447            default: return true;
     448            }
    442449        }
    443450        return false;
  • trunk/Source/JavaScriptCore/wtf/text/WTFString.cpp

    r108001 r110657  
    10541054    char* start = bytes.data();
    10551055    char* end;
    1056     double val = WTF::strtod<allowTrailingJunk>(start, &end);
     1056    double val = WTF::strtod<allowTrailingJunk, WTF::DisallowTrailingSpaces>(start, &end);
    10571057    if (ok)
    10581058        *ok = (end == 0 || *end == '\0') && !isnan(val);
Note: See TracChangeset for help on using the changeset viewer.