On Thu, May 12, 2011 at 4:20 PM, Cameron McCormack <[email protected]> wrote:
> Tom Van Cutsem: > > invariants that are enforced: > … > > - unconfigurable [[Class]] (Object or Function, respectively) > > Web IDL requires [[Class]] to take on values other than these two, for > example it should be "HTMLDivElement" for an HTMLDivElement object. I > have a feeling that the web requires this, as opposed to just having a > custom toString function. > > > http://google.com/codesearch?q=Object.prototype.toString.call+lang:javascript > brings up some libraries that use Object.prototype.toString on DOM > objects. > > Is it palatable to have proxies control [[Class]] or is there another > way we can help proxies over this hurdle? > Tom and I actually proposed this at an earlier EcmaScript meeting, for precisely this reason. Discussion revealed difficulties that led to increasing complexity, due to the use of [[Class]] as an internal nominal type test within the specification machinery. For example, all the Date methods implicitly test that their this.[[Class]] is "Date": 15.9.5: > a TypeError exception is thrown if the this value is not an > object for which the value of the [[Class]] internal property is "Date" Do we want a proxy to be able to pass this test? If so, do we want a proxy to be able to provide the internal properties that the Date methods access? At the time at least, the proposal for [[Class]] control went down in flames as such questions accumulated. In light of Allen's recent thinking about meta-objects and reflection, we can certainly revisit this, but please not at the May meeting ;). > -- > Cameron McCormack ≝ http://mcc.id.au/ > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss > -- Cheers, --MarkM
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

