Irvine 1.3.1.127 & DMScript 0.3.12
var y = {}, x = [ y ];
try {
x.pop ();
alert (x.length);
}
catch (e) { alert (e); }
finally { alert ('a'); }
alert ('b');
Irvine のメニューバーのツール → スクリプト → スクリプトを直接実行から、上記スクリプトを実行すると 0 → a → b と表示されます(正常)。
ところが1行目を var x = [ {} ];
に変えて実行すると、a → Invalid pointer operation. と表示されてしまいます。
また1行目を var x = [ [] ];
に変えた場合は、a だけが表示されます。
いずれも3行目で x.shift ();
としても同様ですが、x.splice (0, 1);
であれば正常動作します。
[2014-10-16 追記] 元のコードでエラーにならないのは、y
から {}
への参照が残ったままスクリプトが終了しているから、かもしれません。2行目に y = null;
を入れるとエラーになります。