michael@0: // uneval works on objects with no callable .toSource method. michael@0: michael@0: var obj = Object.create(null); michael@0: assertEq(uneval(obj), "({})"); michael@0: assertEq(Function.prototype.toSource.call(obj), "({})"); michael@0: obj.x = 1; michael@0: obj.y = 2; michael@0: assertEq(uneval(obj), "({x:1, y:2})"); michael@0: michael@0: var d = new Date(); michael@0: delete Date.prototype.toSource; michael@0: assertEq(uneval(d), "({})"); michael@0: michael@0: delete Object.prototype.toSource; michael@0: assertEq(uneval({p: 2+2}), "({p:4})"); michael@0: michael@0: assertEq(uneval({toSource: [0]}), "({toSource:[0]})");