Strawman: Tuples

Jeremy Martin jmar777 at gmail.com
Wed Sep 10 14:42:25 PDT 2014


Michal - Why have it only throw in strict mode? Tuples would be a new
construct, so no breaking of the web if it throws in all contexts.

Jasper - It's not necessarily a given, but the immutability of tuples
offers some guarantees that are easier to optimize against.  E.g., no need
to pre-allocate extra space, as in most array implementations.


On Wed, Sep 10, 2014 at 2:25 PM, Jasper St. Pierre <jstpierre at mecheye.net>
wrote:

> Why would tuples be any more memory efficient than objects or arrays?
> On 10 Sep 2014 11:57, "Michał Wadas" <michalwadas at gmail.com> wrote:
>
>> Should we have new type - tuples?
>>
>> My proposal:
>> - Tuples are immutable.
>> Eg.
>> var wow = new Tuple('my', 'little', 'Cthulhu');
>> wow[2] = 'Nyarlathotep'; // throws in strict mode, silently fails in
>> sloppy mode
>> - Tuples are primitive type. Comparison between tuples is based on
>> identity of elements, not identity of tuples
>> Eg:
>> new Tuple(Object, Function, null, NaN) === new Tuple(Object, Function,
>> null, NaN); // true
>> - typeof new Tuple(); // 'tuple'
>> - Tuple(['wow', 'a', 'b']) = new Tuple('wow', 'a', 'b'); // true
>> - Tuple.prototype.add = function add() {
>> return new Tuple(...this, ...arguments);
>> }
>>
>> Pros:
>> - tuples are very memory efficient
>> - comparision based on identity of elements is required in many cases
>> Cons:
>> - ???
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
> _______________________________________________
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20140910/657bdf60/attachment.html>


More information about the es-discuss mailing list