Changeset 24453 in webkit


Ignore:
Timestamp:
Jul 19, 2007 2:10:40 PM (17 years ago)
Author:
darin
Message:

Reviewed by Geoff.

  • fix <rdar://problem/5345440> PCRE computes wrong length for expressions with quantifiers on named recursion or subexpressions

It's challenging to implement proper preflighting for compiling these advanced features.
But we don't want them in the JavaScript engine anyway.

Turned off the following features of PCRE (some of these are simply parsed and not implemented):

\C \E \G \L \N \P \Q \U \X \Z
\e \l \p \u \z
[::] .. [==]
(?#) (?<=) (?<!) (?>)
(?C) (?P) (?R)
(?0) (and 1-9)
(?imsxUX)

Added the following:

\u \v

Because of \v, the js1_2/regexp/special_characters.js test now passes.

To be conservative, I left some features that JavaScript doesn't want, such as
\012 and \x{2013}, in place. We can revisit these later; they're not directly-enough
related to avoiding the incorrect preflighting.

I also didn't try to remove unused opcodes and remove code from the execution engine.
That could save code size and speed things up a bit, but it would require more changes.

  • kjs/regexp.h:
  • kjs/regexp.cpp: (KJS::RegExp::RegExp): Remove the sanitizePattern workaround for lack of \u support, since the PCRE code now has \u support.
  • pcre/pcre-config.h: Set JAVASCRIPT to 1.
  • pcre/pcre_internal.h: Added ESC_v.
  • pcre/pcre_compile.c: Added a different escape table for when JAVASCRIPT is set that omits all the escapes we don't want interpreted and includes '\v'. (check_escape): Put !JAVASCRIPT around the code for '\l', '\L', '\N', '\u', and '\U', and added code to handle '\u2013' inside JAVASCRIPT. (compile_branch): Put !JAVASCRIPT if around all the code implementing the features we don't want. (pcre_compile2): Ditto.
  • tests/mozilla/expected.html: Updated since js1_2/regexp/special_characters.js now passes.
Location:
trunk/JavaScriptCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r24430 r24453  
     12007-07-19  Darin Adler  <darin@apple.com>
     2
     3        Reviewed by Geoff.
     4
     5        - fix <rdar://problem/5345440> PCRE computes wrong length for expressions with quantifiers
     6          on named recursion or subexpressions
     7
     8        It's challenging to implement proper preflighting for compiling these advanced features.
     9        But we don't want them in the JavaScript engine anyway.
     10
     11        Turned off the following features of PCRE (some of these are simply parsed and not implemented):
     12
     13            \C \E \G \L \N \P \Q \U \X \Z
     14            \e \l \p \u \z
     15            [::] [..] [==]
     16            (?#) (?<=) (?<!) (?>)
     17            (?C) (?P) (?R)
     18            (?0) (and 1-9)
     19            (?imsxUX)
     20
     21        Added the following:
     22
     23            \u \v
     24
     25        Because of \v, the js1_2/regexp/special_characters.js test now passes.
     26
     27        To be conservative, I left some features that JavaScript doesn't want, such as
     28        \012 and \x{2013}, in place. We can revisit these later; they're not directly-enough
     29        related to avoiding the incorrect preflighting.
     30
     31        I also didn't try to remove unused opcodes and remove code from the execution engine.
     32        That could save code size and speed things up a bit, but it would require more changes.
     33
     34        * kjs/regexp.h:
     35        * kjs/regexp.cpp: (KJS::RegExp::RegExp): Remove the sanitizePattern workaround for
     36        lack of \u support, since the PCRE code now has \u support.
     37
     38        * pcre/pcre-config.h: Set JAVASCRIPT to 1.
     39        * pcre/pcre_internal.h: Added ESC_v.
     40
     41        * pcre/pcre_compile.c: Added a different escape table for when JAVASCRIPT is set that
     42        omits all the escapes we don't want interpreted and includes '\v'.
     43        (check_escape): Put !JAVASCRIPT around the code for '\l', '\L', '\N', '\u', and '\U',
     44        and added code to handle '\u2013' inside JAVASCRIPT.
     45        (compile_branch): Put !JAVASCRIPT if around all the code implementing the features we
     46        don't want.
     47        (pcre_compile2): Ditto.
     48
     49        * tests/mozilla/expected.html: Updated since js1_2/regexp/special_characters.js now
     50        passes.
     51
    1522007-07-18  Darin Adler  <darin@apple.com>
    253
  • trunk/JavaScriptCore/kjs/regexp.cpp

    r18517 r24453  
    5151                        options, &errorMessage, &errorOffset, NULL);
    5252  if (!m_regex) {
    53     // Try again, this time handle any \u we might find.
    54     UString uPattern = sanitizePattern(p);
    55     m_regex = pcre_compile(reinterpret_cast<const uint16_t*>(uPattern.data()), uPattern.size(),
    56                           options, &errorMessage, &errorOffset, NULL);
    57     if (!m_regex) {
    58       m_constructionError = strdup(errorMessage);
    59       return;
    60     }
     53    m_constructionError = strdup(errorMessage);
     54    return;
    6155  }
    6256
     
    190184}
    191185
    192 UString RegExp::sanitizePattern(const UString& p)
    193 {
    194   UString newPattern;
    195  
    196   int startPos = 0;
    197   int pos = p.find("\\u", 0) + 2; // Skip the \u
    198  
    199   while (pos != 1) { // p.find failing is -1 + 2 = 1
    200     if (pos + 3 < p.size()) {
    201       if (isHexDigit(p[pos]) && isHexDigit(p[pos + 1]) &&
    202           isHexDigit(p[pos + 2]) && isHexDigit(p[pos + 3])) {
    203         newPattern.append(p.substr(startPos, pos - startPos - 2));
    204         UChar escapedUnicode(convertUnicode(p[pos], p[pos + 1],
    205                                             p[pos + 2], p[pos + 3]));
    206         // \u encoded characters should be treated as if they were escaped,
    207         // so add an escape for certain characters that need it.
    208         switch (escapedUnicode.unicode()) {
    209           case '|':
    210           case '+':
    211           case '*':
    212           case '(':
    213           case ')':
    214           case '[':
    215           case ']':
    216           case '{':
    217           case '}':
    218           case '?':
    219           case '\\':
    220             newPattern.append('\\');
    221         }
    222         newPattern.append(escapedUnicode);
    223 
    224         startPos = pos + 4;
    225       }
    226     }
    227     pos = p.find("\\u", pos) + 2;
    228   }
    229   newPattern.append(p.substr(startPos, p.size() - startPos));
    230 
    231   return newPattern;
    232 }
    233 
    234186bool RegExp::isHexDigit(UChar uc)
    235187{
  • trunk/JavaScriptCore/kjs/regexp.h

    r18182 r24453  
    6666    RegExp &operator=(const RegExp &);
    6767
    68     static UString sanitizePattern(const UString&);
    69 
    7068    static bool isHexDigit(UChar);
    7169    static unsigned char convertHex(int);
  • trunk/JavaScriptCore/pcre/pcre-config.h

    r18498 r24453  
    9898#define SUPPORT_UCP 1
    9999#define SUPPORT_UTF8 1
     100
     101#define JAVASCRIPT 1
  • trunk/JavaScriptCore/pcre/pcre_compile.c

    r24430 r24453  
    8484is invalid. */
    8585
     86#if JAVASCRIPT   /* This is the "JavaScript" table for ASCII systems */
     87static const short int escapes[] = {
     88     0,      0,      0,      0,      0,      0,      0,      0,   /* 0 - 7 */
     89     0,      0,    ':',    ';',    '<',    '=',    '>',    '?',   /* 8 - ? */
     90   '@',      0, -ESC_B,      0, -ESC_D,      0,      0,      0,   /* @ - G */
     91     0,      0,      0,      0,      0,      0,      0,      0,   /* H - O */
     92     0,      0,      0, -ESC_S,      0,      0,      0, -ESC_W,   /* P - W */
     93     0,      0,      0,    '[',   '\\',    ']',    '^',    '_',   /* X - _ */
     94   '`',      7, -ESC_b,      0, -ESC_d,      0,  ESC_f,      0,   /* ` - g */
     95     0,      0,      0,      0,      0,      0,  ESC_n,      0,   /* h - o */
     96     0,      0,  ESC_r, -ESC_s,  ESC_tee,    0,  ESC_v, -ESC_w,   /* p - w */
     97     0,      0,      0                                            /* x - z */
     98};
     99#else
    86100#if !EBCDIC   /* This is the "normal" table for ASCII systems */
    87101static const short int escapes[] = {
    88102     0,      0,      0,      0,      0,      0,      0,      0,   /* 0 - 7 */
    89103     0,      0,    ':',    ';',    '<',    '=',    '>',    '?',   /* 8 - ? */
    90    '@', -ESC_A, -ESC_B, -ESC_C, -ESC_D, -ESC_E,      0, -ESC_G,   /* @ - G */
     104   '@',      0, -ESC_B, -ESC_C, -ESC_D, -ESC_E,      0, -ESC_G,   /* @ - G */
    91105     0,      0,      0,      0,      0,      0,      0,      0,   /* H - O */
    92106-ESC_P, -ESC_Q,      0, -ESC_S,      0,      0,      0, -ESC_W,   /* P - W */
     
    97111     0,      0, -ESC_z                                            /* x - z */
    98112};
    99 
    100113#else         /* This is the "abnormal" table for EBCDIC systems */
    101114static const short int escapes[] = {
     
    124137/*  F8 */     0,     0,      0,       0,      0,     0,      0,      0
    125138};
     139#endif
    126140#endif
    127141
     
    423437    error. */
    424438
     439#if !JAVASCRIPT
    425440    case 'l':
    426441    case 'L':
     
    430445    *errorcodeptr = ERR37;
    431446    break;
     447#endif
    432448
    433449    /* The handling of escape sequences consisting of a string of digits
     
    531547    break;
    532548
     549#if JAVASCRIPT
     550    case 'u':
     551    c = 0;
     552    while (i++ < 4 && ptr + 1 < patternEnd && (DIGITAB(ptr[1]) & ctype_xdigit) != 0)
     553      {
     554      int cc;                               /* Some compilers don't like ++ */
     555      cc = *(++ptr);                        /* in initializers */
     556#if !EBCDIC    /* ASCII coding */
     557      if (cc >= 'a') cc -= 32;              /* Convert to upper case */
     558      c = c * 16 + cc - ((cc < 'A')? '0' : ('A' - 10));
     559#else          /* EBCDIC coding */
     560      if (cc <= 'z') cc += 64;              /* Convert to upper case */
     561      c = c * 16 + cc - ((cc >= '0')? '0' : ('A' - 10));
     562#endif
     563      }
     564    break;
     565#endif
     566
    533567    /* Other special escapes not starting with a digit are straightforward */
    534568
     
    577611
    578612
     613#if !JAVASCRIPT
    579614#ifdef SUPPORT_UCP
    580615/*************************************************
     
    669704}
    670705#endif
     706#endif
    671707
    672708
     
    10471083*/
    10481084
     1085#if !JAVASCRIPT
     1086
    10491087static const uschar *
    10501088find_bracket(const uschar *code, BOOL utf8, int number)
     
    11041142  }
    11051143}
     1144
     1145#endif
    11061146
    11071147
     
    13411381*/
    13421382
     1383#if !JAVASCRIPT
     1384
    13431385static BOOL
    13441386could_be_empty(const uschar *code, const uschar *endcode, branch_chain *bcptr,
     
    13531395}
    13541396
     1397#endif
     1398
    13551399
    13561400
     
    13711415Returns:   TRUE or FALSE
    13721416*/
     1417
     1418#if !JAVASCRIPT
    13731419
    13741420static BOOL
     
    13881434}
    13891435
     1436#endif
     1437
    13901438#if PCRE_UTF16
    13911439
     
    14201468Returns:     a value representing the name, or -1 if unknown
    14211469*/
     1470
     1471#if !JAVASCRIPT
    14221472
    14231473static int
     
    14331483return -1;
    14341484}
     1485
     1486#endif
    14351487
    14361488
     
    16671719  int class_lastchar;
    16681720  int newoptions;
     1721#if !JAVASCRIPT
    16691722  int recno;
     1723#endif
    16701724  int skipbytes;
    16711725  int subreqbyte;
     
    16781732  c = ptr < patternEnd ? *ptr : 0;
    16791733
     1734#if !JAVASCRIPT
    16801735  /* If in \Q...\E, check for the end; if not, we have a literal */
    16811736
     
    17031758      }
    17041759    }
     1760#endif
    17051761
    17061762  /* Fill in length of a previous callout, except when the next thing is
     
    18021858    they are encountered at the top level, so we'll do that too. */
    18031859
     1860#if !JAVASCRIPT
    18041861    if ((ptr[1] == ':' || ptr[1] == '.' || ptr[1] == '=') &&
    18051862        check_posix_syntax(ptr, patternEnd, &tempptr, cd))
     
    18081865      goto FAILED;
    18091866      }
     1867#endif
    18101868
    18111869    /* If the first character is '^', set the negation flag and skip it. */
     
    18541912        }
    18551913#endif
     1914
     1915#if !JAVASCRIPT
    18561916
    18571917      /* Inside \Q...\E everything is literal except \E */
     
    19412001        }
    19422002
     2003#endif
     2004
    19432005      /* Backslash may introduce a single character, or it may introduce one
    19442006      of the specials, which just set a flag. Escaped items are checked for
     
    19892051            case ESC_s:
    19902052            for (c = 0; c < 32; c++) classbits[c] |= cbits[c+cbit_space];
    1991             /* JavaScript does not omit VT, so we leave out the following line: */
    1992             /* classbits[1] &= ~0x08;   Perl 5.004 onwards omits VT from \s */
     2053#if !JAVASCRIPT
     2054            classbits[1] &= ~0x08;   /* Perl 5.004 onwards omits VT from \s */
     2055#endif
    19932056            continue;
    19942057
    19952058            case ESC_S:
    19962059            for (c = 0; c < 32; c++) classbits[c] |= ~cbits[c+cbit_space];
    1997             /* JavaScript does not omit VT, so we leave out the following line: */
    1998             /* classbits[1] |= 0x08;    Perl 5.004 onwards omits VT from \s */
     2060#if !JAVASCRIPT
     2061            classbits[1] |= 0x08;    /* Perl 5.004 onwards omits VT from \s */
     2062#endif
    19992063            continue;
    20002064
     2065#if !JAVASCRIPT
    20012066#ifdef SUPPORT_UCP
    20022067            case ESC_p:
     
    20142079            continue;
    20152080#endif
     2081#endif
    20162082
    20172083            /* Unrecognized escapes are faulted if PCRE is running in its
     
    28522918    if (*(++ptr) == '?')
    28532919      {
     2920#if !JAVASCRIPT
    28542921      int set, unset;
    28552922      int *optset;
     2923#endif
    28562924
    28572925      switch (*(++ptr))
    28582926        {
     2927#if !JAVASCRIPT
    28592928        case '#':                 /* Comment; skip to ket */
    28602929        ptr++;
    28612930        while (*ptr != ')') ptr++;
    28622931        continue;
     2932#endif
    28632933
    28642934        case ':':                 /* Non-extracting bracket */
     
    28672937        break;
    28682938
     2939#if !JAVASCRIPT
    28692940        case '(':
    28702941        bravalue = OP_COND;       /* Conditional group */
     
    29022973        set bravalue above. */
    29032974        break;
     2975#endif
    29042976
    29052977        case '=':                 /* Positive lookahead */
     
    29132985        break;
    29142986
     2987#if !JAVASCRIPT
    29152988        case '<':                 /* Lookbehinds */
    29162989        switch (*(++ptr))
     
    30863159          }
    30873160        continue;
     3161#endif
    30883162
    30893163        /* Character after (? not specially recognized */
    30903164
    30913165        default:                  /* Option setting */
     3166#if JAVASCRIPT
     3167        *errorcodeptr = ERR12;
     3168        goto FAILED;
     3169#else
    30923170        set = unset = 0;
    30933171        optset = &set;
     
    31513229        bravalue = OP_BRA;
    31523230        ptr++;
     3231#endif
    31533232        }
    31543233      }
     
    31683247    else
    31693248      {
     3249#if !JAVASCRIPT
    31703250      NUMBERED_GROUP:
     3251#endif
    31713252      if (++(*brackets) > EXTRACT_BASIC_MAX)
    31723253        {
     
    33503431      won't fail because it was tested in the pre-pass. */
    33513432
     3433#if !JAVASCRIPT
    33523434#ifdef SUPPORT_UCP
    33533435      else if (-c == ESC_P || -c == ESC_p)
     
    33593441        *code++ = value;
    33603442        }
     3443#endif
    33613444#endif
    33623445
     
    41194202      }
    41204203
     4204#if !JAVASCRIPT
     4205
    41214206    /* If \Q, enter "literal" mode */
    41224207
     
    41534238#endif
    41544239      }
     4240
     4241#endif
    41554242
    41564243    /* Other escapes need one byte */
     
    43224409        }
    43234410
     4411#if !JAVASCRIPT
     4412
    43244413      /* Check the syntax for POSIX stuff. The bits we actually handle are
    43254414      checked during the real compile phase. */
     
    43304419        class_optcount = 10;    /* Make sure > 1 */
    43314420        }
     4421
     4422#endif
    43324423
    43334424      /* Anything else increments the possible optimization count. We have to
     
    45354626    if (ptr + 1 < patternEnd && ptr[1] == '?')
    45364627      {
     4628#if !JAVASCRIPT
    45374629      int set, unset;
    45384630      int *optset;
     4631#endif
    45394632
    45404633      switch (c = (ptr + 2 < patternEnd ? ptr[2] : 0))
    45414634        {
     4635#if !JAVASCRIPT
    45424636        /* Skip over comments entirely */
    45434637        case '#':
     
    45514645          }
    45524646        continue;
     4647#endif
    45534648
    45544649        /* Non-referencing groups and lookaheads just move the pointer on, and
     
    45604655        case '=':
    45614656        case '!':
     4657#if !JAVASCRIPT
    45624658        case '>':
     4659#endif
    45634660        ptr += 2;
    45644661        break;
     
    45714668        the appropriate numbered brackets. This includes both recursive and
    45724669        non-recursive calls. (?R) is now synonymous with (?0). */
     4670
     4671#if !JAVASCRIPT
    45734672
    45744673        case 'R':
     
    47134812        break;
    47144813
     4814#endif
     4815
    47154816        /* Else loop checking valid options until ) is met. Anything else is an
    47164817        error. If we are without any brackets, i.e. at top level, the settings
     
    47194820
    47204821        default:
     4822#if JAVASCRIPT
     4823        errorcode = ERR12;
     4824        goto PCRE_ERROR_RETURN;
     4825#else
    47214826        set = unset = 0;
    47224827        optset = &set;
     
    48374942        needs to be done because "capturing" is already set FALSE by default;
    48384943        we can just fall through. */
    4839 
     4944#endif
    48404945        }
    48414946      }
     
    48944999    set before arrival. */
    48955000
     5001#if !JAVASCRIPT
    48965002    HANDLE_QUANTIFIED_BRACKETS:
     5003#endif
    48975004
    48985005    /* Leave ptr at the final char; for read_repeat_counts this happens
  • trunk/JavaScriptCore/pcre/pcre_internal.h

    r18526 r24453  
    540540#ifndef ESC_tee
    541541#define ESC_tee '\t'
     542#endif
     543
     544#ifndef ESC_v
     545#define ESC_v '\v'
    542546#endif
    543547
  • trunk/JavaScriptCore/tests/mozilla/expected.html

    r24394 r24453  
    88Test List: All tests<br>
    99Skip List: (none)<br>
    10 1135 test(s) selected, 1127 test(s) completed, 65 failures reported (5.76% failed)<br>
    11 Engine command line: /Users/Cameron/WebKit/WebKitBuild/Release/testkjs <br>
    12 OS type: Darwin d141-131-181.home.cgocable.net 8.10.1 Darwin Kernel Version 8.10.1: Wed May 23 16:33:00 PDT 2007; root:xnu-792.22.5~1/RELEASE_I386 i386 i386<br>
    13 Testcase execution time: 42 seconds.<br>
    14 Tests completed on Mon Jul 16 02:25:22 2007.<br><br>
     101135 test(s) selected, 1127 test(s) completed, 64 failures reported (5.67% failed)<br>
     11Engine command line: /Users/darin/Build/Debug/testkjs <br>
     12OS type: Darwin il0301e-dhcp201.apple.com 9.0.0b2 Darwin Kernel Version 9.0.0b2: Tue Jun 26 18:40:55 PDT 2007; root:xnu-1139.1~1/RELEASE_PPC Power Macintosh<br>
     13Testcase execution time: 7 minutes, 13 seconds.<br>
     14Tests completed on Thu Jul 19 13:10:08 2007.<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>
     
    3636Testcase terminated with signal 0<br>
    3737Complete testcase output was:<br>
     38LEAK: 618 KJS::Node<br>
    3839--> RegExp/hex-001.js JS regexp anchoring on empty match bug<br>
    3940--> BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=2157<br>
    40 [29772] ./ecma_2/RegExp/regress-001.js line 18: TypeError: Object /a||b/ (result of expression /a||b/) does not allow calls.<br>
     41[67046] ./ecma_2/RegExp/regress-001.js line 18: TypeError: Object /a||b/ (result of expression /a||b/) does not allow calls.<br>
    4142</tt><br>
    4243<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>
     
    4546Testcase terminated with signal 0<br>
    4647Complete testcase output was:<br>
     48LEAK: 671 KJS::Node<br>
    4749--> RegExp/unicode-001.js new RegExp( pattern, flags )<br>
    48 [29773] ./ecma_2/RegExp/unicode-001.js line 20: SyntaxError: Invalid regular expression: PCRE does not support \L, \l, \N, \U, or \u<br>
     50[67047] ./ecma_2/RegExp/unicode-001.js line 33: TypeError: Null value<br>
    4951</tt><br>
    5052<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>
     
    6163--> (Mon Feb 28 2000 15:59:59 GMT-0800 (PST)).toLocaleTimeString() = 3:59:59 PM PST FAILED! expected: 15:59:59<br>
    6264--> (Tue Feb 29 2000 00:00:00 GMT-0800 (PST)).toLocaleTimeString() = 12:00:00 AM PST FAILED! expected: 00:00:00<br>
    63 --> (Mon Jul 16 2007 02:25:12 GMT-0700 (PDT)).toLocaleTimeString() = 2:25:12 AM PDT FAILED! expected: 02:25:12<br>
    64 --> (Mon Jul 16 2007 10:25:12 GMT-0700 (PDT)).toLocaleTimeString() = 10:25:12 AM PDT FAILED! expected: 10:25:12<br>
     65--> (Thu Jul 19 2007 13:09:01 GMT-0700 (PDT)).toLocaleTimeString() = 1:09:01 PM PDT FAILED! expected: 13:09:01<br>
     66--> (Thu Jul 19 2007 21:09:01 GMT-0700 (PDT)).toLocaleTimeString() = 9:09:01 PM PDT FAILED! expected: 21:09:01<br>
    6567--> (Fri Dec 31 2004 16:00:00 GMT-0800 (PST)).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
    6668--> (Fri Dec 31 2004 15:59:59 GMT-0800 (PST)).toLocaleTimeString() = 3:59:59 PM PST FAILED! expected: 15:59:59<br>
     
    7274Testcase terminated with signal 0<br>
    7375Complete testcase output was:<br>
    74 Testcase produced no output!</tt><br>
     76LEAK: 323 KJS::Node<br>
     77</tt><br>
    7578<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>
    7679 [ <a href='#failure6'>Previous Failure</a> | <a href='#failure8'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     
    201204Testcase terminated with signal 0<br>
    202205Complete testcase output was:<br>
    203 [29900] ./ecma_3/RegExp/regress-100199.js line 48: SyntaxError: Invalid regular expression: missing terminating ] for character class<br>
     206LEAK: 853 KJS::Node<br>
     207[67219] ./ecma_3/RegExp/regress-100199.js line 48: SyntaxError: Invalid regular expression: missing terminating ] for character class<br>
    204208</tt><br>
    205209<a name='failure13'></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>
     
    256260Testcase terminated with signal 0<br>
    257261Complete testcase output was:<br>
    258 [29926] ./ecma_3/Statements/regress-194364.js line 1: SyntaxError: Parse error<br>
     262LEAK: 397 KJS::Node<br>
     263[67275] ./ecma_3/Statements/regress-194364.js line 1: SyntaxError: Parse error<br>
    259264</tt><br>
    260265<a name='failure16'></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>
     
    279284Testcase terminated with signal 0<br>
    280285Complete testcase output was:<br>
     286LEAK: 403 KJS::Node<br>
    281287--> JS1_2 Object.toString()<br>
    282 [29950] ./js1_2/Objects/toString-001.js line 103: TypeError: Object /^\{(.*)\}$/ (result of expression /^\{(.*)\}$/) does not allow calls.<br>
     288[67306] ./js1_2/Objects/toString-001.js line 103: TypeError: Object /^\{(.*)\}$/ (result of expression /^\{(.*)\}$/) does not allow calls.<br>
    283289</tt><br>
    284290<a name='failure19'></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>
     
    297303Complete testcase output was:<br>
    298304OK.<br>
     305LEAK: 331 KJS::Node<br>
    299306--> function-001.js functions not separated by semicolons are errors in version 120 and higher<br>
    300307--> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
     
    305312Testcase terminated with signal 0<br>
    306313Complete testcase output was:<br>
     314LEAK: 333 KJS::Node<br>
    307315--> JS_1.2 The variable statment<br>
    308 [29963] ./js1_2/function/regexparg-1.js line 80: TypeError: Object /abc/ (result of expression x) does not allow calls.<br>
     316[67339] ./js1_2/function/regexparg-1.js line 80: TypeError: Object /abc/ (result of expression x) does not allow calls.<br>
    309317</tt><br>
    310318<a name='failure22'></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>
     
    377385Testcase terminated with signal 0<br>
    378386Complete testcase output was:<br>
     387LEAK: 329 KJS::Node<br>
    379388--> Executing script: compile.js<br>
    380389--> As described in Netscape doc "Whats new in JavaScript 1.2" RegExp: compile<br>
    381 [29991] ./js1_2/regexp/compile.js line 43: TypeError: Value undefined (result of expression regularExpression.compile) is not object.<br>
     390[67376] ./js1_2/regexp/compile.js line 43: TypeError: Value undefined (result of expression regularExpression.compile) is not object.<br>
    382391</tt><br>
    383392<a name='failure30'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/endLine.js'>js1_2/regexp/endLine.js</a> failed</b> <br>
     
    392401Testcase terminated with signal 0<br>
    393402Complete testcase output was:<br>
     403LEAK: 329 KJS::Node<br>
    394404--> BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=6359<br>
    395 [108] ./js1_2/regexp/regress-6359.js line 56: TypeError: Object /(a*)b\1+/ (result of expression /(a*)b\1+/) does not allow calls.<br>
     405[67397] ./js1_2/regexp/regress-6359.js line 56: TypeError: Object /(a*)b\1+/ (result of expression /(a*)b\1+/) does not allow calls.<br>
    396406</tt><br>
    397407<a name='failure32'></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>
     
    400410Testcase terminated with signal 0<br>
    401411Complete testcase output was:<br>
     412LEAK: 329 KJS::Node<br>
    402413--> BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=9141<br>
    403 [109] ./js1_2/regexp/regress-9141.js line 73: TypeError: Object /(?:xx|x)*/ (result of expression /(?:xx|x)*/) does not allow calls.<br>
     414[67398] ./js1_2/regexp/regress-9141.js line 73: TypeError: Object /(?:xx|x)*/ (result of expression /(?:xx|x)*/) does not allow calls.<br>
    404415</tt><br>
    405416<a name='failure33'></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>
     
    408419Testcase terminated with signal 0<br>
    409420Complete testcase output was:<br>
     421LEAK: 329 KJS::Node<br>
    410422--> Executing script: simple_form.js<br>
    411423--> As described in Netscape doc "Whats new in JavaScript 1.2" RegExp: simple form<br>
    412 [110] ./js1_2/regexp/simple_form.js line 43: TypeError: Object /[0-9]{3}/ (result of expression /[0-9]{3}/) does not allow calls.<br>
    413 </tt><br>
    414 <a name='failure34'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/special_characters.js'>js1_2/regexp/special_characters.js</a> failed</b> <br>
     424[67399] ./js1_2/regexp/simple_form.js line 43: TypeError: Object /[0-9]{3}/ (result of expression /[0-9]{3}/) does not allow calls.<br>
     425</tt><br>
     426<a name='failure34'></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>
    415427 [ <a href='#failure33'>Previous Failure</a> | <a href='#failure35'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    416 <tt><br>
    417 Failure messages were:<br>
    418 --> 'a
    419 
    420 b a  b'.match(/a
    421 {2}/) = null FAILED! expected: a
    422 
    423 <br>
    424 </tt><br>
    425 <a name='failure35'></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>
    426  [ <a href='#failure34'>Previous Failure</a> | <a href='#failure36'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    427428<tt><br>
    428429Failure messages were:<br>
     
    432433--> 'abc'.split(new RegExp('[a-z]')) = ,,, FAILED! expected: ,,<br>
    433434</tt><br>
    434 <a name='failure36'></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>
     435<a name='failure35'></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>
     436 [ <a href='#failure34'>Previous Failure</a> | <a href='#failure36'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     437<tt><br>
     438Failure messages were:<br>
     439--> new Boolean(false) = true FAILED! expected: false<br>
     440</tt><br>
     441<a name='failure36'></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>
    435442 [ <a href='#failure35'>Previous Failure</a> | <a href='#failure37'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    436 <tt><br>
    437 Failure messages were:<br>
    438 --> new Boolean(false) = true FAILED! expected: false<br>
    439 </tt><br>
    440 <a name='failure37'></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>
    441  [ <a href='#failure36'>Previous Failure</a> | <a href='#failure38'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    442443<tt>--> STATUS: Regression test for Bugzilla bug 99663<br>
    443444Failure messages were:<br>
     
    446447--> Section 3 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
    447448</tt><br>
    448 <a name='failure38'></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>
    449  [ <a href='#failure37'>Previous Failure</a> | <a href='#failure39'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     449<a name='failure37'></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>
     450 [ <a href='#failure36'>Previous Failure</a> | <a href='#failure38'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    450451<tt>Expected exit code 3, got 0<br>
    451452Testcase terminated with signal 0<br>
    452453Complete testcase output was:<br>
    453454OK.<br>
     455LEAK: 391 KJS::Node<br>
    454456--> BUGNUMBER: 10278<br>
    455457--> function-001.js functions not separated by semicolons are errors in version 120 and higher<br>
    456458--> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
    457459</tt><br>
    458 <a name='failure39'></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>
     460<a name='failure38'></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>
     461 [ <a href='#failure37'>Previous Failure</a> | <a href='#failure39'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     462<tt>Expected exit code 0, got 3<br>
     463Testcase terminated with signal 0<br>
     464Complete testcase output was:<br>
     465LEAK: 389 KJS::Node<br>
     466--> script-001 NativeScript<br>
     467[67435] ./js1_3/Script/script-001.js line 133: ReferenceError: Can't find variable: Script<br>
     468</tt><br>
     469<a name='failure39'></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>
    459470 [ <a href='#failure38'>Previous Failure</a> | <a href='#failure40'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    460 <tt>Expected exit code 0, got 3<br>
    461 Testcase terminated with signal 0<br>
    462 Complete testcase output was:<br>
    463 --> script-001 NativeScript<br>
    464 [138] ./js1_3/Script/script-001.js line 133: ReferenceError: Can't find variable: Script<br>
    465 </tt><br>
    466 <a name='failure40'></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>
    467  [ <a href='#failure39'>Previous Failure</a> | <a href='#failure41'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    468471<tt>Expected exit code 3, got 0<br>
    469472Testcase terminated with signal 0<br>
    470473Complete testcase output was:<br>
    471474OK.<br>
     475LEAK: 391 KJS::Node<br>
    472476--> BUGNUMBER: 10278<br>
    473477--> function-001.js functions not separated by semicolons are errors in version 120 and higher<br>
    474478--> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
    475479</tt><br>
    476 <a name='failure41'></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>
     480<a name='failure40'></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>
     481 [ <a href='#failure39'>Previous Failure</a> | <a href='#failure41'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     482<tt>Expected exit code 0, got 3<br>
     483Testcase terminated with signal 0<br>
     484Complete testcase output was:<br>
     485LEAK: 323 KJS::Node<br>
     486</tt><br>
     487<a name='failure41'></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>
    477488 [ <a href='#failure40'>Previous Failure</a> | <a href='#failure42'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    478489<tt>Expected exit code 0, got 3<br>
    479490Testcase terminated with signal 0<br>
    480491Complete testcase output was:<br>
    481 Testcase produced no output!</tt><br>
    482 <a name='failure42'></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>
     492LEAK: 323 KJS::Node<br>
     493</tt><br>
     494<a name='failure42'></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>
    483495 [ <a href='#failure41'>Previous Failure</a> | <a href='#failure43'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    484496<tt>Expected exit code 0, got 3<br>
    485497Testcase terminated with signal 0<br>
    486498Complete testcase output was:<br>
    487 Testcase produced no output!</tt><br>
    488 <a name='failure43'></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>
     499LEAK: 323 KJS::Node<br>
     500</tt><br>
     501<a name='failure43'></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>
    489502 [ <a href='#failure42'>Previous Failure</a> | <a href='#failure44'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    490503<tt>Expected exit code 0, got 3<br>
    491504Testcase terminated with signal 0<br>
    492505Complete testcase output was:<br>
    493 Testcase produced no output!</tt><br>
    494 <a name='failure44'></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>
     506LEAK: 473 KJS::Node<br>
     507[67490] ./js1_5/Exceptions/errstack-001.js line 247: TypeError: Undefined value<br>
     508</tt><br>
     509<a name='failure44'></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>
    495510 [ <a href='#failure43'>Previous Failure</a> | <a href='#failure45'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    496511<tt>Expected exit code 0, got 3<br>
    497512Testcase terminated with signal 0<br>
    498513Complete testcase output was:<br>
    499 [192] ./js1_5/Exceptions/errstack-001.js line 247: TypeError: Undefined value<br>
    500 </tt><br>
    501 <a name='failure45'></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>
    502  [ <a href='#failure44'>Previous Failure</a> | <a href='#failure46'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    503 <tt>Expected exit code 0, got 3<br>
    504 Testcase terminated with signal 0<br>
    505 Complete testcase output was:<br>
     514LEAK: 654 KJS::Node<br>
    506515--> BUGNUMBER: 50447<br>
    507516--> STATUS: Test (non-ECMA) Error object properties fileName, lineNumber<br>
    508 [193] ./js1_5/Exceptions/regress-50447.js line 65: TypeError: Undefined value<br>
    509 </tt><br>
    510 <a name='failure46'></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>
     517[67491] ./js1_5/Exceptions/regress-50447.js line 65: TypeError: Undefined value<br>
     518</tt><br>
     519<a name='failure45'></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>
     520 [ <a href='#failure44'>Previous Failure</a> | <a href='#failure46'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     521<tt>Expected exit code 0, got 3<br>
     522Testcase terminated with signal 0<br>
     523Complete testcase output was:<br>
     524LEAK: 323 KJS::Node<br>
     525</tt><br>
     526<a name='failure46'></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>
    511527 [ <a href='#failure45'>Previous Failure</a> | <a href='#failure47'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    512528<tt>Expected exit code 0, got 3<br>
    513529Testcase terminated with signal 0<br>
    514530Complete testcase output was:<br>
    515 Testcase produced no output!</tt><br>
    516 <a name='failure47'></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>
     531LEAK: 323 KJS::Node<br>
     532</tt><br>
     533<a name='failure47'></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>
    517534 [ <a href='#failure46'>Previous Failure</a> | <a href='#failure48'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    518535<tt>Expected exit code 0, got 3<br>
    519536Testcase terminated with signal 0<br>
    520537Complete testcase output was:<br>
    521 Testcase produced no output!</tt><br>
    522 <a name='failure48'></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>
     538LEAK: 323 KJS::Node<br>
     539</tt><br>
     540<a name='failure48'></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>
    523541 [ <a href='#failure47'>Previous Failure</a> | <a href='#failure49'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    524542<tt>Expected exit code 0, got 3<br>
    525543Testcase terminated with signal 0<br>
    526544Complete testcase output was:<br>
    527 Testcase produced no output!</tt><br>
    528 <a name='failure49'></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>
     545LEAK: 765 KJS::Node<br>
     546[67516] ./js1_5/Object/regress-90596-001.js line 48: TypeError: Value undefined (result of expression obj.toSource) is not object.<br>
     547</tt><br>
     548<a name='failure49'></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>
    529549 [ <a href='#failure48'>Previous Failure</a> | <a href='#failure50'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    530550<tt>Expected exit code 0, got 3<br>
    531551Testcase terminated with signal 0<br>
    532552Complete testcase output was:<br>
    533 [211] ./js1_5/Object/regress-90596-001.js line 48: TypeError: Value undefined (result of expression obj.toSource) is not object.<br>
    534 </tt><br>
    535 <a name='failure50'></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>
     553LEAK: 769 KJS::Node<br>
     554[67517] ./js1_5/Object/regress-90596-002.js line 48: ReferenceError: Can't find variable: uneval<br>
     555</tt><br>
     556<a name='failure50'></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>
    536557 [ <a href='#failure49'>Previous Failure</a> | <a href='#failure51'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    537558<tt>Expected exit code 0, got 3<br>
    538559Testcase terminated with signal 0<br>
    539560Complete testcase output was:<br>
    540 [212] ./js1_5/Object/regress-90596-002.js line 48: ReferenceError: Can't find variable: uneval<br>
    541 </tt><br>
    542 <a name='failure51'></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>
     561LEAK: 397 KJS::Node<br>
     562[67519] ./js1_5/Object/regress-96284-001.js line 49: TypeError: Value undefined (result of expression obj1.toSource) is not object.<br>
     563</tt><br>
     564<a name='failure51'></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>
    543565 [ <a href='#failure50'>Previous Failure</a> | <a href='#failure52'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    544566<tt>Expected exit code 0, got 3<br>
    545567Testcase terminated with signal 0<br>
    546568Complete testcase output was:<br>
    547 [214] ./js1_5/Object/regress-96284-001.js line 49: TypeError: Value undefined (result of expression obj1.toSource) is not object.<br>
    548 </tt><br>
    549 <a name='failure52'></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>
     569LEAK: 397 KJS::Node<br>
     570[67520] ./js1_5/Object/regress-96284-002.js line 49: ReferenceError: Can't find variable: uneval<br>
     571</tt><br>
     572<a name='failure52'></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>
    550573 [ <a href='#failure51'>Previous Failure</a> | <a href='#failure53'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    551574<tt>Expected exit code 0, got 3<br>
    552575Testcase terminated with signal 0<br>
    553576Complete testcase output was:<br>
    554 [215] ./js1_5/Object/regress-96284-002.js line 49: ReferenceError: Can't find variable: uneval<br>
    555 </tt><br>
    556 <a name='failure53'></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>
    557  [ <a href='#failure52'>Previous Failure</a> | <a href='#failure54'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    558 <tt>Expected exit code 0, got 3<br>
    559 Testcase terminated with signal 0<br>
    560 Complete testcase output was:<br>
     577LEAK: 396 KJS::Node<br>
    561578--> BUGNUMBER: 44009<br>
    562579--> STATUS: Testing that we don't crash on obj.toSource()<br>
    563 [220] ./js1_5/Regress/regress-44009.js line 60: TypeError: Value undefined (result of expression obj.toSource) is not object.<br>
    564 </tt><br>
    565 <a name='failure54'></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>
    566  [ <a href='#failure53'>Previous Failure</a> | <a href='#failure55'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     580[67525] ./js1_5/Regress/regress-44009.js line 60: TypeError: Value undefined (result of expression obj.toSource) is not object.<br>
     581</tt><br>
     582<a name='failure53'></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>
     583 [ <a href='#failure52'>Previous Failure</a> | <a href='#failure54'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    567584<tt>--> STATUS: Testing calling obj.eval(str)<br>
    568585Failure messages were:<br>
     
    572589--> FAILED!: [reported from test()] <br>
    573590</tt><br>
    574 <a name='failure55'></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>
    575  [ <a href='#failure54'>Previous Failure</a> | <a href='#failure56'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     591<a name='failure54'></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>
     592 [ <a href='#failure53'>Previous Failure</a> | <a href='#failure55'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    576593<tt>--> STATUS: Reassignment to a const is NOT an error per ECMA<br>
    577594Failure messages were:<br>
     
    583600--> FAILED!: [reported from test()] <br>
    584601</tt><br>
    585 <a name='failure56'></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>
     602<a name='failure55'></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>
     603 [ <a href='#failure54'>Previous Failure</a> | <a href='#failure56'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     604<tt>Expected exit code 0, got 3<br>
     605Testcase terminated with signal 0<br>
     606Complete testcase output was:<br>
     607LEAK: 323 KJS::Node<br>
     608</tt><br>
     609<a name='failure56'></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>
    586610 [ <a href='#failure55'>Previous Failure</a> | <a href='#failure57'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    587611<tt>Expected exit code 0, got 3<br>
    588612Testcase terminated with signal 0<br>
    589613Complete testcase output was:<br>
    590 Testcase produced no output!</tt><br>
    591 <a name='failure57'></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>
     614LEAK: 419 KJS::Node<br>
     615[67661] ./js1_5/Regress/regress-127557.js line 75: ReferenceError: Can't find variable: clone<br>
     616</tt><br>
     617<a name='failure57'></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>
    592618 [ <a href='#failure56'>Previous Failure</a> | <a href='#failure58'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    593619<tt>Expected exit code 0, got 3<br>
    594620Testcase terminated with signal 0<br>
    595621Complete testcase output was:<br>
    596 [246] ./js1_5/Regress/regress-127557.js line 75: ReferenceError: Can't find variable: clone<br>
    597 </tt><br>
    598 <a name='failure58'></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>
     622LEAK: 397 KJS::Node<br>
     623[67760] ./js1_5/Regress/regress-172699.js line 61: URIError: URI error<br>
     624</tt><br>
     625<a name='failure58'></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>
    599626 [ <a href='#failure57'>Previous Failure</a> | <a href='#failure59'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    600 <tt>Expected exit code 0, got 3<br>
    601 Testcase terminated with signal 0<br>
    602 Complete testcase output was:<br>
    603 [255] ./js1_5/Regress/regress-172699.js line 61: URIError: URI error<br>
    604 </tt><br>
    605 <a name='failure59'></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>
    606  [ <a href='#failure58'>Previous Failure</a> | <a href='#failure60'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    607627<tt>--> STATUS: Don't crash on extraneous arguments to str.match(), etc.<br>
    608628Failure messages were:<br>
     
    654674--> FAILED!: [reported from test()] <br>
    655675</tt><br>
    656 <a name='failure60'></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>
     676<a name='failure59'></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>
     677 [ <a href='#failure58'>Previous Failure</a> | <a href='#failure60'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     678<tt>Expected exit code 0, got 3<br>
     679Testcase terminated with signal 0<br>
     680Complete testcase output was:<br>
     681LEAK: 397 KJS::Node<br>
     682[67823] ./js1_5/Scope/regress-220584.js line 56: ReferenceError: Can't find variable: Script<br>
     683</tt><br>
     684<a name='failure60'></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>
    657685 [ <a href='#failure59'>Previous Failure</a> | <a href='#failure61'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    658 <tt>Expected exit code 0, got 3<br>
    659 Testcase terminated with signal 0<br>
    660 Complete testcase output was:<br>
    661 [280] ./js1_5/Scope/regress-220584.js line 56: ReferenceError: Can't find variable: Script<br>
    662 </tt><br>
    663 <a name='failure61'></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>
    664  [ <a href='#failure60'>Previous Failure</a> | <a href='#failure62'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    665686<tt>--> STATUS: Testing scope after changing obj.__proto__<br>
    666687Failure messages were:<br>
     
    673694--> FAILED!: [reported from test()] <br>
    674695</tt><br>
    675 <a name='failure62'></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>
    676  [ <a href='#failure61'>Previous Failure</a> | <a href='#failure63'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     696<a name='failure61'></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>
     697 [ <a href='#failure60'>Previous Failure</a> | <a href='#failure62'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    677698<tt>--> STATUS: E4X should be enabled even when e4x=1 not specified<br>
    678699Failure messages were:<br>
     
    684705--> FAILED!: <br>
    685706</tt><br>
    686 <a name='failure63'></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>
     707<a name='failure62'></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>
     708 [ <a href='#failure61'>Previous Failure</a> | <a href='#failure63'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
     709<tt>Expected exit code 0, got 3<br>
     710Testcase terminated with signal 0<br>
     711Complete testcase output was:<br>
     712LEAK: 1212 KJS::Node<br>
     713</tt><br>
     714<a name='failure63'></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>
    687715 [ <a href='#failure62'>Previous Failure</a> | <a href='#failure64'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    688716<tt>Expected exit code 0, got 3<br>
    689717Testcase terminated with signal 0<br>
    690718Complete testcase output was:<br>
    691 Testcase produced no output!</tt><br>
    692 <a name='failure64'></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>
     719LEAK: 1212 KJS::Node<br>
     720</tt><br>
     721<a name='failure64'></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>
    693722 [ <a href='#failure63'>Previous Failure</a> | <a href='#failure65'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    694723<tt>Expected exit code 0, got 3<br>
    695724Testcase terminated with signal 0<br>
    696725Complete testcase output was:<br>
    697 Testcase produced no output!</tt><br>
    698 <a name='failure65'></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>
    699  [ <a href='#failure64'>Previous Failure</a> | <a href='#failure66'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
    700 <tt>Expected exit code 0, got 3<br>
    701 Testcase terminated with signal 0<br>
    702 Complete testcase output was:<br>
     726LEAK: 1212 KJS::Node<br>
    703727--> BUGNUMBER: 306591<br>
    704728--> STATUS: String static methods<br>
    705729--> STATUS: See https://bugzilla.mozilla.org/show_bug.cgi?id=304828<br>
    706 [302] ./js1_6/String/regress-306591.js line 48: TypeError: Value undefined (result of expression String.split) is not object.<br>
     730[67845] ./js1_6/String/regress-306591.js line 48: TypeError: Value undefined (result of expression String.split) is not object.<br>
    707731</tt><br>
    708732</dl>
     
    712736<a name='retest_list'></a>
    713737<h2>Retest List</h2><br>
    714 # Retest List, kjs, generated Mon Jul 16 02:25:22 2007.
     738# Retest List, kjs, generated Thu Jul 19 13:10:08 2007.
    715739# Original test base was: All tests.
    716 # 1127 of 1135 test(s) were completed, 65 failures reported.
     740# 1127 of 1135 test(s) were completed, 64 failures reported.
    717741ecma/TypeConversion/9.3.1-3.js
    718742ecma_2/Exceptions/function-001.js
     
    748772js1_2/regexp/regress-9141.js
    749773js1_2/regexp/simple_form.js
    750 js1_2/regexp/special_characters.js
    751774js1_2/regexp/string_split.js
    752775js1_2/version120/boolean-001.js
Note: See TracChangeset for help on using the changeset viewer.