Il browser o Node.js incontra la parola chiave 'export' o 'import' in uno script caricato come script classico anziché come modulo ECMAScript (manca 'type="module"' nel tag <script> o '"type": "module"' nel package.json).
SYNTAX_UNEXPECTED_EXPORT
→
Le stringhe delimitate da virgolette singole o doppie non possono andare a capo senza il carattere di escape '\'; per stringhe multilinea occorre usare i backtick dei template literal (``).
SYNTAX_UNTERMINATED_STRING
→
Il file binario `.wasm` caricato tramite `WebAssembly.instantiateStreaming` è corrotto o il server web ha risposto con una pagina di errore HTML 404/500 anziché il file binario compilato.
WASM_BAD_MAGIC_BYTES
→
L'istruzione `await` è stata posizionata all'interno di un file JavaScript classico caricato tramite tag `<script>` privo dell'attributo `type="module"` o in uno script CommonJS non incapsulato in una funzione asincrona.
SYNTAX_AWAIT_OUTSIDE_ASYNC
→
Un metodo `constructor*()` contrassegnato con l'asterisco generatore non è valido secondo la specifica ECMAScript; i costruttori devono restituire sincronicamente l'istanza dell'oggetto.
SYNTAX_CONSTRUCTOR_GENERATOR
→
I costruttori non possono essere dichiarati `async constructor()`; per inizializzazioni asincrone si utilizza un metodo statico factory (es. `static async create()`).
SYNTAX_CONSTRUCTOR_ASYNC
→
L'operatore `delete` può essere applicato unicamente a proprietà di oggetti (`delete obj.prop`); l'eliminazione diretta di variabili ordinarie (`delete x`) è formalmente vietata in strict mode.
SYNTAX_DELETE_UNQUALIFIED
→
Dichiarare due argomenti con lo stesso nome (`function(a, a)`) è formalmente vietato in strict mode, nelle arrow function e nei metodi di classe.
SYNTAX_DUPLICATE_PARAM
→