Re: an idea for replacing arguments.length

On Mon, Nov 11, 2013 at 9:21 AM, Allen Wirfs-Brock
<allen@wirfs-brock.com> wrote:
> On Nov 11, 2013, at 6:10 AM, Mark S. Miller wrote:
>> On Sun, Nov 10, 2013 at 11:33 PM, Corey Frang <gnarf37@gmail.com> wrote:
>>> Just to provide another way of working around it:
>>>
>>> var empty = {}; // or even a symbol?
>>>
>>> function splice(start = empty, count = 0, ...items) {
>>>   if (start === empty) { ...
>>> }
>>
>> That is excellent! Has all the upsides of the best of the other proposals
>> and none of the downsides.
>
> No, this doesn't work because then both
>      [1,2,3].splice()
>      [1.2.3].splice(undefined)
>
> will both result in start === empty.  But for web compatibility they must be
> treated differently.

Right.  The one and only way to test for missing args different from
undefined is to use a rest arg and test length, as demonstrated
earlier in this thread.

~TJ

Received on Monday, 11 November 2013 17:37:52 UTC