Я слышал, что ES6 теперь, наконец, разрешает подкласс Array. Здесь приведен пример
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
Конечно, это работает. Но, по крайней мере, в Traceur, задание длины явно не обрезает массив. И при печати через console.log вывод находится в форме объекта, а не в форме массива, предполагая, что кто-то не рассматривает его как "реальный" массив.
Это проблема с тем, как Traceur реализует подклассы встроенных объектов или ограничение ES6?