Chromeのコンソールで次のコードを試しました
var a = new Array(1,2,3,4);
a.length
これは、予想どおり長さが 4 であることを示しています。ここで、長さプロパティを書き込み可能として設定しようとしました: false
Object.defineProperty(a, "length", {writable: false});
a[4] = 5;
a.length
プロパティが writable:false に設定されていても、結果は 5 になります。どうしてこうなりました?read-only(writable:false)のままでいいのではないでしょうか?