配列の最後から n 個値を取得するときに arr.slice(-n) とすると n が 0 のとき期待しない値になる

タイトルどおり。
スタックから n 個 pop するときに

var args = stack.slice(-argc);
stack.length -= argc;

とかしてたんだけど、これだと argc が 0 のとき args が空の配列でなく stack 全体のコピーになってしまう。
これでハマった。

                      • -

はてさて、どう直そうかなあ。
argc ? stack.slice(-argc) : [] か stack.slice(stack.length - argc) か。長いなあ。
短く書けないんだったら配列から n 個 pop する関数を作ってしまうか。 -> そうしました。

function aryPopN(ary, n) {
	var result = ary.slice(ary.length - n);
	ary.length -= n;
	return result;
}