La parola chiave 'await' può essere usata solo all'interno di funzioni contrassegnate come 'async' o al top-level dei moduli ESM; utilizzarla all'interno di una normale funzione sincrona o callback (.forEach) genera errore di sintassi.
SYNTAX_AWAIT_OUTSIDE_ASYNC
→
Compare nel browser quando il tag HTML include uno script che usa la sintassi ESM ('import ... from') ma è stato inserito come '<script src="app.js">' anziché '<script type="module" src="app.js">'.
SYNTAX_IMPORT_OUTSIDE_MODULE
→
Nello stesso blocco di codice non è consentito dichiarare due volte la stessa variabile con 'let' o 'const', a differenza della vecchia parola chiave 'var' che consentiva la sovrascrittura con re-hoisting.
SYNTAX_ID_ALREADY_DECLARED
→
L'operatore di assegnazione '=' tenta di scrivere in un valore che non è una variabile modificabile (es. il valore restituito da una funzione 'foo() = 5', o un confronto 'a + b = c' scritto con un singolo uguale invece di '===').
SYNTAX_INVALID_LHS_ASSIGN
→
Compare quando i delimitatori '/' di un'espressione regolare letterale non sono bilanciati o quando vengono specificati flag non riconosciuti (ammessi solo g, i, m, s, u, y, d).
SYNTAX_INVALID_REGEX_FLAG
→
Errore sintattico generato da una stringa letterale non chiusa, una virgola fuori posto o una parentesi graffa/tonda mancante durante la chiamata a una funzione.
SYNTAX_MISSING_PARENTHESIS
→
Il parser raggiunge la fine dello script o della stringa JSON mentre un blocco di codice '{', array '[', parentesi '(' o template literal '`' è rimasto aperto senza la corrispondente chiusura.
SYNTAX_UNEXPECTED_END_OF_INPUT
→
Frequentissimo nelle chiamate fetch/AJAX: l'endpoint API remoto ha risposto con una pagina di errore 404/500 in formato HTML ('<!DOCTYPE html>...') anziché con un payload JSON, causando il fallimento immediato di 'response.json()' o 'JSON.parse()'.
SYNTAX_JSON_PARSE
→