[webkit-changes] cvs commit: JavaScriptCore/tests/mozilla expected.html

Geoffrey ggaren at opensource.apple.com
Wed Jun 29 13:15:01 PDT 2005


ggaren      05/06/29 13:15:01

  Modified:    .        ChangeLog
               kjs      date_object.cpp date_object.h
               tests/mozilla expected.html
  Log:
  	Rolling out date patch from 6-28-05 because it breaks
  	fast/js/date-parse-test
  
          Reviewed by NOBODY.
  
          * kjs/date_object.cpp:
          (formatLocaleDate):
          (DateProtoFuncImp::call):
          (DateObjectImp::construct):
          (KJS::parseDate):
          (ymdhms_to_seconds):
          (isSpaceOrTab):
          (KJS::KRFCDate_parseDate):
          * kjs/date_object.h:
          * tests/mozilla/expected.html:
  
  Revision  Changes    Path
  1.725     +18 -0     JavaScriptCore/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/ChangeLog,v
  retrieving revision 1.724
  retrieving revision 1.725
  diff -u -r1.724 -r1.725
  --- ChangeLog	29 Jun 2005 16:32:26 -0000	1.724
  +++ ChangeLog	29 Jun 2005 20:14:59 -0000	1.725
  @@ -1,5 +1,23 @@
   2005-06-29  Geoffrey Garen  <ggaren at apple.com>
   
  +	Rolling out date patch from 6-28-05 because it breaks 
  +	fast/js/date-parse-test
  +
  +        Reviewed by NOBODY.
  +
  +        * kjs/date_object.cpp:
  +        (formatLocaleDate):
  +        (DateProtoFuncImp::call):
  +        (DateObjectImp::construct):
  +        (KJS::parseDate):
  +        (ymdhms_to_seconds):
  +        (isSpaceOrTab):
  +        (KJS::KRFCDate_parseDate):
  +        * kjs/date_object.h:
  +        * tests/mozilla/expected.html:
  +
  +2005-06-29  Geoffrey Garen  <ggaren at apple.com>
  +
           Reviewed by Darin.
   
   	-fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=3750
  
  
  
  1.41      +274 -409  JavaScriptCore/kjs/date_object.cpp
  
  Index: date_object.cpp
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kjs/date_object.cpp,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- date_object.cpp	28 Jun 2005 22:25:43 -0000	1.40
  +++ date_object.cpp	29 Jun 2005 20:15:00 -0000	1.41
  @@ -58,15 +58,7 @@
   
   #include "date_object.lut.h"
   
  -// some constants
   const time_t invalidDate = -1;
  -const double hoursPerDay = 24;
  -const double minutesPerHour = 60;
  -const double secondsPerMinute = 60;
  -const double msPerSecond = 1000;
  -const double msPerMinute = msPerSecond * secondsPerMinute;
  -const double msPerHour = msPerMinute * minutesPerHour;
  -const double msPerDay = msPerHour * hoursPerDay;
   
   #if APPLE_CHANGES
   
  @@ -263,9 +255,13 @@
       return retVal;
   }
   
  -static UString formatLocaleDate(KJS::ExecState *exec, double time, bool includeDate, bool includeTime, const KJS::List &args)
  +static UString formatLocaleDate(KJS::ExecState *exec,time_t tv, bool includeDate, bool includeTime, const KJS::List &args)
   {
  +    LongDateTime longDateTime;
  +    UCConvertCFAbsoluteTimeToLongDateTime(tv - kCFAbsoluteTimeIntervalSince1970, &longDateTime);
  +
       CFLocaleRef locale = CFLocaleCopyCurrent();
  +    
       int argCount = args.size();
       
       CFDateFormatterStyle    dateStyle = (includeDate ? kCFDateFormatterLongStyle : kCFDateFormatterNoStyle);
  @@ -294,7 +290,8 @@
   	CFDateFormatterSetFormat(formatter,customFormatCFString);
   	CFRelease(customFormatCFString);
       }
  -    CFStringRef string = CFDateFormatterCreateStringWithAbsoluteTime(NULL, formatter, time - kCFAbsoluteTimeIntervalSince1970);
  +    CFStringRef string = CFDateFormatterCreateStringWithAbsoluteTime(NULL, formatter, tv - kCFAbsoluteTimeIntervalSince1970);
  +
       // We truncate the string returned from CFDateFormatter if it's absurdly long (> 200 characters).
       // That's not great error handling, but it just won't happen so it doesn't matter.
       UChar buffer[200];
  @@ -316,83 +313,6 @@
   
   using namespace KJS;
   
  -static int day(double t)
  -{
  -  return int(floor(t / msPerDay));
  -}
  -
  -static double dayFromYear(int year)
  -{
  -  return 365.0 * (year - 1970)
  -    + floor((year - 1969) / 4.0)
  -    - floor((year - 1901) / 100.0)
  -    + floor((year - 1601) / 400.0);
  -}
  -
  -// depending on whether it's a leap year or not
  -static int daysInYear(int year)
  -{
  -  if (year % 4 != 0)
  -    return 365;
  -  else if (year % 400 == 0)
  -    return 366;
  -  else if (year % 100 == 0)
  -    return 365;
  -  else
  -    return 366;
  -}
  -
  -// time value of the start of a year
  -static double timeFromYear(int year)
  -{
  -  return msPerDay * dayFromYear(year);
  -}
  -
  -// year determined by time value
  -static int yearFromTime(double t)
  -{
  -  // ### there must be an easier way
  -  // initial guess
  -  int y = 1970 + int(t / (365.25 * msPerDay));
  -  // adjustment
  -  if (timeFromYear(y) > t) {
  -    do {
  -      --y;
  -    } while (timeFromYear(y) > t);
  -  } else {
  -    while (timeFromYear(y + 1) < t)
  -      ++y;
  -  }
  -
  -  return y;
  -}
  -
  -// 0: Sunday, 1: Monday, etc.
  -static int weekDay(double t)
  -{
  -  int wd = (day(t) + 4) % 7;
  -  if (wd < 0)
  -    wd += 7;
  -  return wd;
  -}
  -
  -static double timeZoneOffset(const struct tm *t)
  -{
  -#if defined BSD || defined(__linux__) || defined(__APPLE__)
  -  return -(t->tm_gmtoff / 60);
  -#else
  -#  if defined(__BORLANDC__) || defined(__CYGWIN__)
  -// FIXME consider non one-hour DST change
  -#if !defined(__CYGWIN__)
  -#error please add daylight savings offset here!
  -#endif
  -  return _timezone / 60 - (t->tm_isdst > 0 ? 60 : 0);
  -#  else
  -  return timezone / 60 - (t->tm_isdst > 0 ? 60 : 0 );
  -#  endif
  -#endif
  -}
  -
   // ------------------------------ DateInstanceImp ------------------------------
   
   const ClassInfo DateInstanceImp::info = {"Date", 0, 0, 0};
  @@ -541,37 +461,15 @@
       }
     }
     
  -  // check whether time value is outside time_t's usual range
  -  // make the necessary transformations if necessary
  -  int realYearOffset = 0;
  -  double milliOffset = 0.0;
  -  double secs = floor(milli / 1000.0);
  -
  -  if (milli < 0 || milli >= timeFromYear(2038)) {
  -    // ### ugly and probably not very precise
  -    int realYear = yearFromTime(milli);
  -    int base = daysInYear(realYear) == 365 ? 2001 : 2000;
  -    milliOffset = timeFromYear(base) - timeFromYear(realYear);
  -    milli += milliOffset;
  -    realYearOffset = realYear - base;
  -  }
  -
  -  time_t tv = (time_t) floor(milli / 1000.0);
  +  time_t tv = (time_t)(milli / 1000.0);
     int ms = int(milli - tv * 1000.0);
   
  -  struct tm *t = utc ? gmtime(&tv) : localtime(&tv);
  -  // we had an out of range year. use that one (plus/minus offset
  -  // found by calculating tm_year) and fix the week day calculation
  -  if (realYearOffset != 0) {
  -    t->tm_year += realYearOffset;
  -    milli -= milliOffset;
  -    // our own weekday calculation. beware of need for local time.
  -    double m = milli;
  -    if (!utc)
  -      m -= timeZoneOffset(t) * msPerMinute;
  -    t->tm_wday = weekDay(m);
  -  }
  -  
  +  struct tm *t;
  +  if (utc)
  +    t = gmtime(&tv);
  +  else
  +    t = localtime(&tv);
  +
     switch (id) {
   #if APPLE_CHANGES
     case ToString:
  @@ -588,13 +486,13 @@
       result = String(formatDateUTCVariant(*t) + " " + formatTime(*t));
       break;
     case ToLocaleString:
  -    result = String(formatLocaleDate(exec, secs, true, true, args));
  +    result = String(formatLocaleDate(exec,tv, true, true,args));
       break;
     case ToLocaleDateString:
  -    result = String(formatLocaleDate(exec, secs, true, false, args));
  +    result = String(formatLocaleDate(exec,tv, true, false,args));
       break;
     case ToLocaleTimeString:
  -    result = String(formatLocaleDate(exec, secs, false, true, args));
  +    result = String(formatLocaleDate(exec,tv, false, true,args));
       break;
   #else
     case ToString:
  @@ -732,10 +630,14 @@
     if (id == SetYear || id == SetMilliSeconds || id == SetSeconds ||
         id == SetMinutes || id == SetHours || id == SetDate ||
         id == SetMonth || id == SetFullYear ) {
  -    result = Number(makeTime(t, ms, utc));
  +    time_t mktimeResult = utc ? timegm(t) : mktime(t);
  +    if (mktimeResult == invalidDate)
  +      result = Number(NaN);
  +    else
  +      result = Number(mktimeResult * 1000.0 + ms);
       thisObj.setInternalValue(result);
     }
  -  
  +
     return result;
   }
   
  @@ -821,10 +723,14 @@
         t.tm_sec = (numArgs >= 6) ? args[5].toInt32(exec) : 0;
         t.tm_isdst = -1;
         int ms = (numArgs >= 7) ? args[6].toInt32(exec) : 0;
  -      value = makeTime(&t, ms, false);
  +      time_t mktimeResult = mktime(&t);
  +      if (mktimeResult == invalidDate)
  +        value = NaN;
  +      else
  +        value = mktimeResult * 1000.0 + ms;
       }
     }
  -  
  +
     Object proto = exec->lexicalInterpreter()->builtinDatePrototype();
     Object ret(new DateInstanceImp(proto.imp()));
     ret.setInternalValue(Number(timeClip(value)));
  @@ -911,16 +817,58 @@
   #ifdef KJS_VERBOSE
     fprintf(stderr,"KJS::parseDate %s\n",u.ascii());
   #endif
  -  double /*time_t*/ seconds = KRFCDate_parseDate( u );
  -
  -  return seconds == invalidDate ? NaN : seconds * 1000.0;
  +  int firstSlash = u.find('/');
  +  if ( firstSlash == -1 )
  +  {
  +    time_t seconds = KRFCDate_parseDate( u );
  +#ifdef KJS_VERBOSE
  +    fprintf(stderr,"KRFCDate_parseDate returned seconds=%d\n",seconds);
  +#endif
  +    if ( seconds == invalidDate )
  +      return NaN;
  +    else
  +      return seconds * 1000.0;
  +  }
  +  else
  +  {
  +    // Found 12/31/2099 on some website -> obviously MM/DD/YYYY
  +    int month = u.substr(0,firstSlash).toULong();
  +    int secondSlash = u.find('/',firstSlash+1);
  +    //fprintf(stdout,"KJS::parseDate firstSlash=%d, secondSlash=%d\n", firstSlash, secondSlash);
  +    if ( secondSlash == -1 )
  +    {
  +      fprintf(stderr,"KJS::parseDate parsing for this format isn't implemented\n%s", u.ascii());
  +      return NaN;
  +    }
  +    int day = u.substr(firstSlash+1,secondSlash-firstSlash-1).toULong();
  +    int year = u.substr(secondSlash+1).toULong();
  +    //fprintf(stdout,"KJS::parseDate day=%d, month=%d, year=%d\n", day, month, year);
  +    struct tm t;
  +    memset( &t, 0, sizeof(t) );
  +#if !APPLE_CHANGES
  +    year = (year > 2037) ? 2037 : year; // mktime is limited to 2037 !!!
  +#endif
  +    t.tm_year = (year >= 0 && year <= 99) ? year : year - 1900;
  +    t.tm_mon = month-1; // mktime wants 0-11 for some reason
  +    t.tm_mday = day;
  +    time_t seconds = mktime(&t);
  +    if ( seconds == invalidDate )
  +    {
  +#if !APPLE_CHANGES
  +      fprintf(stderr,"KJS::parseDate mktime returned -1.\n%s", u.ascii());
  +#endif
  +      return NaN;
  +    }
  +    else
  +      return seconds * 1000.0;
  +  }
   }
   
   ///// Awful duplication from krfcdate.cpp - we don't link to kdecore
   
  -static double ymdhms_to_seconds(int year, int mon, int day, int hour, int minute, int second)
  +static unsigned int ymdhms_to_seconds(int year, int mon, int day, int hour, int minute, int second)
   {
  -    double ret = (day - 32075)       /* days */
  +    unsigned int ret = (day - 32075)       /* days */
               + 1461L * (year + 4800L + (mon - 14) / 12) / 4
               + 367 * (mon - 2 - (mon - 14) / 12 * 12) / 12
               - 3 * ((year + 4900L + (mon - 14) / 12) / 100) / 4
  @@ -936,12 +884,8 @@
   
   // we follow the recommendation of rfc2822 to consider all
   // obsolete time zones not listed here equivalent to "-0000"
  -static const struct KnownZone {
  -#ifdef _WIN32
  -    char tzName[4];
  -#else
  -    const char tzName[4];
  -#endif
  +static const struct {
  +    const char *tzName;
       int tzOffset;
   } known_zones[] = {
       { "UT", 0 },
  @@ -953,128 +897,74 @@
       { "MST", -420 },
       { "MDT", -360 },
       { "PST", -480 },
  -    { "PDT", -420 }
  +    { "PDT", -420 },
  +    { 0, 0 }
   };
   
  -double KJS::makeTime(struct tm *t, int ms, bool utc)
  -{
  -    int utcOffset;
  -    if (utc) {
  -	time_t zero = 0;
  -#if defined BSD || defined(__linux__) || defined(__APPLE__)
  -	struct tm *t3 = localtime(&zero);
  -        utcOffset = t3->tm_gmtoff;
  -        t->tm_isdst = t3->tm_isdst;
  -#else
  -        (void)localtime(&zero);
  -#  if defined(__BORLANDC__) || defined(__CYGWIN__)
  -        utcOffset = - _timezone;
  -#  else
  -        utcOffset = - timezone;
  -#  endif
  -        t->tm_isdst = 0;
  -#endif
  -    } else {
  -	utcOffset = 0;
  -	t->tm_isdst = -1;
  -    }
  -
  -    double yearOffset = 0.0;
  -    if (t->tm_year < (1970 - 1900) || t->tm_year > (2038 - 1900)) {
  -      // we'll fool mktime() into believing that this year is within
  -      // its normal, portable range (1970-2038) by setting tm_year to
  -      // 2000 or 2001 and adding the difference in milliseconds later.
  -      // choice between offset will depend on whether the year is a
  -      // leap year or not.
  -      int y = t->tm_year + 1900;
  -      int baseYear = daysInYear(y) == 365 ? 2001 : 2000;
  -      const double baseTime = timeFromYear(baseYear);
  -      yearOffset = timeFromYear(y) - baseTime;
  -      t->tm_year = baseYear - 1900;
  -    }
  -
  -    return (mktime(t) + utcOffset) * 1000.0 + ms + yearOffset;
  -}
  -
  -// returns 0-11 (Jan-Dec); -1 on failure
  -static int findMonth(const char *monthStr)
  +static inline bool isSpaceOrTab(char c)
   {
  -  assert(monthStr);
  -  static const char haystack[37] = "janfebmaraprmayjunjulaugsepoctnovdec";
  -  char needle[4];
  -  for (int i = 0; i < 3; ++i) {
  -    if (!*monthStr)
  -      return -1;
  -    needle[i] = tolower(*monthStr++);
  -  }
  -  needle[3] = '\0';
  -  const char *str = strstr(haystack, needle);
  -  if (str) {
  -    int position = str - haystack;
  -    if (position % 3 == 0) {
  -      return position / 3;
  -    }
  -  }
  -  return -1;
  +    return c == ' ' || c == '\t';
   }
   
  -double KJS::KRFCDate_parseDate(const UString &_date)
  +time_t KJS::KRFCDate_parseDate(const UString &_date)
   {
        // This parse a date in the form:
  -     //     Tuesday, 09-Nov-99 23:12:40 GMT
  +     //     Wednesday, 09-Nov-99 23:12:40 GMT
        // or
        //     Sat, 01-Jan-2000 08:00:00 GMT
        // or
        //     Sat, 01 Jan 2000 08:00:00 GMT
        // or
        //     01 Jan 99 22:00 +0100    (exceptions in rfc822/rfc2822)
  -     // ### non RFC formats, added for Javascript:
  +     // ### non RFC format, added for Javascript:
        //     [Wednesday] January 09 1999 23:12:40 GMT
  -     //     [Wednesday] January 09 23:12:40 GMT 1999
        //
        // We ignore the weekday
        //
  -     double result = -1;
        int offset = 0;
  -     bool have_tz = false;
        char *newPosStr;
        const char *dateString = _date.ascii();
        int day = 0;
  +     char monthStr[4];
        int month = -1; // not set yet
        int year = 0;
        int hour = 0;
        int minute = 0;
        int second = 0;
  -     bool have_time = false;
  -     
  -     // for strtol error checking
  +
        errno = 0;
   
        // Skip leading space
  -     while(isspace(*dateString))
  +     while (isSpaceOrTab(*dateString))
        	dateString++;
   
        const char *wordStart = dateString;
        // Check contents of first words if not number
        while(*dateString && !isdigit(*dateString))
        {
  -        if ( isspace(*dateString) && dateString - wordStart >= 3 )
  +        if ( isSpaceOrTab(*dateString) && dateString - wordStart >= 3 )
           {
  -          month = findMonth(wordStart);
  -          while(isspace(*dateString))
  +          monthStr[0] = tolower(*wordStart++);
  +          monthStr[1] = tolower(*wordStart++);
  +          monthStr[2] = tolower(*wordStart++);
  +          monthStr[3] = '\0';
  +          //fprintf(stderr,"KJS::parseDate found word starting with '%s'\n", monthStr);
  +          const char *str = strstr(haystack, monthStr);
  +          if (str) {
  +            int position = str - haystack;
  +            if (position % 3 == 0) {
  +              month = position / 3; // Jan=00, Feb=01, Mar=02, ..
  +            }
  +          }
  +          while (isSpaceOrTab(*dateString))
                dateString++;
             wordStart = dateString;
           }
           else
              dateString++;
        }
  -     // missing delimiter between month and day (like "January29")?
  -     if (month == -1 && dateString && wordStart != dateString) {
  -       month = findMonth(wordStart);
  -       // TODO: emit warning about dubious format found
  -     }
   
  -     while(isspace(*dateString))
  +     while (isSpaceOrTab(*dateString))
        	dateString++;
   
        if (!*dateString)
  @@ -1083,225 +973,119 @@
        // ' 09-Nov-99 23:12:40 GMT'
        day = strtol(dateString, &newPosStr, 10);
        if (errno)
  -       return invalidDate;
  +        return invalidDate;
        dateString = newPosStr;
   
  +     if ((day < 1) || (day > 31))
  +     	return invalidDate;
        if (!*dateString)
        	return invalidDate;
   
  -     if (day < 1)
  -       return invalidDate;
  -     if (day > 31) {
  -       // ### where is the boundary and what happens below?
  -       if (*dateString == '/' && day >= 1000) {
  -         // looks like a YYYY/MM/DD date
  -         if (!*++dateString)
  -           return invalidDate;
  -         year = day;
  -         month = strtol(dateString, &newPosStr, 10) - 1;
  -         if (errno)
  -           return invalidDate;
  -         dateString = newPosStr;
  -         if (*dateString++ != '/' || !*dateString)
  -           return invalidDate;
  -         day = strtol(dateString, &newPosStr, 10);
  -         if (errno)
  -           return invalidDate;
  -         dateString = newPosStr;
  -       } else {
  -         return invalidDate;
  -       }
  -     } else if (*dateString == '/' && day <= 12 && month == -1)
  -     {
  +     if (*dateString == '-' || *dateString == ',')
        	dateString++;
  -        // This looks like a MM/DD/YYYY date, not an RFC date.....
  -        month = day - 1; // 0-based
  -        day = strtol(dateString, &newPosStr, 10);
  -        if (errno)
  -          return invalidDate;
  -        dateString = newPosStr;
  -        if (*dateString == '/')
  -          dateString++;
  -        if (!*dateString)
  -          return invalidDate;
  -        //printf("month=%d day=%d dateString=%s\n", month, day, dateString);
  -     }
  -     else
  +
  +     while (isSpaceOrTab(*dateString))
  +     	dateString++;
  +
  +     if ( month == -1 ) // not found yet
        {
  -       if (*dateString == '-')
  -         dateString++;
  +        for(int i=0; i < 3;i++)
  +        {
  +           if (!*dateString || (*dateString == '-') || isSpaceOrTab(*dateString))
  +              return invalidDate;
  +           monthStr[i] = tolower(*dateString++);
  +        }
  +        monthStr[3] = '\0';
   
  -       while(isspace(*dateString))
  -         dateString++;
  +        newPosStr = (char*)strstr(haystack, monthStr);
   
  -       if (*dateString == ',')
  -         dateString++;
  +        if (!newPosStr || (newPosStr - haystack) % 3 != 0)
  +           return invalidDate;
  +
  +        month = (newPosStr-haystack)/3; // Jan=00, Feb=01, Mar=02, ..
   
  -       if ( month == -1 ) // not found yet
  -       {
  -         month = findMonth(dateString);
  -         if (month == -1)
  +        if ((month < 0) || (month > 11))
              return invalidDate;
   
  -         while(*dateString && (*dateString != '-') && !isspace(*dateString))
  +        while (*dateString && *dateString != '-' && !isSpaceOrTab(*dateString))
              dateString++;
   
  -         if (!*dateString)
  +        if (!*dateString)
              return invalidDate;
   
  -         // '-99 23:12:40 GMT'
  -         if ((*dateString != '-') && (*dateString != '/') && !isspace(*dateString))
  +        // '-99 23:12:40 GMT'
  +        if (*dateString != '-' && !isSpaceOrTab(*dateString))
              return invalidDate;
  -         dateString++;
  -       }
  -
  -       if ((month < 0) || (month > 11))
  -         return invalidDate;
  +        dateString++;
        }
   
  +     if ((month < 0) || (month > 11))
  +     	return invalidDate;
  +
        // '99 23:12:40 GMT'
  -     if (year <= 0 && *dateString) {
  -       year = strtol(dateString, &newPosStr, 10);
  -       if (errno)
  -         return invalidDate;
  -    }
  -    
  +     bool gotYear = true;
  +     year = strtol(dateString, &newPosStr, 10);
  +     if (errno)
  +        return invalidDate;
  +     dateString = newPosStr;
  +
        // Don't fail if the time is missing.
  -     if (*newPosStr)
  +     if (*dateString == ':' || (isSpaceOrTab(*dateString) && isdigit(dateString[1])))
        {
  -        // ' 23:12:40 GMT'
  -        if (!isspace(*newPosStr)) {
  -           if ( *newPosStr == ':' ) // Ah, so there was no year, but the number was the hour
  -               year = -1;
  -           else
  -               return invalidDate;
  -        } else // in the normal case (we parsed the year), advance to the next number
  -            dateString = ++newPosStr;
  -
  -        hour = strtol(dateString, &newPosStr, 10);
  -        if (errno)
  -          return invalidDate;
  -        // read a number? if not this might be a timezone name
  -        if (newPosStr != dateString) {
  -          have_time = true;
  -          dateString = newPosStr;
  -
  -          if ((hour < 0) || (hour > 23))
  -            return invalidDate;
  -
  -          if (!*dateString)
  -            return invalidDate;
  -
  -          // ':12:40 GMT'
  -          if (*dateString++ != ':')
  -            return invalidDate;
  -
  -          minute = strtol(dateString, &newPosStr, 10);
  +        if (*dateString == ':') {
  +          hour = year;
  +          gotYear = false;
  +        } else {
  +          // ' 23:12:40 GMT'
  +          ++dateString;
  +        
  +          hour = strtol(dateString, &newPosStr, 10);
             if (errno)
               return invalidDate;
             dateString = newPosStr;
  +        }
   
  -          if ((minute < 0) || (minute > 59))
  -            return invalidDate;
  -
  -          // ':40 GMT'
  -          if (*dateString && *dateString != ':' && !isspace(*dateString))
  -            return invalidDate;
  -
  -          // seconds are optional in rfc822 + rfc2822
  -          if (*dateString ==':') {
  -            dateString++;
  -
  -            second = strtol(dateString, &newPosStr, 10);
  -            if (errno)
  -              return invalidDate;
  -            dateString = newPosStr;
  -
  -            if ((second < 0) || (second > 59))
  -              return invalidDate;
  -          }
  +        if ((hour < 0) || (hour > 23))
  +           return invalidDate;
   
  -          while(isspace(*dateString))
  -            dateString++;
  +        if (!*dateString)
  +           return invalidDate;
   
  -	  if (strncasecmp(dateString, "AM", 2) == 0) {
  -	    if (hour > 12)
  -	      return invalidDate;
  -	    if (hour == 12)
  -	      hour = 0;
  -	    dateString += 2;
  -	    while (isspace(*dateString))
  -	      dateString++;
  -	  } else if (strncasecmp(dateString, "PM", 2) == 0) {
  -	    if (hour > 12)
  -	      return invalidDate;
  -	    if (hour != 12)
  -	      hour += 12;
  -	    dateString += 2;
  -	    while (isspace(*dateString))
  -	      dateString++;
  -	  }
  -        }
  -     } else {
  -       dateString = newPosStr;
  -     }
  +        // ':12:40 GMT'
  +        if (*dateString++ != ':')
  +           return invalidDate;
   
  -     // don't fail if the time zone is missing, some
  -     // broken mail-/news-clients omit the time zone
  -     if (*dateString) {
  +        minute = strtol(dateString, &newPosStr, 10);
  +        if (errno)
  +          return invalidDate;
  +        dateString = newPosStr;
   
  -       if (strncasecmp(dateString, "GMT", 3) == 0 ||
  -	   strncasecmp(dateString, "UTC", 3) == 0) 
  -       {
  -         dateString += 3;
  -         have_tz = true;
  -       }
  -
  -       while (isspace(*dateString))
  -         ++dateString;
  -
  -       if (strncasecmp(dateString, "GMT", 3) == 0) {
  -         dateString += 3;
  -       }
  -       if ((*dateString == '+') || (*dateString == '-')) {
  -         offset = strtol(dateString, &newPosStr, 10);
  -         if (errno)
  +        if ((minute < 0) || (minute > 59))
              return invalidDate;
  -         dateString = newPosStr;
   
  -         if ((offset < -9959) || (offset > 9959))
  -            return invalidDate;
  +        // seconds are optional in rfc822 + rfc2822
  +        if (*dateString ==':') {
  +           dateString++;
   
  -         int sgn = (offset < 0)? -1:1;
  -         offset = abs(offset);
  -         if ( *dateString == ':' ) { // GMT+05:00
  -           int offset2 = strtol(dateString, &newPosStr, 10);
  +           second = strtol(dateString, &newPosStr, 10);
              if (errno)
                return invalidDate;
              dateString = newPosStr;
  -           offset = (offset*60 + offset2)*sgn;
  -         }
  -         else
  -           offset = ((offset / 100)*60 + (offset % 100))*sgn;
  -         have_tz = true;
  -       } else {
  -         for (int i=0; i < int(sizeof(known_zones)/sizeof(KnownZone)); i++) {
  -           if (0 == strncasecmp(dateString, known_zones[i].tzName, strlen(known_zones[i].tzName))) {
  -             offset = known_zones[i].tzOffset;
  -             have_tz = true;
  -             break;
  -           }
  -         }
  -       }
  -     }
   
  -     while(isspace(*dateString))
  +           if ((second < 0) || (second > 59))
  +              return invalidDate;
  +        }
  +     }
  +     
  +     while (isSpaceOrTab(*dateString))
           dateString++;
   
  -     if ( *dateString && year == -1 ) {
  -       year = strtol(dateString, &newPosStr, 10);
  -       if (errno)
  -         return invalidDate;
  +     if (!gotYear) {
  +        year = strtol(dateString, &newPosStr, 10);
  +        if (errno)
  +          return invalidDate;
  +        while (isSpaceOrTab(*dateString))
  +           dateString++;
        }
   
        // Y2K: Solve 2 digit years
  @@ -1311,25 +1095,106 @@
        if ((year >= 50) && (year < 100))
            year += 1900;  // Y2K
   
  -     if (!have_tz) {
  -       // fall back to midnight, local timezone
  -       struct tm t;
  -       memset(&t, 0, sizeof(tm));
  -       t.tm_mday = day;
  -       t.tm_mon = month;
  -       t.tm_year = year - 1900;
  -       t.tm_isdst = -1;
  -       if (have_time) {
  -         t.tm_sec = second;
  -         t.tm_min = minute;
  -         t.tm_hour = hour;
  -       }
  +     if ((year < 1900) || (year > 2500))
  +     	return invalidDate;
   
  -       // better not use mktime() as it can't handle the full year range
  -       return makeTime(&t, 0, false) / 1000.0;
  +     if (strncasecmp(dateString, "AM", 2) == 0) {
  +        if (hour < 1 || hour > 12)
  +            return invalidDate;
  +        if (hour == 12)
  +            hour = 0;
  +        dateString += 2;
  +        while (isSpaceOrTab(*dateString))
  +           dateString++;
  +     } else if (strncasecmp(dateString, "PM", 2) == 0) {
  +        if (hour < 1 || hour > 12)
  +            return invalidDate;
  +        if (hour != 12)
  +            hour += 12;
  +        dateString += 2;
  +        while (isSpaceOrTab(*dateString))
  +           dateString++;
        }
  +
  +     // don't fail if the time zone is missing, some
  +     // broken mail-/news-clients omit the time zone
  +     bool localTime;
  +     if (*dateString == 0) {
  +        // Other web browsers interpret missing time zone as "current time zone".
  +        localTime = true;
  +     } else {
  +        localTime = false;
  +        if (strncasecmp(dateString, "GMT", 3) == 0) {
  +            dateString += 3;
  +        }
  +        if ((*dateString == '+') || (*dateString == '-')) {
  +           offset = strtol(dateString, &newPosStr, 10);
  +
  +           if (errno || (offset < -9959) || (offset > 9959))
  +              return invalidDate;
  +
  +           int sgn = (offset < 0)? -1:1;
  +           offset = abs(offset);
  +           offset = ((offset / 100)*60 + (offset % 100))*sgn;
  +        } else {
  +           for (int i=0; known_zones[i].tzName != 0; i++) {
  +              if (0 == strncasecmp(dateString, known_zones[i].tzName, strlen(known_zones[i].tzName))) {
  +                 offset = known_zones[i].tzOffset;
  +                 break;
  +              }
  +           }
  +        }
  +     }
  +     if (sizeof(time_t) == 4)
  +     {
  +         if ((time_t)-1 < 0)
  +         {
  +            if (year >= 2038)
  +            {
  +               year = 2038;
  +               month = 0;
  +               day = 1;
  +               hour = 0;
  +               minute = 0;
  +               second = 0;
  +            }
  +         }
  +         else
  +         {
  +            if (year >= 2115)
  +            {
  +               year = 2115;
  +               month = 0;
  +               day = 1;
  +               hour = 0;
  +               minute = 0;
  +               second = 0;
  +            }
  +         }
  +     }
  +
  +    time_t result;
        
  -     result = ymdhms_to_seconds(year, month+1, day, hour, minute, second) - (offset*60);
  +    if (localTime) {
  +      struct tm tm;
  +      tm.tm_year = year - 1900;
  +      tm.tm_mon = month;
  +      tm.tm_mday = day;
  +      tm.tm_hour = hour;
  +      tm.tm_min = minute;
  +      tm.tm_sec = second;
  +      tm.tm_isdst = -1;
  +      result = mktime(&tm);
  +    } else {
  +     result = ymdhms_to_seconds(year, month+1, day, hour, minute, second);
  +
  +     // avoid negative time values
  +     if ((offset > 0) && (offset > result))
  +        offset = 0;
  +
  +     result -= offset*60;
  +    }
  +
        return result;
   }
   
  
  
  
  1.9       +2 -3      JavaScriptCore/kjs/date_object.h
  
  Index: date_object.h
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kjs/date_object.h,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- date_object.h	28 Jun 2005 22:25:43 -0000	1.8
  +++ date_object.h	29 Jun 2005 20:15:00 -0000	1.9
  @@ -120,9 +120,8 @@
   
     // helper functions
     double parseDate(const UString &u);
  -  double KRFCDate_parseDate(const UString &_date);
  -  double timeClip(double t);
  -  double makeTime(struct tm *t, int milli, bool utc);
  +  time_t KRFCDate_parseDate(const UString &_date); 
  +  double timeClip(double);
   
   }; // namespace
   
  
  
  
  1.21      +230 -222  JavaScriptCore/tests/mozilla/expected.html
  
  Index: expected.html
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/tests/mozilla/expected.html,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- expected.html	28 Jun 2005 22:25:43 -0000	1.20
  +++ expected.html	29 Jun 2005 20:15:00 -0000	1.21
  @@ -7,11 +7,11 @@
   <p class='results_summary'>
   Test List: All tests<br>
   Skip List: ecma/Date<br>
  -967 test(s) selected, 962 test(s) completed, 125 failures reported (12.99% failed)<br>
  +967 test(s) selected, 962 test(s) completed, 126 failures reported (13.09% failed)<br>
   Engine command line: /Users/ggaren/Development/symroots/testkjs <br>
   OS type: Darwin il0204a-dhcp30.apple.com 8.2.0 Darwin Kernel Version 8.2.0: Fri Jun  3 21:09:06 PDT 2005; root:xnu-792.2.3.obj~1/RELEASE_PPC Power Macintosh powerpc<br>
  -Testcase execution time: 1 minutes, 41 seconds.<br>
  -Tests completed on Tue Jun 28 15:33:19 2005.<br><br>
  +Testcase execution time: 1 minutes, 51 seconds.<br>
  +Tests completed on Wed Jun 29 13:20:02 2005.<br><br>
   [ <a href='#fail_detail'>Failure Details</a> | <a href='#retest_list'>Retest List</a> | <a href='menu.html'>Test Selection Page</a> ]<br>
   <hr>
   <a name='fail_detail'></a>
  @@ -172,27 +172,34 @@
   --> FAILED!: [reported from test()] Expected value '3', Actual value '0'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure19'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Date/15.9.5.7.js'>ecma_3/Date/15.9.5.7.js</a> failed</b> <br>
  +<a name='failure19'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Date/15.9.5.5.js'>ecma_3/Date/15.9.5.5.js</a> failed</b> <br>
    [ <a href='#failure18'>Previous Failure</a> | <a href='#failure20'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
  +--> Date.parse(Fri Dec 13 1901 12:45:52 GMT-0800).toLocaleString()) = -2147483648000 FAILED! expected: -2208988800000<br>
  +--> Date.parse(Fri Dec 13 1901 12:45:52 GMT-0800).toLocaleString()) = -2147483648000 FAILED! expected: -2208960000000<br>
  +</tt><br>
  +<a name='failure20'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Date/15.9.5.7.js'>ecma_3/Date/15.9.5.7.js</a> failed</b> <br>
  + [ <a href='#failure19'>Previous Failure</a> | <a href='#failure21'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<tt><br>
  +Failure messages were:<br>
   --> (Wed Dec 31 1969 16:00:00 GMT-0800).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
   --> (Wed Dec 31 1969 08:00:00 GMT-0800).toLocaleTimeString() = 8:00:00 AM PST FAILED! expected: 08:00:00<br>
  ---> (Sun Dec 31 1899 16:00:00 GMT-0800).toLocaleTimeString() = 5:00:00 PM PDT FAILED! expected: 16:00:00<br>
  ---> (Mon Jan 01 1900 00:00:00 GMT-0800).toLocaleTimeString() = 1:00:00 AM PDT FAILED! expected: 00:00:00<br>
  +--> (Fri Dec 13 1901 12:45:52 GMT-0800).toLocaleTimeString() = 1:45:52 PM PDT FAILED! expected: 12:45:52<br>
  +--> (Fri Dec 13 1901 12:45:52 GMT-0800).toLocaleTimeString() = 1:45:52 PM PDT FAILED! expected: 12:45:52<br>
   --> (Fri Dec 31 1999 16:00:00 GMT-0800).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
   --> (Sat Jan 01 2000 00:00:00 GMT-0800).toLocaleTimeString() = 12:00:00 AM PST FAILED! expected: 00:00:00<br>
   --> (Mon Feb 28 2000 16:00:00 GMT-0800).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
   --> (Mon Feb 28 2000 15:59:59 GMT-0800).toLocaleTimeString() = 3:59:59 PM PST FAILED! expected: 15:59:59<br>
   --> (Tue Feb 29 2000 00:00:00 GMT-0800).toLocaleTimeString() = 12:00:00 AM PST FAILED! expected: 00:00:00<br>
  ---> (Tue Jun 28 2005 15:32:46 GMT-0700).toLocaleTimeString() = 3:32:46 PM PDT FAILED! expected: 15:32:46<br>
  ---> (Tue Jun 28 2005 23:32:46 GMT-0700).toLocaleTimeString() = 11:32:46 PM PDT FAILED! expected: 23:32:46<br>
  +--> (Wed Jun 29 2005 13:19:27 GMT-0700).toLocaleTimeString() = 1:19:27 PM PDT FAILED! expected: 13:19:27<br>
  +--> (Wed Jun 29 2005 21:19:27 GMT-0700).toLocaleTimeString() = 9:19:27 PM PDT FAILED! expected: 21:19:27<br>
   --> (Fri Dec 31 2004 16:00:00 GMT-0800).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
   --> (Fri Dec 31 2004 15:59:59 GMT-0800).toLocaleTimeString() = 3:59:59 PM PST FAILED! expected: 15:59:59<br>
   --> (Sat Jan 01 2005 00:00:00 GMT-0800).toLocaleTimeString() = 12:00:00 AM PST FAILED! expected: 00:00:00<br>
   </tt><br>
  -<a name='failure20'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Exceptions/15.11.1.1.js'>ecma_3/Exceptions/15.11.1.1.js</a> failed</b> <br>
  - [ <a href='#failure19'>Previous Failure</a> | <a href='#failure21'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure21'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Exceptions/15.11.1.1.js'>ecma_3/Exceptions/15.11.1.1.js</a> failed</b> <br>
  + [ <a href='#failure20'>Previous Failure</a> | <a href='#failure22'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Ensuring normal function call of Error (ECMA-262 Ed.3 15.11.1.1)<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 1 of test -<br>
  @@ -205,8 +212,8 @@
   --> FAILED!: [reported from test()] Expected value '0', Actual value '-1'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure21'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Exceptions/15.11.4.4-1.js'>ecma_3/Exceptions/15.11.4.4-1.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
  - [ <a href='#failure20'>Previous Failure</a> | <a href='#failure22'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure22'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Exceptions/15.11.4.4-1.js'>ecma_3/Exceptions/15.11.4.4-1.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
  + [ <a href='#failure21'>Previous Failure</a> | <a href='#failure23'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing Error.prototype.toString()<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 1 of test -<br>
  @@ -216,8 +223,8 @@
   --> FAILED!: [reported from test()] Expected value '0', Actual value '-1'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure22'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Exceptions/regress-181654.js'>ecma_3/Exceptions/regress-181654.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=181654' target='other_window'>Bug Number 181654</a><br>
  - [ <a href='#failure21'>Previous Failure</a> | <a href='#failure23'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure23'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Exceptions/regress-181654.js'>ecma_3/Exceptions/regress-181654.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=181654' target='other_window'>Bug Number 181654</a><br>
  + [ <a href='#failure22'>Previous Failure</a> | <a href='#failure24'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Calling toString for an object derived from the Error class should be possible.<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 1 of test -<br>
  @@ -230,8 +237,8 @@
   --> FAILED!: [reported from test()] Expected value '0', Actual value '-1'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure23'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Exceptions/regress-181914.js'>ecma_3/Exceptions/regress-181914.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=181914' target='other_window'>Bug Number 181914</a><br>
  - [ <a href='#failure22'>Previous Failure</a> | <a href='#failure24'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure24'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Exceptions/regress-181914.js'>ecma_3/Exceptions/regress-181914.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=181914' target='other_window'>Bug Number 181914</a><br>
  + [ <a href='#failure23'>Previous Failure</a> | <a href='#failure25'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Calling a user-defined superconstructor<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 1 of test -<br>
  @@ -256,8 +263,8 @@
   --> FAILED!: [reported from test()] Expected value '0', Actual value '-1'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure24'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Exceptions/regress-95101.js'>ecma_3/Exceptions/regress-95101.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=95101' target='other_window'>Bug Number 95101</a><br>
  - [ <a href='#failure23'>Previous Failure</a> | <a href='#failure25'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure25'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Exceptions/regress-95101.js'>ecma_3/Exceptions/regress-95101.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=95101' target='other_window'>Bug Number 95101</a><br>
  + [ <a href='#failure24'>Previous Failure</a> | <a href='#failure26'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Invoking an undefined function should produce a ReferenceError<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 1 of test<br>
  @@ -267,8 +274,8 @@
   --> FAILED!: [reported from test()] Expected value 'ReferenceError', Actual value 'did NOT generate a ReferenceError'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure25'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/ExecutionContexts/10.1.3-1.js'>ecma_3/ExecutionContexts/10.1.3-1.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=124900' target='other_window'>Bug Number 124900</a><br>
  - [ <a href='#failure24'>Previous Failure</a> | <a href='#failure26'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure26'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/ExecutionContexts/10.1.3-1.js'>ecma_3/ExecutionContexts/10.1.3-1.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=124900' target='other_window'>Bug Number 124900</a><br>
  + [ <a href='#failure25'>Previous Failure</a> | <a href='#failure27'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing functions having duplicate formal parameter names<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 7 of test -<br>
  @@ -278,8 +285,8 @@
   --> FAILED!: [reported from test()] Expected value '1,2,3,999', Actual value '1,2,3,4'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure26'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/arguments-001.js'>ecma_3/Function/arguments-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=72884' target='other_window'>Bug Number 72884</a><br>
  - [ <a href='#failure25'>Previous Failure</a> | <a href='#failure27'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure27'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/arguments-001.js'>ecma_3/Function/arguments-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=72884' target='other_window'>Bug Number 72884</a><br>
  + [ <a href='#failure26'>Previous Failure</a> | <a href='#failure28'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing the arguments object<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 1 of test -<br>
  @@ -291,8 +298,8 @@
   --> FAILED!: [reported from test()] Expected value 'undefined', Actual value '3'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure27'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/regress-104584.js'>ecma_3/Function/regress-104584.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=104584' target='other_window'>Bug Number 104584</a><br>
  - [ <a href='#failure26'>Previous Failure</a> | <a href='#failure28'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure28'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/regress-104584.js'>ecma_3/Function/regress-104584.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=104584' target='other_window'>Bug Number 104584</a><br>
  + [ <a href='#failure27'>Previous Failure</a> | <a href='#failure29'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
  @@ -300,60 +307,60 @@
   --> STATUS: Testing that we don't crash on this code -<br>
   Exception, line 45: TypeError - Object  (result of expression gc) does not allow calls.<br>
   </tt><br>
  -<a name='failure28'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/regress-193555.js'>ecma_3/Function/regress-193555.js</a> failed</b> <br>
  - [ <a href='#failure27'>Previous Failure</a> | <a href='#failure29'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure29'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/regress-193555.js'>ecma_3/Function/regress-193555.js</a> failed</b> <br>
  + [ <a href='#failure28'>Previous Failure</a> | <a href='#failure30'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 65: ReferenceError - Can't find variable: g<br>
   </tt><br>
  -<a name='failure29'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/regress-58274.js'>ecma_3/Function/regress-58274.js</a> failed</b> <br>
  - [ <a href='#failure28'>Previous Failure</a> | <a href='#failure30'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure30'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/regress-58274.js'>ecma_3/Function/regress-58274.js</a> failed</b> <br>
  + [ <a href='#failure29'>Previous Failure</a> | <a href='#failure31'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   yylex: ERROR.<br>
   Exception, line 83: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure30'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/scope-001.js'>ecma_3/Function/scope-001.js</a> failed</b> <br>
  - [ <a href='#failure29'>Previous Failure</a> | <a href='#failure31'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure31'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/scope-001.js'>ecma_3/Function/scope-001.js</a> failed</b> <br>
  + [ <a href='#failure30'>Previous Failure</a> | <a href='#failure32'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 185: TypeError - Value undefined (result of expression obj.hasOwnProperty) is not object.<br>
   </tt><br>
  -<a name='failure31'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/scope-002.js'>ecma_3/Function/scope-002.js</a> failed</b> <br>
  - [ <a href='#failure30'>Previous Failure</a> | <a href='#failure32'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure32'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/scope-002.js'>ecma_3/Function/scope-002.js</a> failed</b> <br>
  + [ <a href='#failure31'>Previous Failure</a> | <a href='#failure33'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 168: TypeError - Value undefined (result of expression obj.hasOwnProperty) is not object.<br>
   </tt><br>
  -<a name='failure32'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/FunExpr/fe-001.js'>ecma_3/FunExpr/fe-001.js</a> failed</b> <br>
  - [ <a href='#failure31'>Previous Failure</a> | <a href='#failure33'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure33'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/FunExpr/fe-001.js'>ecma_3/FunExpr/fe-001.js</a> failed</b> <br>
  + [ <a href='#failure32'>Previous Failure</a> | <a href='#failure34'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 26: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure33'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-001.js'>ecma_3/Object/class-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
  - [ <a href='#failure32'>Previous Failure</a> | <a href='#failure34'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure34'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-001.js'>ecma_3/Object/class-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
  + [ <a href='#failure33'>Previous Failure</a> | <a href='#failure35'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing the internal [[Class]] property of objects<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Current object is: new Error()<br>
   --> FAILED!: [reported from test()] Expected value 'Error', Actual value 'Object'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure34'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-002.js'>ecma_3/Object/class-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
  - [ <a href='#failure33'>Previous Failure</a> | <a href='#failure35'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure35'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-002.js'>ecma_3/Object/class-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
  + [ <a href='#failure34'>Previous Failure</a> | <a href='#failure36'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing the internal [[Class]] property of native constructors<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Current constructor is: Number<br>
   --> FAILED!: [reported from test()] Expected value 'Function', Actual value 'Number'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure35'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-003.js'>ecma_3/Object/class-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=56868' target='other_window'>Bug Number 56868</a><br>
  - [ <a href='#failure34'>Previous Failure</a> | <a href='#failure36'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure36'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-003.js'>ecma_3/Object/class-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=56868' target='other_window'>Bug Number 56868</a><br>
  + [ <a href='#failure35'>Previous Failure</a> | <a href='#failure37'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing the internal [[Class]] property of native error types<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Current object is: new Error()<br>
  @@ -378,8 +385,8 @@
   --> FAILED!: [reported from test()] Expected value 'Error', Actual value 'Object'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure36'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-004.js'>ecma_3/Object/class-004.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=56868' target='other_window'>Bug Number 56868</a><br>
  - [ <a href='#failure35'>Previous Failure</a> | <a href='#failure37'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure37'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-004.js'>ecma_3/Object/class-004.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=56868' target='other_window'>Bug Number 56868</a><br>
  + [ <a href='#failure36'>Previous Failure</a> | <a href='#failure38'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing the internal [[Class]] property of native error constructors<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Current constructor is: EvalError<br>
  @@ -401,16 +408,16 @@
   --> FAILED!: [reported from test()] Expected value 'Function', Actual value 'Error'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure37'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/regress-72773.js'>ecma_3/Object/regress-72773.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=72773' target='other_window'>Bug Number 72773</a><br>
  - [ <a href='#failure36'>Previous Failure</a> | <a href='#failure38'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure38'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/regress-72773.js'>ecma_3/Object/regress-72773.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=72773' target='other_window'>Bug Number 72773</a><br>
  + [ <a href='#failure37'>Previous Failure</a> | <a href='#failure39'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Regression test: we shouldn't crash on this code<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Trying to catch an expected error<br>
   --> FAILED!: [reported from test()] Expected value 'Error', Actual value 'Object'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure38'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/15.10.2-1.js'>ecma_3/RegExp/15.10.2-1.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
  - [ <a href='#failure37'>Previous Failure</a> | <a href='#failure39'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure39'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/15.10.2-1.js'>ecma_3/RegExp/15.10.2-1.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
  + [ <a href='#failure38'>Previous Failure</a> | <a href='#failure40'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: RegExp conformance test<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 7 of test -<br>
  @@ -435,8 +442,8 @@
   --> FAILED!: [reported from test()] Actual: null<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure39'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/15.10.6.2-2.js'>ecma_3/RegExp/15.10.6.2-2.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=76717' target='other_window'>Bug Number 76717</a><br>
  - [ <a href='#failure38'>Previous Failure</a> | <a href='#failure40'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure40'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/15.10.6.2-2.js'>ecma_3/RegExp/15.10.6.2-2.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=76717' target='other_window'>Bug Number 76717</a><br>
  + [ <a href='#failure39'>Previous Failure</a> | <a href='#failure41'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing re.exec(str) when re.lastIndex is < 0 or > str.length<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 6 of test -<br>
  @@ -503,8 +510,8 @@
   --> FAILED!: [reported from test()] Actual: ["Abc"]<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure40'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/octal-002.js'>ecma_3/RegExp/octal-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=141078' target='other_window'>Bug Number 141078</a><br>
  - [ <a href='#failure39'>Previous Failure</a> | <a href='#failure41'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure41'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/octal-002.js'>ecma_3/RegExp/octal-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=141078' target='other_window'>Bug Number 141078</a><br>
  + [ <a href='#failure40'>Previous Failure</a> | <a href='#failure42'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing regexps containing octal escape sequences<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 8 of test -<br>
  @@ -515,8 +522,8 @@
   --> FAILED!: [reported from test()] Actual: ["a"]<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure41'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/perlstress-001.js'>ecma_3/RegExp/perlstress-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
  - [ <a href='#failure40'>Previous Failure</a> | <a href='#failure42'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure42'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/perlstress-001.js'>ecma_3/RegExp/perlstress-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
  + [ <a href='#failure41'>Previous Failure</a> | <a href='#failure43'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing regular expression edge cases<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 218 of test -<br>
  @@ -576,8 +583,8 @@
   --> FAILED!: [reported from test()] Actual: ["aabbaa", "aa", "bb"]<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure42'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/perlstress-002.js'>ecma_3/RegExp/perlstress-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
  - [ <a href='#failure41'>Previous Failure</a> | <a href='#failure43'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure43'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/perlstress-002.js'>ecma_3/RegExp/perlstress-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
  + [ <a href='#failure42'>Previous Failure</a> | <a href='#failure44'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing regular expression edge cases<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 40 of test -<br>
  @@ -595,8 +602,8 @@
   --> FAILED!: [reported from test()] Actual: null<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure43'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-100199.js'>ecma_3/RegExp/regress-100199.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=100199' target='other_window'>Bug Number 100199</a><br>
  - [ <a href='#failure42'>Previous Failure</a> | <a href='#failure44'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure44'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-100199.js'>ecma_3/RegExp/regress-100199.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=100199' target='other_window'>Bug Number 100199</a><br>
  + [ <a href='#failure43'>Previous Failure</a> | <a href='#failure45'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: [], [^] are valid RegExp conditions. Should not cause errors -<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 19 of test -<br>
  @@ -698,8 +705,8 @@
   --> FAILED!: [reported from test()] Actual: null<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure44'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-188206.js'>ecma_3/RegExp/regress-188206.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=188206' target='other_window'>Bug Number 188206</a><br>
  - [ <a href='#failure43'>Previous Failure</a> | <a href='#failure45'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure45'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-188206.js'>ecma_3/RegExp/regress-188206.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=188206' target='other_window'>Bug Number 188206</a><br>
  + [ <a href='#failure44'>Previous Failure</a> | <a href='#failure46'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Invalid use of regexp quantifiers should generate SyntaxErrors<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 1 of test -<br>
  @@ -760,8 +767,8 @@
   --> FAILED!: [reported from test()] Expected value 'SyntaxError', Actual value 'Did not generate ANY error!!!'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure45'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-209919.js'>ecma_3/RegExp/regress-209919.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=209919' target='other_window'>Bug Number 209919</a><br>
  - [ <a href='#failure44'>Previous Failure</a> | <a href='#failure46'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure46'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-209919.js'>ecma_3/RegExp/regress-209919.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=209919' target='other_window'>Bug Number 209919</a><br>
  + [ <a href='#failure45'>Previous Failure</a> | <a href='#failure47'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing regexp submatches with quantifiers<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 1 of test -<br>
  @@ -800,8 +807,8 @@
   --> FAILED!: [reported from test()] Actual: ["1.000,00", "", ",00"]<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure46'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-72964.js'>ecma_3/RegExp/regress-72964.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=72964' target='other_window'>Bug Number 72964</a><br>
  - [ <a href='#failure45'>Previous Failure</a> | <a href='#failure47'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure47'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-72964.js'>ecma_3/RegExp/regress-72964.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=72964' target='other_window'>Bug Number 72964</a><br>
  + [ <a href='#failure46'>Previous Failure</a> | <a href='#failure48'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing regular expressions containing non-Latin1 characters<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 3 of test -<br>
  @@ -819,8 +826,8 @@
   --> FAILED!: [reported from test()] Actual: null<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure47'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-78156.js'>ecma_3/RegExp/regress-78156.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=78156' target='other_window'>Bug Number 78156</a><br>
  - [ <a href='#failure46'>Previous Failure</a> | <a href='#failure48'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure48'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-78156.js'>ecma_3/RegExp/regress-78156.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=78156' target='other_window'>Bug Number 78156</a><br>
  + [ <a href='#failure47'>Previous Failure</a> | <a href='#failure49'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing regular expressions with  ^, $, and the m flag -<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 2 of test -<br>
  @@ -838,8 +845,8 @@
   --> FAILED!: [reported from test()] Actual: null<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure48'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-85721.js'>ecma_3/RegExp/regress-85721.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
  - [ <a href='#failure47'>Previous Failure</a> | <a href='#failure49'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure49'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-85721.js'>ecma_3/RegExp/regress-85721.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
  + [ <a href='#failure48'>Previous Failure</a> | <a href='#failure50'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Performance: execution of regular expression<br>
   Failure messages were:<br>
   --> FAILED!: Section 4 of test -<br>
  @@ -960,47 +967,47 @@
   --> FAILED!: Actual: null<br>
   --> FAILED!: <br>
   </tt><br>
  -<a name='failure49'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Statements/regress-194364.js'>ecma_3/Statements/regress-194364.js</a> failed</b> <br>
  - [ <a href='#failure48'>Previous Failure</a> | <a href='#failure50'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure50'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Statements/regress-194364.js'>ecma_3/Statements/regress-194364.js</a> failed</b> <br>
  + [ <a href='#failure49'>Previous Failure</a> | <a href='#failure51'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 1: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure50'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-001.js'>ecma_3/Unicode/uc-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=23610' target='other_window'>Bug Number 23610</a><br>
  - [ <a href='#failure49'>Previous Failure</a> | <a href='#failure51'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure51'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-001.js'>ecma_3/Unicode/uc-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=23610' target='other_window'>Bug Number 23610</a><br>
  + [ <a href='#failure50'>Previous Failure</a> | <a href='#failure52'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Unicode format-control character (Category Cf) test.<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Unicode format-control character test (Category Cf.)<br>
   --> FAILED!: [reported from test()] Expected value 'no error', Actual value 'no error'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure51'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-002.js'>ecma_3/Unicode/uc-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=23613' target='other_window'>Bug Number 23613</a><br>
  - [ <a href='#failure50'>Previous Failure</a> | <a href='#failure52'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure52'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-002.js'>ecma_3/Unicode/uc-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=23613' target='other_window'>Bug Number 23613</a><br>
  + [ <a href='#failure51'>Previous Failure</a> | <a href='#failure53'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Unicode non-breaking space character test.<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Unicode non-breaking space character regexp test.<br>
   --> FAILED!: [reported from test()] Expected value '0', Actual value '-1'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure52'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-003.js'>ecma_3/Unicode/uc-003.js</a> failed</b> <br>
  - [ <a href='#failure51'>Previous Failure</a> | <a href='#failure53'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure53'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-003.js'>ecma_3/Unicode/uc-003.js</a> failed</b> <br>
  + [ <a href='#failure52'>Previous Failure</a> | <a href='#failure54'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   yylex: ERROR.<br>
   Exception, line 32: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure53'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-005.js'>ecma_3/Unicode/uc-005.js</a> failed</b> <br>
  - [ <a href='#failure52'>Previous Failure</a> | <a href='#failure54'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure54'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-005.js'>ecma_3/Unicode/uc-005.js</a> failed</b> <br>
  + [ <a href='#failure53'>Previous Failure</a> | <a href='#failure55'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   yylex: ERROR.<br>
   Exception, line 118: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure54'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Array/tostring_1.js'>js1_2/Array/tostring_1.js</a> failed</b> <br>
  - [ <a href='#failure53'>Previous Failure</a> | <a href='#failure55'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure55'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Array/tostring_1.js'>js1_2/Array/tostring_1.js</a> failed</b> <br>
  + [ <a href='#failure54'>Previous Failure</a> | <a href='#failure56'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> var a = new Array(); a.toString() =  FAILED! expected: []<br>
  @@ -1011,16 +1018,16 @@
   --> var b = new Array(1000); b.toString() = ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, FAILED! expected: [1000]<br>
   --> b.length = 1000 FAILED! expected: 1<br>
   </tt><br>
  -<a name='failure55'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Array/tostring_2.js'>js1_2/Array/tostring_2.js</a> failed</b> <br>
  - [ <a href='#failure54'>Previous Failure</a> | <a href='#failure56'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure56'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Array/tostring_2.js'>js1_2/Array/tostring_2.js</a> failed</b> <br>
  + [ <a href='#failure55'>Previous Failure</a> | <a href='#failure57'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> a.toString() =  FAILED! expected: []<br>
   --> String( a ) =  FAILED! expected: []<br>
   --> a +'' =  FAILED! expected: []<br>
   </tt><br>
  -<a name='failure56'></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>
  - [ <a href='#failure55'>Previous Failure</a> | <a href='#failure57'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure57'></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>
  + [ <a href='#failure56'>Previous Failure</a> | <a href='#failure58'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 3, got 0<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
  @@ -1028,8 +1035,8 @@
   --> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
   OK.<br>
   </tt><br>
  -<a name='failure57'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/Function_object.js'>js1_2/function/Function_object.js</a> failed</b> <br>
  - [ <a href='#failure56'>Previous Failure</a> | <a href='#failure58'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure58'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/Function_object.js'>js1_2/function/Function_object.js</a> failed</b> <br>
  + [ <a href='#failure57'>Previous Failure</a> | <a href='#failure59'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> f.name = undefined FAILED! expected: a_test_function<br>
  @@ -1037,29 +1044,29 @@
   --> (new Function()).name = undefined FAILED! expected: anonymous<br>
   } FAILED! expected: <br>
   </tt><br>
  -<a name='failure58'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/Number.js'>js1_2/function/Number.js</a> failed</b> <br>
  - [ <a href='#failure57'>Previous Failure</a> | <a href='#failure59'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure59'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/Number.js'>js1_2/function/Number.js</a> failed</b> <br>
  + [ <a href='#failure58'>Previous Failure</a> | <a href='#failure60'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> Number([1,2,3])          = NaN FAILED! expected: 3<br>
   </tt><br>
  -<a name='failure59'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/regexparg-1.js'>js1_2/function/regexparg-1.js</a> failed</b> <br>
  - [ <a href='#failure58'>Previous Failure</a> | <a href='#failure60'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure60'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/regexparg-1.js'>js1_2/function/regexparg-1.js</a> failed</b> <br>
  + [ <a href='#failure59'>Previous Failure</a> | <a href='#failure61'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   --> JS_1.2 The variable statment<br>
   Exception, line 81: TypeError - Object /abc/ (result of expression x) does not allow calls.<br>
   </tt><br>
  -<a name='failure60'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/String.js'>js1_2/function/String.js</a> failed</b> <br>
  - [ <a href='#failure59'>Previous Failure</a> | <a href='#failure61'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure61'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/String.js'>js1_2/function/String.js</a> failed</b> <br>
  + [ <a href='#failure60'>Previous Failure</a> | <a href='#failure62'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> String({p:1})            = [object Object] FAILED! expected: {p:1}<br>
   --> String([1,2,3])             = 1,2,3 FAILED! expected: [1, 2, 3]<br>
   </tt><br>
  -<a name='failure61'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/tostring-1.js'>js1_2/function/tostring-1.js</a> failed</b> <br>
  - [ <a href='#failure60'>Previous Failure</a> | <a href='#failure62'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure62'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/tostring-1.js'>js1_2/function/tostring-1.js</a> failed</b> <br>
  + [ <a href='#failure61'>Previous Failure</a> | <a href='#failure63'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   } FAILED! expected: <br>
  @@ -1068,8 +1075,8 @@
   } FAILED! expected: <br>
   } FAILED! expected: <br>
   </tt><br>
  -<a name='failure62'></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>
  - [ <a href='#failure61'>Previous Failure</a> | <a href='#failure63'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure63'></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>
  + [ <a href='#failure62'>Previous Failure</a> | <a href='#failure64'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   } FAILED! expected: <br>
  @@ -1082,29 +1089,29 @@
   } FAILED! expected: <br>
   } FAILED! expected: <br>
   </tt><br>
  -<a name='failure63'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Objects/toString-001.js'>js1_2/Objects/toString-001.js</a> failed</b> <br>
  - [ <a href='#failure62'>Previous Failure</a> | <a href='#failure64'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure64'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Objects/toString-001.js'>js1_2/Objects/toString-001.js</a> failed</b> <br>
  + [ <a href='#failure63'>Previous Failure</a> | <a href='#failure65'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   --> JS1_2 Object.toString()<br>
   Exception, line 104: TypeError - Object /^\{(.*)\}$/ (result of expression ^\{(.*)\}$) does not allow calls.<br>
   </tt><br>
  -<a name='failure64'></a><dd><b>Testcase <a target='other_window' href='./js1_2/operator/equality.js'>js1_2/operator/equality.js</a> failed</b> <br>
  - [ <a href='#failure63'>Previous Failure</a> | <a href='#failure65'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure65'></a><dd><b>Testcase <a target='other_window' href='./js1_2/operator/equality.js'>js1_2/operator/equality.js</a> failed</b> <br>
  + [ <a href='#failure64'>Previous Failure</a> | <a href='#failure66'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> (new String('x') == 'x')                  = true FAILED! expected: false<br>
   --> ('x' == new String('x'))                  = true FAILED! expected: false<br>
   </tt><br>
  -<a name='failure65'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/beginLine.js'>js1_2/regexp/beginLine.js</a> failed</b> <br>
  - [ <a href='#failure64'>Previous Failure</a> | <a href='#failure66'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure66'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/beginLine.js'>js1_2/regexp/beginLine.js</a> failed</b> <br>
  + [ <a href='#failure65'>Previous Failure</a> | <a href='#failure67'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   123xyz'.match(new RegExp('^\d+')) = null FAILED! expected: 123<br>
   </tt><br>
  -<a name='failure66'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/compile.js'>js1_2/regexp/compile.js</a> failed</b> <br>
  - [ <a href='#failure65'>Previous Failure</a> | <a href='#failure67'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure67'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/compile.js'>js1_2/regexp/compile.js</a> failed</b> <br>
  + [ <a href='#failure66'>Previous Failure</a> | <a href='#failure68'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
  @@ -1112,14 +1119,14 @@
   --> As described in Netscape doc "Whats new in JavaScript 1.2" RegExp: compile<br>
   Exception, line 44: TypeError - Value undefined (result of expression regularExpression.compile) is not object.<br>
   </tt><br>
  -<a name='failure67'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/endLine.js'>js1_2/regexp/endLine.js</a> failed</b> <br>
  - [ <a href='#failure66'>Previous Failure</a> | <a href='#failure68'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure68'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/endLine.js'>js1_2/regexp/endLine.js</a> failed</b> <br>
  + [ <a href='#failure67'>Previous Failure</a> | <a href='#failure69'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   xyz'.match(new RegExp('\d+$')) = null FAILED! expected: 890<br>
   </tt><br>
  -<a name='failure68'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_input.js'>js1_2/regexp/RegExp_input.js</a> failed</b> <br>
  - [ <a href='#failure67'>Previous Failure</a> | <a href='#failure69'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure69'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_input.js'>js1_2/regexp/RegExp_input.js</a> failed</b> <br>
  + [ <a href='#failure68'>Previous Failure</a> | <a href='#failure70'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> RegExp.input = 'abcd12357efg'; /\d+/.exec() = null FAILED! expected: 12357<br>
  @@ -1128,8 +1135,8 @@
   --> RegExp.input = 'abcd12357efg'; /[h-z]+/.test() = true FAILED! expected: false<br>
   --> RegExp.input = 'abcd12357efg'; (new RegExp('[h-z]+')).test() = true FAILED! expected: false<br>
   </tt><br>
  -<a name='failure69'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_input_as_array.js'>js1_2/regexp/RegExp_input_as_array.js</a> failed</b> <br>
  - [ <a href='#failure68'>Previous Failure</a> | <a href='#failure70'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure70'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_input_as_array.js'>js1_2/regexp/RegExp_input_as_array.js</a> failed</b> <br>
  + [ <a href='#failure69'>Previous Failure</a> | <a href='#failure71'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> RegExp['$_'] = 'abcd12357efg'; /\d+/.exec() = null FAILED! expected: 12357<br>
  @@ -1138,15 +1145,15 @@
   --> RegExp['$_'] = 'abcd12357efg'; /[h-z]+/.test() = true FAILED! expected: false<br>
   --> RegExp['$_'] = 'abcd12357efg'; (new RegExp('[h-z]+')).test() = true FAILED! expected: false<br>
   </tt><br>
  -<a name='failure70'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastIndex.js'>js1_2/regexp/RegExp_lastIndex.js</a> failed</b> <br>
  - [ <a href='#failure69'>Previous Failure</a> | <a href='#failure71'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure71'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastIndex.js'>js1_2/regexp/RegExp_lastIndex.js</a> failed</b> <br>
  + [ <a href='#failure70'>Previous Failure</a> | <a href='#failure72'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> re=/x./g; re.lastIndex=4; re.exec('xyabcdxa') = xa FAILED! expected: ["xa"]<br>
   --> re.exec('xyabcdef') = xy FAILED! expected: ["xy"]<br>
   </tt><br>
  -<a name='failure71'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastMatch.js'>js1_2/regexp/RegExp_lastMatch.js</a> failed</b> <br>
  - [ <a href='#failure70'>Previous Failure</a> | <a href='#failure72'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure72'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastMatch.js'>js1_2/regexp/RegExp_lastMatch.js</a> failed</b> <br>
  + [ <a href='#failure71'>Previous Failure</a> | <a href='#failure73'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> 'foo'.match(/foo/); RegExp.lastMatch = undefined FAILED! expected: foo<br>
  @@ -1156,8 +1163,8 @@
   --> 'abcdefg'.match(/^..(cd)[a-z]+/); RegExp.lastMatch = undefined FAILED! expected: abcdefg<br>
   --> 'abcdefgabcdefg'.match(/(a(b(c(d)e)f)g)\1/); RegExp.lastMatch = undefined FAILED! expected: abcdefgabcdefg<br>
   </tt><br>
  -<a name='failure72'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastMatch_as_array.js'>js1_2/regexp/RegExp_lastMatch_as_array.js</a> failed</b> <br>
  - [ <a href='#failure71'>Previous Failure</a> | <a href='#failure73'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure73'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastMatch_as_array.js'>js1_2/regexp/RegExp_lastMatch_as_array.js</a> failed</b> <br>
  + [ <a href='#failure72'>Previous Failure</a> | <a href='#failure74'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> 'foo'.match(/foo/); RegExp['$&'] = undefined FAILED! expected: foo<br>
  @@ -1167,8 +1174,8 @@
   --> 'abcdefg'.match(/^..(cd)[a-z]+/); RegExp['$&'] = undefined FAILED! expected: abcdefg<br>
   --> 'abcdefgabcdefg'.match(/(a(b(c(d)e)f)g)\1/); RegExp['$&'] = undefined FAILED! expected: abcdefgabcdefg<br>
   </tt><br>
  -<a name='failure73'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastParen.js'>js1_2/regexp/RegExp_lastParen.js</a> failed</b> <br>
  - [ <a href='#failure72'>Previous Failure</a> | <a href='#failure74'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure74'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastParen.js'>js1_2/regexp/RegExp_lastParen.js</a> failed</b> <br>
  + [ <a href='#failure73'>Previous Failure</a> | <a href='#failure75'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> 'abcd'.match(/(abc)d/); RegExp.lastParen = undefined FAILED! expected: abc<br>
  @@ -1181,8 +1188,8 @@
   --> 'abcdefg'.match(new RegExp('(^a)bc')); RegExp.lastParen = undefined FAILED! expected: a<br>
   --> 'abcdefg'.match(/bc/); RegExp.lastParen = undefined FAILED! expected: <br>
   </tt><br>
  -<a name='failure74'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastParen_as_array.js'>js1_2/regexp/RegExp_lastParen_as_array.js</a> failed</b> <br>
  - [ <a href='#failure73'>Previous Failure</a> | <a href='#failure75'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure75'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastParen_as_array.js'>js1_2/regexp/RegExp_lastParen_as_array.js</a> failed</b> <br>
  + [ <a href='#failure74'>Previous Failure</a> | <a href='#failure76'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> 'abcd'.match(/(abc)d/); RegExp['$+'] = undefined FAILED! expected: abc<br>
  @@ -1195,8 +1202,8 @@
   --> 'abcdefg'.match(new RegExp('(^a)bc')); RegExp['$+'] = undefined FAILED! expected: a<br>
   --> 'abcdefg'.match(/bc/); RegExp['$+'] = undefined FAILED! expected: <br>
   </tt><br>
  -<a name='failure75'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_leftContext.js'>js1_2/regexp/RegExp_leftContext.js</a> failed</b> <br>
  - [ <a href='#failure74'>Previous Failure</a> | <a href='#failure76'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure76'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_leftContext.js'>js1_2/regexp/RegExp_leftContext.js</a> failed</b> <br>
  + [ <a href='#failure75'>Previous Failure</a> | <a href='#failure77'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> 'abc123xyz'.match(/123/); RegExp.leftContext = undefined FAILED! expected: abc<br>
  @@ -1207,8 +1214,8 @@
   --> 'xxxx'.match(new RegExp('$')); RegExp.leftContext = undefined FAILED! expected: xxxx<br>
   --> 'test'.match(new RegExp('^')); RegExp.leftContext = undefined FAILED! expected: <br>
   </tt><br>
  -<a name='failure76'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_leftContext_as_array.js'>js1_2/regexp/RegExp_leftContext_as_array.js</a> failed</b> <br>
  - [ <a href='#failure75'>Previous Failure</a> | <a href='#failure77'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure77'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_leftContext_as_array.js'>js1_2/regexp/RegExp_leftContext_as_array.js</a> failed</b> <br>
  + [ <a href='#failure76'>Previous Failure</a> | <a href='#failure78'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> 'abc123xyz'.match(/123/); RegExp['$`'] = undefined FAILED! expected: abc<br>
  @@ -1219,8 +1226,8 @@
   --> 'xxxx'.match(new RegExp('$')); RegExp['$`'] = undefined FAILED! expected: xxxx<br>
   --> 'test'.match(new RegExp('^')); RegExp['$`'] = undefined FAILED! expected: <br>
   </tt><br>
  -<a name='failure77'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_multiline.js'>js1_2/regexp/RegExp_multiline.js</a> failed</b> <br>
  - [ <a href='#failure76'>Previous Failure</a> | <a href='#failure78'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure78'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_multiline.js'>js1_2/regexp/RegExp_multiline.js</a> failed</b> <br>
  + [ <a href='#failure77'>Previous Failure</a> | <a href='#failure79'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> RegExp.multiline = undefined FAILED! expected: false<br>
  @@ -1230,8 +1237,8 @@
   --> (multiline == true) 'a11\na22\na23\na24'.match(/a..$/g) = a24 FAILED! expected: a11,a22,a23,a24<br>
   --> (multiline == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) = a24 FAILED! expected: a11,a22,a23,a24<br>
   </tt><br>
  -<a name='failure78'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_multiline_as_array.js'>js1_2/regexp/RegExp_multiline_as_array.js</a> failed</b> <br>
  - [ <a href='#failure77'>Previous Failure</a> | <a href='#failure79'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure79'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_multiline_as_array.js'>js1_2/regexp/RegExp_multiline_as_array.js</a> failed</b> <br>
  + [ <a href='#failure78'>Previous Failure</a> | <a href='#failure80'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> RegExp['$*'] = undefined FAILED! expected: false<br>
  @@ -1241,8 +1248,8 @@
   --> (['$*'] == true) 'a11\na22\na23\na24'.match(/a..$/g) = a24 FAILED! expected: a11,a22,a23,a24<br>
   --> (['$*'] == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) = a24 FAILED! expected: a11,a22,a23,a24<br>
   </tt><br>
  -<a name='failure79'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_rightContext.js'>js1_2/regexp/RegExp_rightContext.js</a> failed</b> <br>
  - [ <a href='#failure78'>Previous Failure</a> | <a href='#failure80'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure80'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_rightContext.js'>js1_2/regexp/RegExp_rightContext.js</a> failed</b> <br>
  + [ <a href='#failure79'>Previous Failure</a> | <a href='#failure81'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> 'abc123xyz'.match(/123/); RegExp.rightContext = undefined FAILED! expected: xyz<br>
  @@ -1253,8 +1260,8 @@
   --> 'xxxx'.match(new RegExp('$')); RegExp.rightContext = undefined FAILED! expected: <br>
   --> 'test'.match(new RegExp('^')); RegExp.rightContext = undefined FAILED! expected: test<br>
   </tt><br>
  -<a name='failure80'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_rightContext_as_array.js'>js1_2/regexp/RegExp_rightContext_as_array.js</a> failed</b> <br>
  - [ <a href='#failure79'>Previous Failure</a> | <a href='#failure81'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure81'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_rightContext_as_array.js'>js1_2/regexp/RegExp_rightContext_as_array.js</a> failed</b> <br>
  + [ <a href='#failure80'>Previous Failure</a> | <a href='#failure82'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> 'abc123xyz'.match(/123/); RegExp['$''] = undefined FAILED! expected: xyz<br>
  @@ -1265,24 +1272,24 @@
   --> 'xxxx'.match(new RegExp('$')); RegExp['$''] = undefined FAILED! expected: <br>
   --> 'test'.match(new RegExp('^')); RegExp['$''] = undefined FAILED! expected: test<br>
   </tt><br>
  -<a name='failure81'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/regress-6359.js'>js1_2/regexp/regress-6359.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=6359' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=6359</a><br>
  - [ <a href='#failure80'>Previous Failure</a> | <a href='#failure82'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure82'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/regress-6359.js'>js1_2/regexp/regress-6359.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=6359' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=6359</a><br>
  + [ <a href='#failure81'>Previous Failure</a> | <a href='#failure83'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   --> BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=6359<br>
   Exception, line 57: TypeError - Object /(a*)b\1+/ (result of expression (a*)b\1+) does not allow calls.<br>
   </tt><br>
  -<a name='failure82'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/regress-9141.js'>js1_2/regexp/regress-9141.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=9141' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=9141</a><br>
  - [ <a href='#failure81'>Previous Failure</a> | <a href='#failure83'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure83'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/regress-9141.js'>js1_2/regexp/regress-9141.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=9141' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=9141</a><br>
  + [ <a href='#failure82'>Previous Failure</a> | <a href='#failure84'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   --> BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=9141<br>
   Exception, line 74: TypeError - Object /(?:xx|x)*/ (result of expression (?:xx|x)*) does not allow calls.<br>
   </tt><br>
  -<a name='failure83'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/simple_form.js'>js1_2/regexp/simple_form.js</a> failed</b> <br>
  - [ <a href='#failure82'>Previous Failure</a> | <a href='#failure84'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure84'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/simple_form.js'>js1_2/regexp/simple_form.js</a> failed</b> <br>
  + [ <a href='#failure83'>Previous Failure</a> | <a href='#failure85'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
  @@ -1290,14 +1297,14 @@
   --> As described in Netscape doc "Whats new in JavaScript 1.2" RegExp: simple form<br>
   Exception, line 44: TypeError - Object /[0-9]{3}/ (result of expression [0-9]{3}) does not allow calls.<br>
   </tt><br>
  -<a name='failure84'></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>
  - [ <a href='#failure83'>Previous Failure</a> | <a href='#failure85'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure85'></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>
  + [ <a href='#failure84'>Previous Failure</a> | <a href='#failure86'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> 'ab a  b'.match(/a{2}/) = null FAILED! expected: a<br>
   </tt><br>
  -<a name='failure85'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/string_split.js'>js1_2/regexp/string_split.js</a> failed</b> <br>
  - [ <a href='#failure84'>Previous Failure</a> | <a href='#failure86'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure86'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/string_split.js'>js1_2/regexp/string_split.js</a> failed</b> <br>
  + [ <a href='#failure85'>Previous Failure</a> | <a href='#failure87'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> 'abc'.split(/[a-z]/) = ,,, FAILED! expected: ,,<br>
  @@ -1305,8 +1312,8 @@
   --> 'abc'.split(new RegExp('[a-z]')) = ,,, FAILED! expected: ,,<br>
   --> 'abc'.split(new RegExp('[a-z]')) = ,,, FAILED! expected: ,,<br>
   </tt><br>
  -<a name='failure86'></a><dd><b>Testcase <a target='other_window' href='./js1_2/String/concat.js'>js1_2/String/concat.js</a> failed</b> <br>
  - [ <a href='#failure85'>Previous Failure</a> | <a href='#failure87'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure87'></a><dd><b>Testcase <a target='other_window' href='./js1_2/String/concat.js'>js1_2/String/concat.js</a> failed</b> <br>
  + [ <a href='#failure86'>Previous Failure</a> | <a href='#failure88'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> aString.concat([])      = test string FAILED! expected: test string[]<br>
  @@ -1314,29 +1321,29 @@
   --> 'abcde'.concat([])      = abcde FAILED! expected: abcde[]<br>
   --> 'abcde'.concat([1,2,3]) = abcde1,2,3 FAILED! expected: abcde[1, 2, 3]<br>
   </tt><br>
  -<a name='failure87'></a><dd><b>Testcase <a target='other_window' href='./js1_2/String/slice.js'>js1_2/String/slice.js</a> failed</b> <br>
  - [ <a href='#failure86'>Previous Failure</a> | <a href='#failure88'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure88'></a><dd><b>Testcase <a target='other_window' href='./js1_2/String/slice.js'>js1_2/String/slice.js</a> failed</b> <br>
  + [ <a href='#failure87'>Previous Failure</a> | <a href='#failure89'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> exhaustive String.slice test 1 = false FAILED! expected: true<br>
   --> exhaustive String.slice test 2 = false FAILED! expected: true<br>
   </tt><br>
  -<a name='failure88'></a><dd><b>Testcase <a target='other_window' href='./js1_2/version120/boolean-001.js'>js1_2/version120/boolean-001.js</a> failed</b> <br>
  - [ <a href='#failure87'>Previous Failure</a> | <a href='#failure89'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure89'></a><dd><b>Testcase <a target='other_window' href='./js1_2/version120/boolean-001.js'>js1_2/version120/boolean-001.js</a> failed</b> <br>
  + [ <a href='#failure88'>Previous Failure</a> | <a href='#failure90'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> new Boolean(false) = true FAILED! expected: false<br>
   </tt><br>
  -<a name='failure89'></a><dd><b>Testcase <a target='other_window' href='./js1_2/version120/regress-99663.js'>js1_2/version120/regress-99663.js</a> failed</b> <br>
  - [ <a href='#failure88'>Previous Failure</a> | <a href='#failure90'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure90'></a><dd><b>Testcase <a target='other_window' href='./js1_2/version120/regress-99663.js'>js1_2/version120/regress-99663.js</a> failed</b> <br>
  + [ <a href='#failure89'>Previous Failure</a> | <a href='#failure91'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Regression test for Bugzilla bug 99663<br>
   Failure messages were:<br>
   --> Section 1 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
   --> Section 2 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
   --> Section 3 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
   </tt><br>
  -<a name='failure90'></a><dd><b>Testcase <a target='other_window' href='./js1_3/regress/function-001-n.js'>js1_3/regress/function-001-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
  - [ <a href='#failure89'>Previous Failure</a> | <a href='#failure91'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure91'></a><dd><b>Testcase <a target='other_window' href='./js1_3/regress/function-001-n.js'>js1_3/regress/function-001-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
  + [ <a href='#failure90'>Previous Failure</a> | <a href='#failure92'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 3, got 0<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
  @@ -1345,8 +1352,8 @@
   --> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
   OK.<br>
   </tt><br>
  -<a name='failure91'></a><dd><b>Testcase <a target='other_window' href='./js1_3/Script/function-001-n.js'>js1_3/Script/function-001-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
  - [ <a href='#failure90'>Previous Failure</a> | <a href='#failure92'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure92'></a><dd><b>Testcase <a target='other_window' href='./js1_3/Script/function-001-n.js'>js1_3/Script/function-001-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
  + [ <a href='#failure91'>Previous Failure</a> | <a href='#failure93'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 3, got 0<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
  @@ -1355,28 +1362,28 @@
   --> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
   OK.<br>
   </tt><br>
  -<a name='failure92'></a><dd><b>Testcase <a target='other_window' href='./js1_3/Script/script-001.js'>js1_3/Script/script-001.js</a> failed</b> <br>
  - [ <a href='#failure91'>Previous Failure</a> | <a href='#failure93'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure93'></a><dd><b>Testcase <a target='other_window' href='./js1_3/Script/script-001.js'>js1_3/Script/script-001.js</a> failed</b> <br>
  + [ <a href='#failure92'>Previous Failure</a> | <a href='#failure94'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   --> script-001 NativeScript<br>
   Exception, line 134: ReferenceError - Can't find variable: Script<br>
   </tt><br>
  -<a name='failure93'></a><dd><b>Testcase <a target='other_window' href='./js1_4/Regress/function-002.js'>js1_4/Regress/function-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=330462' target='other_window'>Bug Number 330462</a><br>
  - [ <a href='#failure92'>Previous Failure</a> | <a href='#failure94'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure94'></a><dd><b>Testcase <a target='other_window' href='./js1_4/Regress/function-002.js'>js1_4/Regress/function-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=330462' target='other_window'>Bug Number 330462</a><br>
  + [ <a href='#failure93'>Previous Failure</a> | <a href='#failure95'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> f1.toString() == dec1 = false FAILED! expected: true<br>
   </tt><br>
  -<a name='failure94'></a><dd><b>Testcase <a target='other_window' href='./js1_4/Regress/function-003.js'>js1_4/Regress/function-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=310514' target='other_window'>Bug Number 310514</a><br>
  - [ <a href='#failure93'>Previous Failure</a> | <a href='#failure95'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure95'></a><dd><b>Testcase <a target='other_window' href='./js1_4/Regress/function-003.js'>js1_4/Regress/function-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=310514' target='other_window'>Bug Number 310514</a><br>
  + [ <a href='#failure94'>Previous Failure</a> | <a href='#failure96'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt><br>
   Failure messages were:<br>
   --> StripSpaces(Array.prototype.concat.toString()).substring(0,17) = (InternalFunction FAILED! expected: functionconcat(){<br>
   </tt><br>
  -<a name='failure95'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Array/regress-157652.js'>js1_5/Array/regress-157652.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=157652' target='other_window'>Bug Number 157652</a><br>
  - [ <a href='#failure94'>Previous Failure</a> | <a href='#failure96'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure96'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Array/regress-157652.js'>js1_5/Array/regress-157652.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=157652' target='other_window'>Bug Number 157652</a><br>
  + [ <a href='#failure95'>Previous Failure</a> | <a href='#failure97'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 3, got 0<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
  @@ -1385,36 +1392,36 @@
   --> --- NOTE: IN THIS TESTCASE, WE EXPECT EXIT CODE 3 ---<br>
   OK.<br>
   </tt><br>
  -<a name='failure96'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-001.js'>js1_5/Exceptions/catchguard-001.js</a> failed</b> <br>
  - [ <a href='#failure95'>Previous Failure</a> | <a href='#failure97'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure97'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-001.js'>js1_5/Exceptions/catchguard-001.js</a> failed</b> <br>
  + [ <a href='#failure96'>Previous Failure</a> | <a href='#failure98'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 42: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure97'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-002.js'>js1_5/Exceptions/catchguard-002.js</a> failed</b> <br>
  - [ <a href='#failure96'>Previous Failure</a> | <a href='#failure98'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure98'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-002.js'>js1_5/Exceptions/catchguard-002.js</a> failed</b> <br>
  + [ <a href='#failure97'>Previous Failure</a> | <a href='#failure99'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 42: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure98'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-003.js'>js1_5/Exceptions/catchguard-003.js</a> failed</b> <br>
  - [ <a href='#failure97'>Previous Failure</a> | <a href='#failure99'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure99'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-003.js'>js1_5/Exceptions/catchguard-003.js</a> failed</b> <br>
  + [ <a href='#failure98'>Previous Failure</a> | <a href='#failure100'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 42: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure99'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/errstack-001.js'>js1_5/Exceptions/errstack-001.js</a> failed</b> <br>
  - [ <a href='#failure98'>Previous Failure</a> | <a href='#failure100'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure100'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/errstack-001.js'>js1_5/Exceptions/errstack-001.js</a> failed</b> <br>
  + [ <a href='#failure99'>Previous Failure</a> | <a href='#failure101'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 248: TypeError - Undefined value<br>
   </tt><br>
  -<a name='failure100'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/regress-123002.js'>js1_5/Exceptions/regress-123002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=123002' target='other_window'>Bug Number 123002</a><br>
  - [ <a href='#failure99'>Previous Failure</a> | <a href='#failure101'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure101'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/regress-123002.js'>js1_5/Exceptions/regress-123002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=123002' target='other_window'>Bug Number 123002</a><br>
  + [ <a href='#failure100'>Previous Failure</a> | <a href='#failure102'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing Error.length<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section "Error" of test -<br>
  @@ -1439,8 +1446,8 @@
   --> FAILED!: [reported from test()] Expected value '3', Actual value '0'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure101'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/regress-50447.js'>js1_5/Exceptions/regress-50447.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=50447' target='other_window'>Bug Number 50447</a><br>
  - [ <a href='#failure100'>Previous Failure</a> | <a href='#failure102'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure102'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/regress-50447.js'>js1_5/Exceptions/regress-50447.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=50447' target='other_window'>Bug Number 50447</a><br>
  + [ <a href='#failure101'>Previous Failure</a> | <a href='#failure103'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
  @@ -1448,78 +1455,78 @@
   --> STATUS: Test (non-ECMA) Error object properties fileName, lineNumber<br>
   Exception, line 66: TypeError - Undefined value<br>
   </tt><br>
  -<a name='failure102'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-001.js'>js1_5/GetSet/getset-001.js</a> failed</b> <br>
  - [ <a href='#failure101'>Previous Failure</a> | <a href='#failure103'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure103'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-001.js'>js1_5/GetSet/getset-001.js</a> failed</b> <br>
  + [ <a href='#failure102'>Previous Failure</a> | <a href='#failure104'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 33: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure103'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-002.js'>js1_5/GetSet/getset-002.js</a> failed</b> <br>
  - [ <a href='#failure102'>Previous Failure</a> | <a href='#failure104'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure104'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-002.js'>js1_5/GetSet/getset-002.js</a> failed</b> <br>
  + [ <a href='#failure103'>Previous Failure</a> | <a href='#failure105'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 29: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure104'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-003.js'>js1_5/GetSet/getset-003.js</a> failed</b> <br>
  - [ <a href='#failure103'>Previous Failure</a> | <a href='#failure105'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure105'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-003.js'>js1_5/GetSet/getset-003.js</a> failed</b> <br>
  + [ <a href='#failure104'>Previous Failure</a> | <a href='#failure106'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 48: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure105'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-004.js'>js1_5/GetSet/getset-004.js</a> failed</b> <br>
  - [ <a href='#failure104'>Previous Failure</a> | <a href='#failure106'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure106'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-004.js'>js1_5/GetSet/getset-004.js</a> failed</b> <br>
  + [ <a href='#failure105'>Previous Failure</a> | <a href='#failure107'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 48: TypeError - Value undefined (result of expression obj.__defineSetter__) is not object.<br>
   </tt><br>
  -<a name='failure106'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-005.js'>js1_5/GetSet/getset-005.js</a> failed</b> <br>
  - [ <a href='#failure105'>Previous Failure</a> | <a href='#failure107'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure107'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-005.js'>js1_5/GetSet/getset-005.js</a> failed</b> <br>
  + [ <a href='#failure106'>Previous Failure</a> | <a href='#failure108'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 57: TypeError - Value undefined (result of expression obj.__defineSetter__) is not object.<br>
   </tt><br>
  -<a name='failure107'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-006.js'>js1_5/GetSet/getset-006.js</a> failed</b> <br>
  - [ <a href='#failure106'>Previous Failure</a> | <a href='#failure108'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure108'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-006.js'>js1_5/GetSet/getset-006.js</a> failed</b> <br>
  + [ <a href='#failure107'>Previous Failure</a> | <a href='#failure109'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 62: TypeError - Value undefined (result of expression obj.__defineSetter__) is not object.<br>
   </tt><br>
  -<a name='failure108'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-90596-001.js'>js1_5/Object/regress-90596-001.js</a> failed</b> <br>
  - [ <a href='#failure107'>Previous Failure</a> | <a href='#failure109'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure109'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-90596-001.js'>js1_5/Object/regress-90596-001.js</a> failed</b> <br>
  + [ <a href='#failure108'>Previous Failure</a> | <a href='#failure110'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 49: TypeError - Value undefined (result of expression obj.toSource) is not object.<br>
   </tt><br>
  -<a name='failure109'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-90596-002.js'>js1_5/Object/regress-90596-002.js</a> failed</b> <br>
  - [ <a href='#failure108'>Previous Failure</a> | <a href='#failure110'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure110'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-90596-002.js'>js1_5/Object/regress-90596-002.js</a> failed</b> <br>
  + [ <a href='#failure109'>Previous Failure</a> | <a href='#failure111'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 49: TypeError - Object  (result of expression uneval) does not allow calls.<br>
   </tt><br>
  -<a name='failure110'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-96284-001.js'>js1_5/Object/regress-96284-001.js</a> failed</b> <br>
  - [ <a href='#failure109'>Previous Failure</a> | <a href='#failure111'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure111'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-96284-001.js'>js1_5/Object/regress-96284-001.js</a> failed</b> <br>
  + [ <a href='#failure110'>Previous Failure</a> | <a href='#failure112'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 50: TypeError - Value undefined (result of expression obj1.toSource) is not object.<br>
   </tt><br>
  -<a name='failure111'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-96284-002.js'>js1_5/Object/regress-96284-002.js</a> failed</b> <br>
  - [ <a href='#failure110'>Previous Failure</a> | <a href='#failure112'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure112'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-96284-002.js'>js1_5/Object/regress-96284-002.js</a> failed</b> <br>
  + [ <a href='#failure111'>Previous Failure</a> | <a href='#failure113'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 50: TypeError - Object  (result of expression uneval) does not allow calls.<br>
   </tt><br>
  -<a name='failure112'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-103602.js'>js1_5/Regress/regress-103602.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=103602' target='other_window'>Bug Number 103602</a><br>
  - [ <a href='#failure111'>Previous Failure</a> | <a href='#failure113'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure113'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-103602.js'>js1_5/Regress/regress-103602.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=103602' target='other_window'>Bug Number 103602</a><br>
  + [ <a href='#failure112'>Previous Failure</a> | <a href='#failure114'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Reassignment to a const is NOT an error per ECMA<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 1 of test -<br>
  @@ -1529,29 +1536,29 @@
   --> FAILED!: [reported from test()] Expected value '1', Actual value '2'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure113'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-104077.js'>js1_5/Regress/regress-104077.js</a> failed</b> <br>
  - [ <a href='#failure112'>Previous Failure</a> | <a href='#failure114'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure114'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-104077.js'>js1_5/Regress/regress-104077.js</a> failed</b> <br>
  + [ <a href='#failure113'>Previous Failure</a> | <a href='#failure115'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 351: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure114'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-127557.js'>js1_5/Regress/regress-127557.js</a> failed</b> <br>
  - [ <a href='#failure113'>Previous Failure</a> | <a href='#failure115'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure115'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-127557.js'>js1_5/Regress/regress-127557.js</a> failed</b> <br>
  + [ <a href='#failure114'>Previous Failure</a> | <a href='#failure116'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 76: TypeError - Object  (result of expression clone) does not allow calls.<br>
   </tt><br>
  -<a name='failure115'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-156354.js'>js1_5/Regress/regress-156354.js</a> failed</b> <br>
  - [ <a href='#failure114'>Previous Failure</a> | <a href='#failure116'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure116'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-156354.js'>js1_5/Regress/regress-156354.js</a> failed</b> <br>
  + [ <a href='#failure115'>Previous Failure</a> | <a href='#failure117'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 56: TypeError - Value undefined (result of expression this.propertyIsEnumerable) is not object.<br>
   </tt><br>
  -<a name='failure116'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-168347.js'>js1_5/Regress/regress-168347.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=168347' target='other_window'>Bug Number 168347</a><br>
  - [ <a href='#failure115'>Previous Failure</a> | <a href='#failure117'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure117'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-168347.js'>js1_5/Regress/regress-168347.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=168347' target='other_window'>Bug Number 168347</a><br>
  + [ <a href='#failure116'>Previous Failure</a> | <a href='#failure118'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing F.toString()<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 2 of test -<br>
  @@ -1561,15 +1568,15 @@
   --> FAILED!: [reported from test()] Expected value '{--f.i;print("--isucceededi="+f.i);}catch(e){print("--ifailedwith"+e+"i="+f.i);}try{f.i--;print("i--', Actual value '{f.i--;print("--isucceededi="+f.i);}catch(e){print("--ifailedwith"+e+"i="+f.i);}try{f.i--;print("i--'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure117'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-172699.js'>js1_5/Regress/regress-172699.js</a> failed</b> <br>
  - [ <a href='#failure116'>Previous Failure</a> | <a href='#failure118'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure118'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-172699.js'>js1_5/Regress/regress-172699.js</a> failed</b> <br>
  + [ <a href='#failure117'>Previous Failure</a> | <a href='#failure119'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 62: URIError - URI error<br>
   </tt><br>
  -<a name='failure118'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-179524.js'>js1_5/Regress/regress-179524.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=179524' target='other_window'>Bug Number 179524</a><br>
  - [ <a href='#failure117'>Previous Failure</a> | <a href='#failure119'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure119'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-179524.js'>js1_5/Regress/regress-179524.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=179524' target='other_window'>Bug Number 179524</a><br>
  + [ <a href='#failure118'>Previous Failure</a> | <a href='#failure120'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Don't crash on extraneous arguments to str.match(), etc.<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 14 of test -<br>
  @@ -1619,16 +1626,16 @@
   --> FAILED!: [reported from test()] Expected value 'SHOULD HAVE FALLEN INTO CATCH-BLOCK!', Actual value 'ABC Zbc'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure119'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-185165.js'>js1_5/Regress/regress-185165.js</a> failed</b> <br>
  - [ <a href='#failure118'>Previous Failure</a> | <a href='#failure120'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure120'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-185165.js'>js1_5/Regress/regress-185165.js</a> failed</b> <br>
  + [ <a href='#failure119'>Previous Failure</a> | <a href='#failure121'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   yylex: ERROR.<br>
   Exception, line 3: SyntaxError - Parse error<br>
   </tt><br>
  -<a name='failure120'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-44009.js'>js1_5/Regress/regress-44009.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=44009' target='other_window'>Bug Number 44009</a><br>
  - [ <a href='#failure119'>Previous Failure</a> | <a href='#failure121'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure121'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-44009.js'>js1_5/Regress/regress-44009.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=44009' target='other_window'>Bug Number 44009</a><br>
  + [ <a href='#failure120'>Previous Failure</a> | <a href='#failure122'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
  @@ -1636,8 +1643,8 @@
   --> STATUS: Testing that we don't crash on obj.toSource()<br>
   Exception, line 61: TypeError - Value undefined (result of expression obj.toSource) is not object.<br>
   </tt><br>
  -<a name='failure121'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-68498-003.js'>js1_5/Regress/regress-68498-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=68498' target='other_window'>Bug Number 68498</a><br>
  - [ <a href='#failure120'>Previous Failure</a> | <a href='#failure122'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure122'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-68498-003.js'>js1_5/Regress/regress-68498-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=68498' target='other_window'>Bug Number 68498</a><br>
  + [ <a href='#failure121'>Previous Failure</a> | <a href='#failure123'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing calling obj.eval(str)<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Testing calling obj.eval(str); currently at expect[1] within test -<br>
  @@ -1645,16 +1652,16 @@
   --> FAILED!: [reported from test()] Expected value '43', Actual value 'false'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure122'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-96128-n.js'>js1_5/Regress/regress-96128-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=96128' target='other_window'>Bug Number 96128</a><br>
  - [ <a href='#failure121'>Previous Failure</a> | <a href='#failure123'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure123'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-96128-n.js'>js1_5/Regress/regress-96128-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=96128' target='other_window'>Bug Number 96128</a><br>
  + [ <a href='#failure122'>Previous Failure</a> | <a href='#failure124'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 3, got 0<br>
   Testcase terminated with signal 11<br>
   Complete testcase output was:<br>
   --> BUGNUMBER: 96128<br>
   --> STATUS: Testing that JS infinite recursion protection works<br>
   </tt><br>
  -<a name='failure123'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/regress-185485.js'>js1_5/Scope/regress-185485.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=185485' target='other_window'>Bug Number 185485</a><br>
  - [ <a href='#failure122'>Previous Failure</a> | <a href='#failure124'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure124'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/regress-185485.js'>js1_5/Scope/regress-185485.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=185485' target='other_window'>Bug Number 185485</a><br>
  + [ <a href='#failure123'>Previous Failure</a> | <a href='#failure125'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing |with (x) {function f() {}}| when |x.f| already exists<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Section 2 of test -<br>
  @@ -1669,15 +1676,15 @@
   --> FAILED!: [reported from test()] }', Actual value '0'<br>
   --> FAILED!: [reported from test()] <br>
   </tt><br>
  -<a name='failure124'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/regress-220584.js'>js1_5/Scope/regress-220584.js</a> failed</b> <br>
  - [ <a href='#failure123'>Previous Failure</a> | <a href='#failure125'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure125'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/regress-220584.js'>js1_5/Scope/regress-220584.js</a> failed</b> <br>
  + [ <a href='#failure124'>Previous Failure</a> | <a href='#failure126'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>Expected exit code 0, got 3<br>
   Testcase terminated with signal 0<br>
   Complete testcase output was:<br>
   Exception, line 57: TypeError - Object  (result of expression Script) does not allow calls.<br>
   </tt><br>
  -<a name='failure125'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/scope-001.js'>js1_5/Scope/scope-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=53268' target='other_window'>Bug Number 53268</a><br>
  - [ <a href='#failure124'>Previous Failure</a> | <a href='#failure126'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
  +<a name='failure126'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/scope-001.js'>js1_5/Scope/scope-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=53268' target='other_window'>Bug Number 53268</a><br>
  + [ <a href='#failure125'>Previous Failure</a> | <a href='#failure127'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
   <tt>--> STATUS: Testing scope after changing obj.__proto__<br>
   Failure messages were:<br>
   --> FAILED!: [reported from test()] Step 1:  setting obj.__proto__ = global object<br>
  @@ -1694,9 +1701,9 @@
   <pre>
   <a name='retest_list'></a>
   <h2>Retest List</h2><br>
  -# Retest List, kjs, generated Tue Jun 28 15:33:19 2005.
  +# Retest List, kjs, generated Wed Jun 29 13:20:02 2005.
   # Original test base was: All tests.
  -# 962 of 967 test(s) were completed, 125 failures reported.
  +# 962 of 967 test(s) were completed, 126 failures reported.
   ecma/GlobalObject/15.1.2.2-2.js
   ecma/LexicalConventions/7.7.3-1.js
   ecma/Statements/12.7-1-n.js
  @@ -1715,6 +1722,7 @@
   ecma_2/RegExp/unicode-001.js
   ecma_2/Statements/try-003.js
   ecma_3/Array/15.4.4.3-1.js
  +ecma_3/Date/15.9.5.5.js
   ecma_3/Date/15.9.5.7.js
   ecma_3/Exceptions/15.11.1.1.js
   ecma_3/Exceptions/15.11.4.4-1.js
  
  
  



More information about the webkit-changes mailing list