Strict モードでのプリミティブへのプロパティ設定が例外を投げるようになりました

公開日: | カテゴリー: JavaScript

概要

従来、StringNumberBooleanSymbol といった プリミティブ値 へのプロパティ設定は無演算命令 (何もしない) となっていました。Firefox 46 以降、Strict モード 内でそうしたコードが見られた場合、ECMAScript 2015 (ES6) 仕様に従って TypeError が投げられます。以下の例を参照してください。

(function() {
  "use strict";
  (10).sub = 5; // TypeError
})();
(function() {
  "use strict";
  false.x = false; // TypeError
})();
(function() {
  "use strict";
  "test".mode = "verbose"; // TypeError
})();
(function() {
  "use strict";
  Symbol().check = true; // TypeError
})();

参考資料