var a = [1, 2, 3], first, last;
[first, ...[a[2], last]] = a;
first === 1 && last === 3 && (a + "") === "1,2,2"
emits:
var a = [1, 2, 3], first, last;
first = a[0], [a[2], last] = a.slice(1);
first === 1 && last === 3 && (a + "" ) === "1,2,2";
but should emit:
var a = [1, 2, 3], first, last;
first = a[0], _c = a.slice(1), a[2] = _c[0] , last = _c[1];
first === 1 && last === 3 && (a + "") === "1,2,2";