ES5 標準モードのスクリプトへのコードの移植
ES5 標準モードでは、互換モードで許容されるエラーが捕捉されます。
ES5 標準モードを使用して既存のスクリプトから新しいスコープ対象のスクリプトにコードを移植する際の注意事項
ECMAScript5 は、new Boolean(false) という語を true に評価します。互換モードでは false と評価されていました。
存在しないプロパティが参照されると、ECMAScript5 は EcmaError をスローします。互換モードでは、エラーはスローされませんでした。
存在しない関数が呼び出されると、ECMAScript5 は EcmaError をスローします。互換モードでは、エラーはスローされませんでした。
ECMAScript5 は新しい行を正しく処理します。以前は、コメントの後の改行文字が認識されていましたが、これは誤りです。この例では、互換モードで 3 つの関数がすべて呼び出されます。ECMAScript5 では、最初の関数のみが呼び出されます。
var expr = doFoo(); // do foo
doBar(); // do bar
finish(); // all done
eval(expr);
ECMAScript5 では、末尾インクリメントとデクリメントが正しく処理されます。この例では、互換モードの場合に変数 x がインクリメントされた値を取得しますが、これは誤りです。
var x = gr.limit++;