Mark S. Miller (2013-07-15T15:39:23.000Z)
Object(undefined) would still not throw:
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-15.2.1.1 step 1


On Mon, Jul 15, 2013 at 8:37 AM, Jeremy Martin <jmar777 at gmail.com> wrote:

> > That's unpleasant. [...] Much old code will break.
>
> Indeed.  I hadn't actually noticed that change until just now.  It looks
> like ES6 code can take advantage of Object.isObject(), which seems to
> delegate the work to Type(*x*) [1].  It wasn't overwhelmingly clear to
> me, but I would assume `Object.isObject('foo') === false` and
> `Object.isObject(new String('foo')) === true`.
>
> Has anyone surveyed/looked into what the fallout of throwing on stuff like
> `Object(undefined)` will be?
>
> [1] http://people.mozilla.org/~jorendorff/es6-draft.html#sec-8
>
> On Mon, Jul 15, 2013 at 11:09 AM, Mark S. Miller <erights at google.com>wrote:
>
>> 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> 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
>>> [2] http://people.mozilla.org/~jorendorff/es6-draft.html#sec-9.1.9
>>>
>>> On Mon, Jul 15, 2013 at 10:48 AM, Mark S. Miller <erights at google.com>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
>>>>
>>>> _______________________________________________
>>>> es-discuss mailing list
>>>> es-discuss at mozilla.org
>>>> https://mail.mozilla.org/listinfo/es-discuss
>>>>
>>>>
>>>
>>>
>>> --
>>> Jeremy Martin
>>> 661.312.3853
>>> http://devsmash.com
>>> @jmar777
>>>
>>
>>
>>
>> --
>>     Cheers,
>>     --MarkM
>>
>
>
>
> --
> Jeremy Martin
> 661.312.3853
> http://devsmash.com
> @jmar777
>



-- 
    Cheers,
    --MarkM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20130715/70992930/attachment-0001.html>
domenic at domenicdenicola.com (2013-07-23T17:38:09.485Z)
`Object(undefined)` would still not throw:
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-15.2.1.1 step 1