javascript:function yn(v) { return v ? "yes" : "no"; }; function c() { }; delete c.prototype.constructor; var i = new c(); var res = (i.constructor !== Object.prototype.constructor); var allres = !res; var msg = "DontDelete: " + yn(res) + "\n"; function g() { }; g.prototype.constructor = 17; var i2 = new g(); res = (i2.constructor !== 17); allres = allres && !res; msg += "ReadOnly: " + yn(res) + "\n"; function h() { }; res = true; for (var prop in new h()) { if (prop == "constructor") res = false; }; msg += "DontEnum: " + yn(res); allres = allres && res; alert("Function.prototype.constructor attribute checks " + (allres ? "PASS" : "FAIL") + "\n" + msg);