Sorry for being late to the party. Is there a reason why we need to restrict the argArray to apply this much? I think it would be very useful to allow anything array like here.
-- erik 2009/1/15 Brendan Eich <[email protected]>: > On Jan 14, 2009, at 9:16 PM, Mark S. Miller wrote: > > On Wed, Jan 14, 2009 at 7:08 PM, Brendan Eich <[email protected]> wrote: >> >> When in doubt, use brute force. ES3 already did. Quoting from its spec for >> Function.prototype.apply: >> 15.3.4.3 Function.prototype.apply (thisArg, argArray) >> [...] Otherwise, if argArray is neither an array nor an arguments object >> (see section 10.1.8), a TypeError exception is thrown. If argArray is either >> an array or an arguments object, the function is passed the >> (ToUint32(argArray.length)) arguments argArray[0], argArray[1], …, >> argArray[ToUint32(argArray.length)–1]. [...] > > Yes, this is the spec text I quoted as well. But I don't understand it or > your "use brute force" answer. > > Sorry, didn't mean to rehash. > > How does Function.prototype.apply determine that argArray is an arguments > object? > > ES1-3 leave this unspecified. But they talk about "an arguments object > [being] created" (10.1.8), etc. and it's easy enough to implement the spec -- > there are many implementations. SpiderMonkey uses a distinct class whose name > is "Object", to satisfy what is specified ([[Prototype]] is the original > Object.prototype value). Do we need really need to say more? > > We need to do something, since as it stands the operational spec is > unimplementable in terms of the specified semantic state. > > The spec has a domain of discourse that includes "an arguments object". It's > implementable without error. Sure, we could add another internal property to > avoid this appeal to an unspecified way of distinguish arguments objects from > all other objects. Again I'm loath to over-invest. > /be > _______________________________________________ > Es3.x-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es3.x-discuss > _______________________________________________ Es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

