Fix invalid String#indexOf test in a coercible Date instance

Fixes #793

As described by @ediosyncratic:

Date(0) flows through the given algorithm to ToDateString, which should:

> Return an implementation-dependent String value that represents tv as
> a date and time in the current time zone using a convenient, human-readable form.

The string is implementation-dependent and there is nothing constraining it to use
a two-digit day-of-month (so "Thu Jan 1, 1970, 0:0:0" would be valid), much less to
position it at index 8.
This commit is contained in:
Leonardo Balter 2017-03-13 19:07:06 -04:00
parent 2c1aed0db6
commit a7ee8fb735
No known key found for this signature in database
GPG Key ID: 4191D7EB5EC82FF7
1 changed files with 0 additions and 20 deletions

View File

@ -1,20 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
info: String.prototype.indexOf(searchString, position)
es5id: 15.5.4.7_A1_T11
description: Instance is Date(0) object
---*/
var __instance = new Date(0);
__instance.indexOf = String.prototype.indexOf;
//////////////////////////////////////////////////////////////////////////////
//CHECK#1
if ((__instance.getTimezoneOffset()>0 ? __instance.indexOf('31') : __instance.indexOf('01')) !== 8) {
$ERROR('#1: __instance = new Date(0); __instance.indexOf = String.prototype.indexOf; (__instance.getTimezoneOffset()>0 ? __instance.indexOf(\'31\') : __instance.indexOf(\'01\')) === 8. Actual: '+(__instance.getTimezoneOffset()>0 ? __instance.indexOf('31') : __instance.indexOf('01')) );
}
//
//////////////////////////////////////////////////////////////////////////////