1# Copyright 2013 the V8 project authors. All rights reserved. 2# Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions 6# are met: 7# 1. Redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer. 9# 2. Redistributions in binary form must reproduce the above copyright 10# notice, this list of conditions and the following disclaimer in the 11# documentation and/or other materials provided with the distribution. 12# 13# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY 14# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY 17# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 18# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 20# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 22# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 24test of JavaScript date parsing (comments in parentheses) 25 26On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". 27 28 29PASS Date.parse("Dec ((27) 26 (24)) 25 1995 1:30 PM UTC") == 819898200000 is true 30PASS Date.parse("DEC ((27) 26 (24)) 25 1995 1:30 PM UTC") == 819898200000 is true 31PASS Date.parse("dec ((27) 26 (24)) 25 1995 1:30 pm utc") == 819898200000 is true 32PASS Date.parse("Dec 25 1995 1:30 PM UTC (") == 819898200000 is true 33PASS Date.parse("DEC 25 1995 1:30 PM UTC (") == 819898200000 is true 34PASS Date.parse("dec 25 1995 1:30 pm utc (") == 819898200000 is true 35PASS Date.parse("Dec 25 1995 1:30 (PM)) UTC") is NaN 36PASS Date.parse("DEC 25 1995 1:30 (PM)) UTC") is NaN 37PASS Date.parse("dec 25 1995 1:30 (pm)) utc") is NaN 38PASS Date.parse("(Nov) Dec (24) 25 (26) 1995 (1996) GMT (EST)") == 819849600000 is true 39PASS Date.parse("(NOV) DEC (24) 25 (26) 1995 (1996) GMT (EST)") == 819849600000 is true 40PASS Date.parse("(nov) dec (24) 25 (26) 1995 (1996) gmt (est)") == 819849600000 is true 41PASS Date.parse("(Nov) Dec (24) 25 (26) 1995 (1996)") == 819849600000 + timeZoneOffset is true 42PASS Date.parse("(NOV) DEC (24) 25 (26) 1995 (1996)") == 819849600000 + timeZoneOffset is true 43PASS Date.parse("(nov) dec (24) 25 (26) 1995 (1996)") == 819849600000 + timeZoneOffset is true 44PASS Date.parse("(Nov) Dec (24) 25 (26) 1995 (1996) 1:30 (1:40) GMT (EST)") == 819855000000 is true 45PASS Date.parse("(NOV) DEC (24) 25 (26) 1995 (1996) 1:30 (1:40) GMT (EST)") == 819855000000 is true 46PASS Date.parse("(nov) dec (24) 25 (26) 1995 (1996) 1:30 (1:40) gmt (est)") == 819855000000 is true 47PASS Date.parse("(Nov) Dec (24) 25 (26) 1995 (1996) 1:30 (1:40)") == 819855000000 + timeZoneOffset is true 48PASS Date.parse("(NOV) DEC (24) 25 (26) 1995 (1996) 1:30 (1:40)") == 819855000000 + timeZoneOffset is true 49PASS Date.parse("(nov) dec (24) 25 (26) 1995 (1996) 1:30 (1:40)") == 819855000000 + timeZoneOffset is true 50PASS Date.parse("(Nov) Dec (24) 25 (26) 1995 (1996) 1:30 ") == 819855000000 + timeZoneOffset is true 51PASS Date.parse("(NOV) DEC (24) 25 (26) 1995 (1996) 1:30 ") == 819855000000 + timeZoneOffset is true 52PASS Date.parse("(nov) dec (24) 25 (26) 1995 (1996) 1:30 ") == 819855000000 + timeZoneOffset is true 53PASS Date.parse("(Nov) Dec (24) 25 (26) 1995 (1996) 1:30 AM (1:40 PM) GMT (EST)") == 819855000000 is true 54PASS Date.parse("(NOV) DEC (24) 25 (26) 1995 (1996) 1:30 AM (1:40 PM) GMT (EST)") == 819855000000 is true 55PASS Date.parse("(nov) dec (24) 25 (26) 1995 (1996) 1:30 am (1:40 pm) gmt (est)") == 819855000000 is true 56PASS Date.parse("(Nov) Dec (24) 25 (26) 1995 (1996) 1:30 AM (1:40 PM)") == 819855000000 + timeZoneOffset is true 57PASS Date.parse("(NOV) DEC (24) 25 (26) 1995 (1996) 1:30 AM (1:40 PM)") == 819855000000 + timeZoneOffset is true 58PASS Date.parse("(nov) dec (24) 25 (26) 1995 (1996) 1:30 am (1:40 pm)") == 819855000000 + timeZoneOffset is true 59PASS Date.parse("Dec 25 1995 1:30( )AM (PM)") is NaN 60PASS Date.parse("DEC 25 1995 1:30( )AM (PM)") is NaN 61PASS Date.parse("dec 25 1995 1:30( )am (pm)") is NaN 62PASS Date.parse("Dec 25 1995 1:30 AM (PM)") == 819855000000 + timeZoneOffset is true 63PASS Date.parse("DEC 25 1995 1:30 AM (PM)") == 819855000000 + timeZoneOffset is true 64PASS Date.parse("dec 25 1995 1:30 am (pm)") == 819855000000 + timeZoneOffset is true 65PASS Date.parse("(Nov) Dec (24) 25 (26) 1995 (1996) 13:30 (13:40) GMT (PST)") == 819898200000 is true 66PASS Date.parse("(NOV) DEC (24) 25 (26) 1995 (1996) 13:30 (13:40) GMT (PST)") == 819898200000 is true 67PASS Date.parse("(nov) dec (24) 25 (26) 1995 (1996) 13:30 (13:40) gmt (pst)") == 819898200000 is true 68PASS Date.parse("(Nov) Dec (24) 25 (26) 1995 (1996) 13:30 (13:40)") == 819898200000 + timeZoneOffset is true 69PASS Date.parse("(NOV) DEC (24) 25 (26) 1995 (1996) 13:30 (13:40)") == 819898200000 + timeZoneOffset is true 70PASS Date.parse("(nov) dec (24) 25 (26) 1995 (1996) 13:30 (13:40)") == 819898200000 + timeZoneOffset is true 71PASS Date.parse("(Nov) Dec (24) 25 (26) 13:30 (13:40) 1995 (1996)") == 819898200000 + timeZoneOffset is true 72PASS Date.parse("(NOV) DEC (24) 25 (26) 13:30 (13:40) 1995 (1996)") == 819898200000 + timeZoneOffset is true 73PASS Date.parse("(nov) dec (24) 25 (26) 13:30 (13:40) 1995 (1996)") == 819898200000 + timeZoneOffset is true 74PASS Date.parse("(Nov) Dec (24) 25 (26) 1995 (1996) 13:30 (13:40) ") == 819898200000 + timeZoneOffset is true 75PASS Date.parse("(NOV) DEC (24) 25 (26) 1995 (1996) 13:30 (13:40) ") == 819898200000 + timeZoneOffset is true 76PASS Date.parse("(nov) dec (24) 25 (26) 1995 (1996) 13:30 (13:40) ") == 819898200000 + timeZoneOffset is true 77PASS Date.parse("(Nov) Dec (24) 25 (26) 1995 (1996) 1:30 (1:40) PM (AM) GMT (PST)") == 819898200000 is true 78PASS Date.parse("(NOV) DEC (24) 25 (26) 1995 (1996) 1:30 (1:40) PM (AM) GMT (PST)") == 819898200000 is true 79PASS Date.parse("(nov) dec (24) 25 (26) 1995 (1996) 1:30 (1:40) pm (am) gmt (pst)") == 819898200000 is true 80PASS Date.parse("(Nov) Dec (24) 25 (26) 1995 (1996) 1:30 (1:40) PM (AM)") == 819898200000 + timeZoneOffset is true 81PASS Date.parse("(NOV) DEC (24) 25 (26) 1995 (1996) 1:30 (1:40) PM (AM)") == 819898200000 + timeZoneOffset is true 82PASS Date.parse("(nov) dec (24) 25 (26) 1995 (1996) 1:30 (1:40) pm (am)") == 819898200000 + timeZoneOffset is true 83PASS Date.parse("Dec 25 1995 1:30(AM)PM") is NaN 84PASS Date.parse("DEC 25 1995 1:30(AM)PM") is NaN 85PASS Date.parse("dec 25 1995 1:30(am)pm") is NaN 86PASS Date.parse("Dec 25 1995 1:30 (AM)PM ") == 819898200000 + timeZoneOffset is true 87PASS Date.parse("DEC 25 1995 1:30 (AM)PM ") == 819898200000 + timeZoneOffset is true 88PASS Date.parse("dec 25 1995 1:30 (am)pm ") == 819898200000 + timeZoneOffset is true 89PASS Date.parse("Dec 25 1995 (PDT)UTC(PST)") == 819849600000 is true 90PASS Date.parse("DEC 25 1995 (PDT)UTC(PST)") == 819849600000 is true 91PASS Date.parse("dec 25 1995 (pdt)utc(pst)") == 819849600000 is true 92PASS Date.parse("Dec 25 1995 (PDT)UT(PST)") == 819849600000 is true 93PASS Date.parse("DEC 25 1995 (PDT)UT(PST)") == 819849600000 is true 94PASS Date.parse("dec 25 1995 (pdt)ut(pst)") == 819849600000 is true 95PASS Date.parse("Dec 25 1995 (UTC)PST(GMT)") == 819878400000 is true 96PASS Date.parse("DEC 25 1995 (UTC)PST(GMT)") == 819878400000 is true 97PASS Date.parse("dec 25 1995 (utc)pst(gmt)") == 819878400000 is true 98PASS Date.parse("Dec 25 1995 (UTC)PDT(GMT)") == 819874800000 is true 99PASS Date.parse("DEC 25 1995 (UTC)PDT(GMT)") == 819874800000 is true 100PASS Date.parse("dec 25 1995 (utc)pdt(gmt)") == 819874800000 is true 101PASS Date.parse("Dec 25 1995 1:30 (PDT)UTC(PST)") == 819855000000 is true 102PASS Date.parse("DEC 25 1995 1:30 (PDT)UTC(PST)") == 819855000000 is true 103PASS Date.parse("dec 25 1995 1:30 (pdt)utc(pst)") == 819855000000 is true 104PASS Date.parse("Dec 25 1995 1:30 (PDT)UT(PST)") == 819855000000 is true 105PASS Date.parse("DEC 25 1995 1:30 (PDT)UT(PST)") == 819855000000 is true 106PASS Date.parse("dec 25 1995 1:30 (pdt)ut(pst)") == 819855000000 is true 107PASS Date.parse("Dec 25 1995 1:30 (UTC)PST(GMT)") == 819883800000 is true 108PASS Date.parse("DEC 25 1995 1:30 (UTC)PST(GMT)") == 819883800000 is true 109PASS Date.parse("dec 25 1995 1:30 (utc)pst(gmt)") == 819883800000 is true 110PASS Date.parse("Dec 25 1995 1:30 (UTC)PDT(GMT)") == 819880200000 is true 111PASS Date.parse("DEC 25 1995 1:30 (UTC)PDT(GMT)") == 819880200000 is true 112PASS Date.parse("dec 25 1995 1:30 (utc)pdt(gmt)") == 819880200000 is true 113PASS Date.parse("Dec 25 1995 1:30 (AM) PM (PST) UTC") == 819898200000 is true 114PASS Date.parse("DEC 25 1995 1:30 (AM) PM (PST) UTC") == 819898200000 is true 115PASS Date.parse("dec 25 1995 1:30 (am) pm (pst) utc") == 819898200000 is true 116PASS Date.parse("Dec 25 1995 1:30 PM (AM) (PST) UT") == 819898200000 is true 117PASS Date.parse("DEC 25 1995 1:30 PM (AM) (PST) UT") == 819898200000 is true 118PASS Date.parse("dec 25 1995 1:30 pm (am) (pst) ut") == 819898200000 is true 119PASS Date.parse("Dec 25 1995 1:30 PM (AM) (UTC) PST") == 819927000000 is true 120PASS Date.parse("DEC 25 1995 1:30 PM (AM) (UTC) PST") == 819927000000 is true 121PASS Date.parse("dec 25 1995 1:30 pm (am) (utc) pst") == 819927000000 is true 122PASS Date.parse("Dec 25 1995 1:30 (AM) PM PDT (UTC)") == 819923400000 is true 123PASS Date.parse("DEC 25 1995 1:30 (AM) PM PDT (UTC)") == 819923400000 is true 124PASS Date.parse("dec 25 1995 1:30 (am) pm pdt (utc)") == 819923400000 is true 125PASS Date.parse("Dec 25 1995 XXX (GMT)") is NaN 126PASS Date.parse("DEC 25 1995 XXX (GMT)") is NaN 127PASS Date.parse("dec 25 1995 xxx (gmt)") is NaN 128PASS Date.parse("Dec 25 1995 1:30 XXX (GMT)") is NaN 129PASS Date.parse("DEC 25 1995 1:30 XXX (GMT)") is NaN 130PASS Date.parse("dec 25 1995 1:30 xxx (gmt)") is NaN 131PASS Date.parse("Dec 25 1995 1:30 U(TC)") is NaN 132PASS Date.parse("DEC 25 1995 1:30 U(TC)") is NaN 133PASS Date.parse("dec 25 1995 1:30 u(tc)") is NaN 134PASS Date.parse("Dec 25 1995 1:30 V(UTC)") is NaN 135PASS Date.parse("DEC 25 1995 1:30 V(UTC)") is NaN 136PASS Date.parse("dec 25 1995 1:30 v(utc)") is NaN 137PASS Date.parse("Dec 25 1995 1:30 (UTC)W") is NaN 138PASS Date.parse("DEC 25 1995 1:30 (UTC)W") is NaN 139PASS Date.parse("dec 25 1995 1:30 (utc)w") is NaN 140PASS Date.parse("Dec 25 1995 1:30 (GMT)X") is NaN 141PASS Date.parse("DEC 25 1995 1:30 (GMT)X") is NaN 142PASS Date.parse("dec 25 1995 1:30 (gmt)x") is NaN 143PASS Date.parse("Dec 25 1995 0:30 (PM) GMT") == 819851400000 is true 144PASS Date.parse("DEC 25 1995 0:30 (PM) GMT") == 819851400000 is true 145PASS Date.parse("dec 25 1995 0:30 (pm) gmt") == 819851400000 is true 146PASS Date.parse("Dec 25 1995 (1)0:30 AM GMT") == 819851400000 is true 147PASS Date.parse("DEC 25 1995 (1)0:30 AM GMT") == 819851400000 is true 148PASS Date.parse("dec 25 1995 (1)0:30 am gmt") == 819851400000 is true 149PASS Date.parse("Dec 25 1995 (1)0:30 PM GMT") == 819894600000 is true 150PASS Date.parse("DEC 25 1995 (1)0:30 PM GMT") == 819894600000 is true 151PASS Date.parse("dec 25 1995 (1)0:30 pm gmt") == 819894600000 is true 152PASS Date.parse("Anf(Dec) 25 1995 GMT") is NaN 153PASS Date.parse("ANF(DEC) 25 1995 GMT") is NaN 154PASS Date.parse("anf(dec) 25 1995 gmt") is NaN 155PASS Date.parse("(Sat) Wed (Nov) Dec (Nov) 25 1995 1:30 GMT") == 819855000000 is true 156PASS Date.parse("(SAT) WED (NOV) DEC (NOV) 25 1995 1:30 GMT") == 819855000000 is true 157PASS Date.parse("(sat) wed (nov) dec (nov) 25 1995 1:30 gmt") == 819855000000 is true 158PASS Date.parse("Wed (comment 1) (comment 2) Dec 25 1995 1:30 GMT") == 819855000000 is true 159PASS Date.parse("WED (COMMENT 1) (COMMENT 2) DEC 25 1995 1:30 GMT") == 819855000000 is true 160PASS Date.parse("wed (comment 1) (comment 2) dec 25 1995 1:30 gmt") == 819855000000 is true 161PASS Date.parse("Wed(comment 1) (comment 2) Dec 25 1995 1:30 GMT") == 819855000000 is true 162PASS Date.parse("WED(COMMENT 1) (COMMENT 2) DEC 25 1995 1:30 GMT") == 819855000000 is true 163PASS Date.parse("wed(comment 1) (comment 2) dec 25 1995 1:30 gmt") == 819855000000 is true 164PASS Date.parse("We(comment 1) (comment 2) Dec 25 1995 1:30 GMT") == 819855000000 is true 165PASS Date.parse("WE(COMMENT 1) (COMMENT 2) DEC 25 1995 1:30 GMT") == 819855000000 is true 166PASS Date.parse("we(comment 1) (comment 2) dec 25 1995 1:30 gmt") == 819855000000 is true 167PASS successfullyParsed is true 168 169TEST COMPLETE 170 171