Date.parse() fix
Harri Porten
porten@trolltech.com
Mon, 13 Jan 2003 21:18:27 +0100 (CET)
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.
---397395163-355823342-1042389474=:8175
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.10.10301121738191.8175@lupinella.troll.no>
[repeated attempt to get this mail through the spam filter]
Hi !
Inspired by Safari's fix for Date.parse() (return NaN rather than
undefined on non-string arguments) I realized that the type check was
wrong in the first place. The toString() conversion has to performed first
in call cases as somebody might pass e.g. a new'ed String object to the
function.
Attached you'll find a patch which also results in a tiny performance
optimization as a String conversion is avoided. It might not apply cleanly
against the JavaScriptCore sources but I'm sure you'll get the idea. Newly
added tests can be found here:
http://webcvs.kde.org/cgi-bin/cvsweb.cgi/khtmltests/js/Date.js
Harri.
---397395163-355823342-1042389474=:8175
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="date_object.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.10301121737540.8175@lupinella.troll.no>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME="date_object.diff"
SW5kZXg6IGRhdGVfb2JqZWN0LmNwcA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KUkNTIGZpbGU6IC9ob21lL2tkZS9rZGVsaWJzL2tqcy9kYXRlX29iamVj
dC5jcHAsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjYzDQpkaWZmIC11IC0z
IC1wIC1yMS42MyBkYXRlX29iamVjdC5jcHANCi0tLSBkYXRlX29iamVjdC5j
cHAJMTEgSmFuIDIwMDMgMTg6MDI6MTkgLTAwMDAJMS42Mw0KKysrIGRhdGVf
b2JqZWN0LmNwcAkxMSBKYW4gMjAwMyAxODozMToyMSAtMDAwMA0KQEAgLTQ1
NiwxMiArNDU2LDggQEAgYm9vbCBEYXRlT2JqZWN0RnVuY0ltcDo6aW1wbGVt
ZW50c0NhbGwoKQ0KIFZhbHVlIERhdGVPYmplY3RGdW5jSW1wOjpjYWxsKEV4
ZWNTdGF0ZSAqZXhlYywgT2JqZWN0ICYvKnRoaXNPYmoqLywgY29uc3QgTGlz
dCAmYXJncykNCiB7DQogICBpZiAoaWQgPT0gUGFyc2UpIHsNCi0gICAgaWYg
KGFyZ3NbMF0udHlwZSgpID09IFN0cmluZ1R5cGUpDQotICAgICAgcmV0dXJu
IHBhcnNlRGF0ZShhcmdzWzBdLnRvU3RyaW5nKGV4ZWMpKTsNCi0gICAgZWxz
ZQ0KLSAgICAgIHJldHVybiBVbmRlZmluZWQoKTsNCi0gIH0NCi0gIGVsc2Ug
eyAvLyBVVEMNCisgICAgcmV0dXJuIHBhcnNlRGF0ZShhcmdzWzBdLnRvU3Ry
aW5nKGV4ZWMpKTsNCisgIH0gZWxzZSB7IC8vIFVUQw0KICAgICBzdHJ1Y3Qg
dG0gdDsNCiAgICAgbWVtc2V0KCZ0LCAwLCBzaXplb2YodCkpOw0KICAgICBp
bnQgbiA9IGFyZ3Muc2l6ZSgpOw0KQEAgLTQ4MSw5ICs0NzcsOCBAQCBWYWx1
ZSBEYXRlT2JqZWN0RnVuY0ltcDo6Y2FsbChFeGVjU3RhdGUgDQogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiANCiANCi1WYWx1ZSBL
SlM6OnBhcnNlRGF0ZShjb25zdCBTdHJpbmcgJnMpDQorVmFsdWUgS0pTOjpw
YXJzZURhdGUoY29uc3QgVVN0cmluZyAmdSkNCiB7DQotICBVU3RyaW5nIHUg
PSBzLnZhbHVlKCk7DQogI2lmZGVmIEtKU19WRVJCT1NFDQogICBmcHJpbnRm
KHN0ZGVyciwiS0pTOjpwYXJzZURhdGUgJXNcbiIsdS5hc2NpaSgpKTsNCiAj
ZW5kaWYNCkBAIC01MDUsMTAgKzUwMCw3IEBAIFZhbHVlIEtKUzo6cGFyc2VE
YXRlKGNvbnN0IFN0cmluZyAmcykNCiAgIH0NCiAjZW5kaWYNCiANCi0gIGlm
ICggc2Vjb25kcyA9PSAtMSApDQotICAgIHJldHVybiBVbmRlZmluZWQoKTsN
Ci0gIGVsc2UNCi0gICAgcmV0dXJuIE51bWJlcihzZWNvbmRzICogMTAwMC4w
KTsNCisgIHJldHVybiBOdW1iZXIoc2Vjb25kcyA9PSAtMSA/IE5hTiA6IHNl
Y29uZHMgKiAxMDAwLjApOw0KIH0NCiANCiAvLy8vLyBBd2Z1bCBkdXBsaWNh
dGlvbiBmcm9tIGtyZmNkYXRlLmNwcCAtIHdlIGRvbid0IGxpbmsgdG8ga2Rl
Y29yZQ0KQEAgLTU4MCw3ICs1NzIsNyBAQCBkb3VibGUgS0pTOjpLUkZDRGF0
ZV9wYXJzZURhdGUoY29uc3QgVVN0DQogICAgICAvLw0KICAgICAgLy8gV2Ug
aWdub3JlIHRoZSB3ZWVrZGF5DQogICAgICAvLw0KLSAgICAgZG91YmxlIHJl
c3VsdCA9IDA7DQorICAgICBkb3VibGUgcmVzdWx0ID0gLTE7DQogICAgICBp
bnQgb2Zmc2V0ID0gMDsNCiAgICAgIGJvb2wgaGF2ZV90eiA9IGZhbHNlOw0K
ICAgICAgY2hhciAqbmV3UG9zU3RyOw0KSW5kZXg6IGRhdGVfb2JqZWN0LmgN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9rZGUv
a2RlbGlicy9ranMvZGF0ZV9vYmplY3QuaCx2DQpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMTkNCmRpZmYgLXUgLTMgLXAgLXIxLjE5IGRhdGVfb2JqZWN0LmgN
Ci0tLSBkYXRlX29iamVjdC5oCTExIEphbiAyMDAzIDE4OjAyOjE5IC0wMDAw
CTEuMTkNCisrKyBkYXRlX29iamVjdC5oCTExIEphbiAyMDAzIDE4OjMxOjIx
IC0wMDAwDQpAQCAtMTIwLDcgKzExOSw3IEBAIG5hbWVzcGFjZSBLSlMgew0K
ICAgfTsNCiANCiAgIC8vIGhlbHBlciBmdW5jdGlvbnMNCi0gIFZhbHVlIHBh
cnNlRGF0ZShjb25zdCBTdHJpbmcgJnMpOw0KKyAgVmFsdWUgcGFyc2VEYXRl
KGNvbnN0IFVTdHJpbmcgJnUpOw0KICAgZG91YmxlIEtSRkNEYXRlX3BhcnNl
RGF0ZShjb25zdCBVU3RyaW5nICZfZGF0ZSk7DQogICBWYWx1ZSB0aW1lQ2xp
cChjb25zdCBWYWx1ZSAmdCk7DQogICBpbnQgbG9jYWxfdGltZW9mZnNldCgp
Ow0K
---397395163-355823342-1042389474=:8175--