Allen (cc-ed) changed symbols back to objects in draft rev 16
(https://bugs.ecmascript.org/show_bug.cgi?id=1546#c2), so I guess
Object(x) will still work in ES6 to test for object types.
- André
I see. That's unpleasant. In ES5, Object(x) can never throw, and so the
code paths using |x === Object(x)| are not prepared for a throw. Much old
code will break.
On Mon, Jul 15, 2013 at 8:01 AM, Jeremy Martin <jmar777 at gmail.com
<https://mail.mozilla.org/listinfo/es-discuss>> wrote:
>/ > s === Object(s)
/>/
/>/ This should throw a TypeError. In the case of a Symbol, `Object(*value*)`
/>/ results in `ToObject(*value*)` [1]. And, in the case of Symbol, ToObject
/>/ should throw a TypeError [2].
/>/
/>/ [1]http://people.mozilla.org/~jorendorff/es6-draft.html#sec-15.2.1.1
<http://people.mozilla.org/%7Ejorendorff/es6-draft.html#sec-15.2.1.1>
/>/ [2]http://people.mozilla.org/~jorendorff/es6-draft.html#sec-9.1.9
<http://people.mozilla.org/%7Ejorendorff/es6-draft.html#sec-9.1.9>
/>/
/>/ On Mon, Jul 15, 2013 at 10:48 AM, Mark S. Miller <erights at google.com
<https://mail.mozilla.org/listinfo/es-discuss>>wrote:
/>/
/>>/ Given that s is a Symbol and b is a Bignum, is
/>>/
/>>/ s === Object(s)
/>>/
/>>/ ?
/>>/
/>>/ Is
/>>/
/>>/ b === Object(b)
/>>/
/>>/ ?
/>>/
/>>/ The reason I ask is that x === Object(x) is often used to distinguish
/>>/ primitive values from objects. The other thing that's often used is
typeof,
/>>/ but these uses of typeof usually assume that the full range of possible
/>>/ answers is already known. If we're going to be expanding the typeof
/>>/ answers, then we need guidance on how to write this test now (es5) such
/>>/ that it stays robust.
/>>/
/>>/
/>>/ --
/>>/ Cheers,
/>>/ --MarkM// <https://mail.mozilla.org/listinfo/es-discuss>
/>>/
/>>/
/>/ --
/>/ Jeremy Martin
/>/ 661.312.3853
/>/ http://devsmash.com
/>/ @jmar777
/>/
/
--
Cheers,
--MarkM
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss