I would solve this by making a "deep copy" of what you are logging, and passing the copy to console.dir(). Something like this works pretty well:
function deep_copy(ref)
{
var r;
var i;
if(isHash(ref))
{
r = {};
for(i in ref)
r[i] = deep_copy(ref[i]);
}
else if(isArray(ref))
{
r = [];
for(i = 0; i < ref.length; i++)
r[i] = deep_copy(ref[i]);
}
else
{
r = ref;
}
return r;
}
If you don't want to bother with something like this, then using JSON.stringify
is a great workaround and won't be much slower if it's native in the browser.
console.dir(JSON.parse(JSON.stringify(o));