Update! [2007/03/27] to know if a generic object is cracked we don't need to create a new instance of its constructor. The fastest, safest and correct way is just to know if this object is an instance of its constructor. return o instanceof o.constructor ? o.constructor : undefined; Just fixed the Constructor function ;) I'm absolutely a JavaScript noob! Just today I "discovered" that a generic object constructor is not a read-only parameter and I based a lot of conversions with constructor parameter! What a news for me, I can't believe that every kind of object, except for primitive vairables such String, Boolean and Number, could be modified in this way: function MyObj(){}; var obj = new MyObj, str = new String("test"), sts = "test"; obj.constructor = Array; str.constructor = Array; sts.constructor = Array; alert([ obj.constructor === Array, str.constructor === Array, sts.constructor === Array ]); // true, true, false What does it me...