On Jun 12, 2014, at 8:24 AM, Mark Miller wrote:
> On Thu, Jun 12, 2014 at 8:19 AM, Allen Wirfs-Brock <[email protected]>
> wrote:
>
> Fortunately there aren't very many of those. I think it is only Date and
> RegExp that have this issue among the ES6 built-ins
>
> WeakMap, Map, Set, others?
Nope, they don't even have custom toString methods.
>
> The real problem includes ES6 classes as well. Whatever fix we choose, it
> should apply there as well -- not that I have a concrete proposal. This one's
> a real puzzler.
By default they just inherit up the prototype chain, typically to
Object.prototype.toSring
If a JS programmer chooses to over-ride toString, then it becomes their problem.
The same best practice should be taught to them too, if you are going to do a
branding check in a toString method you should fall back to the default object
behavior:
class MyClass {
toString() {
if (!myBrand(this)) return super.toString();
...
}
}
We can't do this for them because there is no universal branding concept we can
apply for them.
Allen
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss