Estendendo a matriz com classes ES6
Ouvi dizer que o ES6 agora finalmente permite subclassificar Array. Aqui está um exemplo dado por
class Stack extends Array {
constructor() { super() }
top() { return this[this.length - 1]; }
}
var s = new Stack();
s.push("world");
s.push("hello");
console.log(s.top()); // "hello"
console.log(s.length); // 2
Claro, isso funciona. Mas no Traceur, pelo menos, definir o comprimento explicitamente não trunca a matriz. E ao imprimir via console.log, a saída está na forma de objeto e não na matriz, sugerindo que alguém não a esteja olhando como uma matriz "real".
Isso é um problema com a forma como o Traceur implementa objetos internos de subclassificação ou uma limitação do ES6?