ページ表示設定

附属書 E (参考) 互換性に影響する可能性のある ECMAScript 2015 の修正と明確化

9.1.1.4.14-9.1.1.4.17 Edition 5 および 5.1 では、新しいグローバル宣言に対応するグローバルオブジェクトのプロパティがすでに存在するかどうかを判断するために、プロパティ存在テストを使用していました。ECMAScript 2015 は own プロパティ存在テストを使用します。これは、Web ブラウザーで最も一般的に実装されてきたものに対応します。

10.4.2.1: 第5版では、現在の配列長の取得を、配列インデックスまたは新しい長さ値の整数変換より前に移動しました。しかし、変換処理に配列長を変更する副作用がある場合、取得した長さ値は無効になる可能性がありました。ECMAScript 2015 は、そのような副作用が発生する可能性の後に現在の配列長を取得しなければならないと規定します。

21.4.1.31: 以前の版では、TimeClip 抽象操作が 0 の時刻値の表現として +0𝔽 または -0𝔽 のいずれかを返すことを許可していました。ECMAScript 2015 は、常に +0𝔽 を返すと規定します。これは、ECMAScript 2015 では Date の時刻値が観測可能な -0𝔽 になることはなく、時刻値を返すメソッドも -0𝔽 を返さないことを意味します。

21.4.1.32: UTC オフセット表現が存在しない場合、ローカルタイムゾーンが使用されます。Edition 5.1 は、欠落したタイムゾーンを "z" として解釈するべきであると誤って記述していました。

21.4.4.36: 年を 21.4.1.32 で規定される Date Time String Format を使用して表現できない場合、RangeError 例外がスローされます。以前の版では、その場合の動作を規定していませんでした。

21.4.4.41: 以前の版では、時刻値が NaN の場合に Date.prototype.toString が返す値を規定していませんでした。ECMAScript 2015 は結果を String 値 "Invalid Date" と規定します。

22.2.4.1、22.2.6.13.1: RegExp インスタンスの "source" プロパティの値に含まれるすべての LineTerminator コードポイントは、エスケープシーケンスを使用して表現されなければなりません。Edition 5.1 では / のエスケープだけを要求していました。

22.2.6.8、22.2.6.11: 以前の版では、pattern 引数が global フラグを設定した RegExp 値である場合について、String.prototype.match および String.prototype.replace の仕様が誤っていました。以前の仕様では、パターンへの各一致試行について lastIndex が変化しなかった場合、1 増加させるべきだとしていました。正しい動作は、パターンが空の String に一致した場合にのみ lastIndex を 1 増加させることです。

23.1.3.30: 以前の版では、comparator が返した NaN 値を Array.prototype.sort がどのように解釈するかを規定していませんでした。ECMAScript 2015 は、そのような値を comparator が +0𝔽 を返したかのように扱うと規定します。ECMAScript 2015 はまた、comparator が返した結果に ToNumber が適用されることも規定します。以前の版では、Number 値でない comparator の結果の効果は実装定義でした。実際には、実装は ToNumber を呼び出しています。