[Harmony Proxies] Proposal: Property fixing
Mark S. Miller
erights at google.com
Thu May 12 17:11:23 PDT 2011
On Thu, May 12, 2011 at 4:20 PM, Cameron McCormack <cam at mcc.id.au> 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
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
--
Cheers,
--MarkM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20110512/bf0369a1/attachment.html>
More information about the es-discuss
mailing list