- From: Mark S. Miller <erights@google.com>
- Date: Thu, 4 Dec 2014 08:49:34 -0800
- To: Boris Zbarsky <bzbarsky@mit.edu>
- Cc: es-discuss <es-discuss@mozilla.org>, "public-script-coord@w3.org" <public-script-coord@w3.org>, Domenic Denicola <domenic@domenicdenicola.com>
On Thu, Dec 4, 2014 at 2:58 AM, Boris Zbarsky <bzbarsky@mit.edu> wrote: > On 11/30/14, 6:12 PM, Mark S. Miller wrote: >> >> On Sun, Nov 30, 2014 at 12:21 PM, Boris Zbarsky <bzbarsky@mit.edu> wrote: >>> >>> Per spec ES6, it seems to me like attempting to define a non-configurable >>> property on a WindowProxy should throw and getting a property descriptor >>> for >>> a non-configurable property that got defined on the Window (e.g. via >>> "var") >>> should report it as configurable. >> >> >> Yes, both of these conclusions are correct. > > > OK. What do we do if we discover that throwing from the defineProperty call > with a non-configurable property descriptor is not web-compatible? What we always do, for example, when we found that having Object.prototype.toString.call(null) throw was not web compatible. We look into the specifics of the incompatibility encountered and design a non-web-breaking workaround that is least painful for the semantics we desire. For example, in this case, we changed it to return "[object Null]" even though that string itself had never previously been returned. The specific web compatibility we encountered for this case merely required a non-throw. It did not care what the contents of the string were. This outcome could not have been predicted from first principles. Other times, as when we found that introducing a new global variable named "JSON" was not web compatible, we found we could evangelize the origin of that incompatibility to fix it at the source, rather than change the spec. > I'm > going to try doing it in Firefox, and would welcome other UAs doing it ASAP > to figure out whether we're in that situation. Excellent! Bravo! > > -Boris -- Cheers, --MarkM
Received on Thursday, 4 December 2014 16:50:01 UTC