Allen Wirfs-Brock wrote:
Line 5.c.v is dealing with the ES5 requirement that "host objects" not reuse the listed [[Class]] values for anything other than the specified built-ins. This version of toStrimg extends the spirit to that restriction to all user or implementation defined tag values. It does this by prepending a "~" in front of those values if they appear as a tag value. Note that ES5.1 includes "Object" in this list so I also included it. But, I actually think it probably should be in the censored list.

This is weird.

ES5 wanted to help SES and similar languages use some kind of

  original_Object_prototype_toString_call(anyObject).slice(8,-1)

and not be subject to spoofing.

Adding @@toStringTag to enable DOM self-hosting runs directly counter to this goal.

Prefixing "~" to core-language built-in classes (save "Object"?) does not resolve the conflict if there are spoofing hazards in other built-ins such as DOM objects as typically implemented in browsers.

Mark, can you weigh in? I had not heard of this "~"-prefixing idea.

/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to