sys.inspect(Date) now shows the date value
authorMark Hansen <mark@markhansen.co.nz>
Sun, 14 Feb 2010 12:11:59 +0000 (01:11 +1300)
committerRyan Dahl <ry@tinyclouds.org>
Tue, 16 Feb 2010 01:08:22 +0000 (17:08 -0800)
lib/sys.js
test/mjsunit/test-sys.js

index 581af38..65badcd 100644 (file)
@@ -59,6 +59,11 @@ exports.inspect = function (obj, showHidden) {
       }
     }
 
+    // Dates without properties can be shortcutted
+    if (value instanceof Date && keys.length === 0) {
+        return value.toUTCString();
+    }
+
     var base, type, braces;
     // Determine the object type
     if (value instanceof Array) {
@@ -75,6 +80,11 @@ exports.inspect = function (obj, showHidden) {
     } else {
       base = "";
     }
+    
+    // Make dates with properties first say the date
+    if (value instanceof Date) {
+      base = ' ' + value.toUTCString();
+    }
 
     seen.push(value);
 
index 6ba2157..648452b 100644 (file)
@@ -10,6 +10,8 @@ assert.equal("[Function]", inspect(function() {}));
 assert.equal('undefined', inspect(undefined));
 assert.equal('null', inspect(null));
 assert.equal('/foo(bar\\n)?/gi', inspect(/foo(bar\n)?/gi));
+assert.equal('Sun, 14 Feb 2010 11:48:40 GMT',
+        inspect(new Date("Sun, 14 Feb 2010 11:48:40 GMT")));
 
 assert.equal("\"\\n\\u0001\"", inspect("\n\u0001"));
 
@@ -79,3 +81,11 @@ assert.equal(
   "{ /123/gi\n \"aprop\": 42\n}",
   inspect(value)
 );
+
+// Dates with properties
+value = new Date("Sun, 14 Feb 2010 11:48:40 GMT");
+value.aprop = 42;
+assert.equal(
+  "{ Sun, 14 Feb 2010 11:48:40 GMT\n \"aprop\": 42\n}",
+  inspect(value)
+);