Document the changes to sys.inspect's API.
authorTim Caswell <tim@creationix.com>
Tue, 9 Feb 2010 17:15:02 +0000 (11:15 -0600)
committerRyan Dahl <ry@tinyclouds.org>
Tue, 9 Feb 2010 17:20:15 +0000 (09:20 -0800)
It now takes an optional showHidden argument that shows hidden/non-enumerable properties of objects.

Also cleanup the lib/sys.js file a bit.

doc/api.txt
lib/sys.js

index 89995e9..2eeea99 100644 (file)
@@ -208,8 +208,8 @@ Like +puts()+ but without the trailing new-line.
 A synchronous output function. Will block the process and
 output the string immediately to stdout.
 
-+inspect(object)+ ::
-Return a string representation of the +object+. (For debugging.)
++inspect(object, showHidden)+ ::
+Return a string representation of the +object+. (For debugging.)  If showHidden is true, then the object's non-enumerable properties will be shown too.
 
 +exec(command)+::
 Executes the command as a child process, buffers the output and returns it
index f39a7cf..461a12c 100644 (file)
@@ -26,7 +26,6 @@ exports.error = function (x) {
 exports.inspect = function (obj, showHidden) {
   var seen = [];
   function format(value) {
-    var keys, visible_keys, base, type, braces;
     // Primitive types cannot have properties
     switch (typeof value) {
       case 'undefined': return 'undefined';
@@ -40,10 +39,10 @@ exports.inspect = function (obj, showHidden) {
     }
 
     // Look up the keys of the object.
-    keys = showHidden ? Object.getOwnPropertyNames(value).map(function (key) {
+    var keys = showHidden ? Object.getOwnPropertyNames(value).map(function (key) {
       return '' + key;
     }) : Object.keys(value);
-    visible_keys = Object.keys(value);
+    var visible_keys = Object.keys(value);
 
     // Functions without properties can be shortcutted.
     if (typeof value === 'function' && keys.length === 0) {
@@ -54,6 +53,7 @@ exports.inspect = function (obj, showHidden) {
       }
     }
 
+    var base, type, braces;
     // Determine the object type
     if (value instanceof Array) {
       type = 'Array';
@@ -160,4 +160,3 @@ exports.exec = function (command) {
  */
 exports.inherits = process.inherits;
 
-// Object.create(null, {name: {value: "Tim", enumerable: true}})
\ No newline at end of file