Firefox Nightly で構文とかAPIとかオプションが追加された
一気に紹介
spread array
テストコード:mozilla-central mozilla/js/src/jit-test/tests/basic/spread-array.js
var a1 = [2,3,4,5]; var a2 = [1, ...a1, 6]; // => [1,2,3,4,5,6]
なんていうか、Array#concat
みたいな感じでもある。[ ...arryObj, ]
とすることでarryObjが展開される。
正直ちょいと使い道が思いつかない...。
Numberビルトインオブジェクトに幾つかメソッド追加
ES.next ではNumberオブジェクトに多くのメソッド追加が提案されていて、その一部
Number.toInteger()
整数に変換するメソッド。parseInt()
とはちょっと挙動が違うので注意
テストコード:mozilla-central mozilla/js/src/jit-test/tests/basic/number-tointeger.js
Number.isInteger()
整数であるかの真偽値を返すメソッド
テストコード:mozilla-central mozilla/js/src/jit-test/tests/basic/number-isinteger.js
NUmber.isFinite()
数値であり、かつ、有限値であるかの真偽値を返すメソッド
テストコード:mozilla-central mozilla/js/src/jit-test/tests/basic/number-isfinite.js
E4Xのオプション
about:configにJavaScriptに対する二つのオプションが追加される
javascript.options.xml.chrome
- アドオンなどでのJavaScriptでE4Xの有効/無効(デフォルト:有効)
javascript.options.xml.content
- コンテンツ内のJavaScriptでE4Xの有効/無効(デフォルト:有効)
以前から、Strictモード内ではE4X構文が禁止されたり(695577 - E4X syntax should not be accepted in ES5 strict mode)してたが、今回はもっと強力。
完全に使えなくなる。リテラル表記はもちろん、XML
,XMLList
コンストラクタまで存在しなくなる。
E4Xはまあ一般的には使われていないだろうけど、Greasemonkeyユーザスクリプトなどで、ヒアドキュメント代わりに使われていたりする。javascript.options.xml.content
がfalse
だと構文エラーとなって実行されなくなるので注意が必要だと思う。
とはいえ、当分デフォルト有効のままだと思うけど...。