互換性

JavaScriptはECMAScript 3rd Editionを対象としています。
環境間で振る舞いが違う点は非互換情報に纏めています。

JavaScript

  • ECMAScript 3rd Edition
  • JavaScript 1.3~1.x
  • JScript 3.0~5.x

動作確認環境

変更履歴に載せています。動作確認環境は全てWindowsです。

非互換情報

  1. Ael#ael-clone()
    • Adobe AIRでは関数の複製を返さず、オリジナルを返す。
      (セキュリティによりeval関数やFunctionコンストラクタの使用が禁止されており、複製手段がない為)
  2. Ael#ael-keys()
    • ブラウザ毎に返すプロパティにばらつきがある。(メソッド内部で使用しているfor inが返すプロパティに互換がない為)
  3. Ael#ael-hasOwn()
    • IE5.5未満ではprototypeプロパティを置き換える方法で設定されたプロパティを正しく判別できずに true を返してしまう。(詳細はAPIリファレンスを参照)
    • 一部のブラウザは文字列を文字配列の様に扱うが、このメソッドは文字列配列として扱わない。
  4. Ael.lang.Array#ael-sort()
    • 常に0を返すcomparator関数でソートした場合、実行環境毎に順序が異なる。
  5. Ael.lang.Function#ael-name()
    • Safari 3.1.1未満とAdobe AIR 1.0ではネイティブECMAScriptオブジェクトの名称を返さず、空文字を返す。
      (ネイティブECMAScriptオブジェクトの文字列表現に名称が含まれていない為)
  6. Ael.lang.Function#ael-defer()
    • Aptana JaxerとDreamweaver CS3 Extensionでは機能しない。
      (setInterval関数が未定義値を返し、機能しない為)
    • FirefoxとFirefox Extensionでは数ミリ秒以内に複数の処理が始動するような登録をするとディレイ時間を待たずに処理される場合がある。(Bug 234016
  7. Ael.lang.Function#ael-try_()
    • Aptana JaxerとDreamweaver CS3 Extensionでは機能しない。
      (setInterval関数が未定義値を返し、機能しない為)