diff --git a/builtin_date.go b/builtin_date.go index a5cb2da..cf67009 100644 --- a/builtin_date.go +++ b/builtin_date.go @@ -30,6 +30,14 @@ func builtinDate_toUTCString(call FunctionCall) Value { return toValue(date.Time().Format(time_.RFC1123)) } +func builtinDate_toGMTString(call FunctionCall) Value { + date := dateObjectOf(call.thisObject()) + if date.isNaN { + return toValue("Invalid Date") + } + return toValue(date.Time().Format("Mon, 02 Jan 2006 15:04:05 GMT")) +} + func builtinDate_getTime(call FunctionCall) Value { date := dateObjectOf(call.thisObject()) if date.isNaN { diff --git a/date_test.go b/date_test.go index 8b93d31..30e663f 100644 --- a/date_test.go +++ b/date_test.go @@ -19,6 +19,7 @@ func TestDate(t *testing.T) { test(`Date`, "[function]") test(`new Date(0).toUTCString()`, "Thu, 01 Jan 1970 00:00:00 UTC") + test(`new Date(0).toGMTString()`, "Thu, 01 Jan 1970 00:00:00 GMT") if false { // TODO test(`new Date(0).toLocaleString()`, "") diff --git a/global.go b/global.go index fab0c4a..091c79a 100644 --- a/global.go +++ b/global.go @@ -348,6 +348,7 @@ func newContext() *_runtime { self.Global.DatePrototype, "toString", 0, builtinDate_toString, "toUTCString", 0, builtinDate_toUTCString, + "toGMTString", 0, builtinDate_toGMTString, "toLocaleString", 0, builtinDate_toLocaleString, "toLocaleDateString", 0, builtinDate_toLocaleDateString, "toLocaleTimeString", 0, builtinDate_toLocaleTimeString,