「ES5 syntax」はECMA Script5(ES5)固有の構文を許可するかどうかを指定するオプションです。
デフォルト(false)ではこれらの構文は許可されません。
下記のコードは、ES5から使用できるようになったget/set演算子を使ったコード例です。
var obj = {
real: 10,
get x () {
"use strict";
window.console.log("セットされた値を返します。");
return this.real;
},
set x (value) {
"use strict";
window.console.log("値をセットします。");
this.real = value;
}
},
dmy = 0;
obj.x = 6; //コンソールに「値をセットします。」と出力される。
dmy = obj.x; //コンソールに「セットされた値を返します。」と出力される。
ES5の新機能であるget/set演算子を使うと、オブジェクトのプロパティに対して値の取得や設定を行う時に関数を実行することができるようになります。
これを利用すれば、例えばオブジェクトのプロパティに値がセットされる時に、その値の妥当性をチェックするような使い方ができると思います。
上記のコード例の場合、このオプションがデフォルト(false)のままだと、「This is an ES5 feature.」という警告が出ます。
さて、これらのES5新構文(機能)についてですが、現時点ではまだ使いどころが限られてくると思います。
予めJavaScriptコードの実行環境が決まっている場合は良いのですが、例えばWEBサイト(WEBアプリケーション)の場合は、ES5に対応していないブラウザからのアクセスも十分あり得ますので、ES5の新機能を使うことを前提としたコーディングはすべきではないと思います。
このような場合はデフォルト(false)のままにしておいた方が良いでしょう。