Erik Arvidsson wrote: > This can either be done by exposing an object that has the same > interface as Date. This could throw on set or it could skip the set > methods entirely. If you want instanceof to work then all the methods > needs to be overridden.
Overriding the methods on a real date object (or one that inherits from Date but was constructed with the Date constructor) won't work because then Date.prototype.set* methods would still be able to mutate the internal date by calling them explicitly: var readOnlyDate = getReadOnlyDate(); readOnlyDate.setHours !== Date.prototype.setHours; // => true Date.prototype.setHours.call(readOnlyDate, 2); // oops Also, I don't think `insanceof` should be used to check Dates. If Object.prototype.toString is used, the object just needs to be tagged as a "Date" and the function used to determine whether an object is a date needs to take into consideration "~Date" as well. Nathan _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss