ES6モジュールは常に厳密モードです。仕様の関連部分を引用するには:
10.2.1厳格モードコード
ECMAScriptスクリプト構文単位は、無制限モードまたは厳密モードの構文とセマンティクスを使用して処理できます。次の状況では、コードはストリクトモードコードとして解釈されます。
- Use Strictディレクティブを含むディレクティブプロローグで始まる場合、グローバルコードはストリクトモードコードです(14.1.1を参照)。
- モジュールコードは常に厳密なモードコードです。
- ClassDeclarationまたはClassExpressionのすべての部分は、厳密なモードコードです。
- Evalコードは、Use Strictディレクティブを含むディレクティブプロローグで始まる場合、またはevalの呼び出しがストリクトモードコードに含まれるダイレクトeval(12.3.4.1を参照)である場合、ストリクトモードコードです。
- 関連するFunctionDeclaration、FunctionExpression、GeneratorDeclaration、GeneratorExpression、MethodDefinition、またはArrowFunctionが厳密モードコードに含まれている場合、または関数の[[ECMAScriptCode]]内部スロットの値を生成するコードがディレクティブプロローグで始まる場合、関数コードは厳密モードコードです。 Use Strictディレクティブが含まれています。
- 組み込みのFunctionおよびGeneratorコンストラクターへの引数として提供される関数コードは、最後の引数が、処理時にUse Strictディレクティブを含むディレクティブプロローグで始まるFunctionBodyである文字列である場合、厳密モードコードです。