Gary Guo (2015-01-31T06:03:17.000Z)
Are the checks for these internal slots continuing to exist? Or shall we just set the @@toStringTag on their prototype and drop these steps.


For example:
If the this value is undefined, return "[object Undefined]".
If the this value is null, return "[object Null]".
If O has an [[ParameterMap]] internal slot, let builtinTag be "Arguments".          
Else, let builtinTag be "Object".
Let tag be the result of GetV (O, @@toStringTag).
ReturnIfAbrupt(tag).
If tag is undefined, let tag be builtinTag.
Else, If Type(tag) is not String, let tag be "???".
Return the String value that is the result of concatenating the three Strings "[object ", tag, and "]".

Under the condition that Object.prototype[@@toStringTag], String.prototype[@@toStringTag]], etc are properly set.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150131/7edcd450/attachment-0001.html>
-------------- next part --------------
_______________________________________________
es-discuss mailing list
es-discuss at mozilla.org
https://mail.mozilla.org/listinfo/es-discuss
d at domenic.me (2015-02-17T19:12:27.486Z)
Are the checks for these internal slots continuing to exist? Or shall we just set the @@toStringTag on their prototype and drop these steps.


For example:

1. If the this value is undefined, return "[object Undefined]".
1. If the this value is null, return "[object Null]".
1. If O has an [[ParameterMap]] internal slot, let builtinTag be "Arguments".          
1. Else, let builtinTag be "Object".
1. Let tag be the result of GetV (O, @@toStringTag).
1. ReturnIfAbrupt(tag).
1. If tag is undefined, let tag be builtinTag.
1. Else, If Type(tag) is not String, let tag be "???".
1. Return the String value that is the result of concatenating the three Strings "[object ", tag, and "]".

Under the condition that Object.prototype[@@toStringTag], String.prototype[@@toStringTag], etc are properly set.