だいぶ前にこのスレで、
「二次元配列を、事前に使う分だけ宣言しなくても
 好きな時に好きな場所に値を代入して、エラーを出さない方法」
として、

class AutoArray extends Array {
  function AutoArray() {
    super.Array(...);
    Scripts.setCallMissing(this); // missingメソッドを有効にする
  }

  function missing(get_or_set, name, value) {
    if (!get_or_set) {
    *value = this[name] = [];
    return true;
  }
  return false;
  }
};

という方法を教えてもらったのですが、これで宣言した変数
f.a = new AutoArray();
f.a[100][200] = 1;
は、一度栞の保存→読み込みを行うと、データが失われてしまいます。
データを保持するにはどうすればいいのでしょうか?