On Jun 11, 2014, at 11:59 AM, Rick Waldron wrote: > > > > On Wed, Jun 11, 2014 at 1:37 PM, Domenic Denicola > <[email protected]> wrote: > It's also deceptive: it makes you think `Array.of` and `Array.from` are > functions, when in reality they are definitely methods. > > Yes, you're right. > > > What about Array subclasses? `from` and `of` are "inherited" when Array is > subclassed, so these: > > 22.1.2.3 4 & 5 > (http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.of) > 22.1.2.1 8.a & 8.b > (http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from) > 22.1.2.1 13 & 14 > > Which are are how `from` and `of` determine what to construct, will be > replaced with a single step, being one of: > > Let A be the result of calling the [[Construct]] internal method of C with an > empty argument list. > Let A be the result of calling the [[Construct]] internal method of C with an > argument list containing the single item len. > > But surely this step will also have to be guarded by IsCallable(this), which > that means this: > > If IsConstructor(C) is true, then > Let A be the result of calling the [[Construct]] internal method of C with > an empty argument list. > Else, > Let A be ArrayCreate(0). > > Becomes: > > If IsCallable(C) is true, then
that's not an adequate guard, be an object can be callable but not have a [[Construct]] internal method so the next step not be valid > Let A be the result of calling the [[Construct]] internal method of C with > an empty argument list. > Else, > Let A be ArrayCreate(0).
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

