- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Mon, 28 Oct 2013 16:20:20 -0400
- To: "public-script-coord@w3.org" <public-script-coord@w3.org>
- CC: es-discuss <es-discuss@mozilla.org>
As far as I can tell, the two places in ES5 that test [[Class]] being equal to "Array" are Array.isArray() and Array.prototype.concat. In ES6, the former does some sort of brand check, but the latter calls IsConcatSpreadable, which checks for a @@isConcatSpreadable symbol. It seems to me like we should probably have ArrayClass objects return true from the @@isConcatSpreadable symbol. The benefit is that this makes ArrayClass objects quack as much like an array as we can, I think. The drawback is that this perhaps makes it harder to add ArrayClass to existing objects... In terms of existing ArrayClass objects that are shipping on the web right now, Gecko is shipping (though perhaps not in final releases yet) the .ports of a MessageEvent and the return value of getClientRects(). I _think_ changing the concat() behavior of these should be OK. Certainly for .ports, which we haven't been shipping for very long at all. Thoughts? -Boris
Received on Monday, 28 October 2013 20:21:05 UTC