summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2019-04-06 10:31:01 +0200
committerwolfbeast <mcwerewolf@wolfbeast.com>2019-04-06 10:31:01 +0200
commitd7b76a5a5286475fcba1663028032a7ea834daed (patch)
tree0a27019e4ef3aaf335002ffabb8e0cdc02b19f3a
parentf5c293d3e82581740558c79cf752bccc0420199c (diff)
downloadUXP-d7b76a5a5286475fcba1663028032a7ea834daed.tar
UXP-d7b76a5a5286475fcba1663028032a7ea834daed.tar.gz
UXP-d7b76a5a5286475fcba1663028032a7ea834daed.tar.lz
UXP-d7b76a5a5286475fcba1663028032a7ea834daed.tar.xz
UXP-d7b76a5a5286475fcba1663028032a7ea834daed.zip
Report for-loop-decl-with-initializer errors using a specified offset
instead of a node's offset.
-rw-r--r--js/src/frontend/Parser.cpp4
-rw-r--r--js/src/js.msg2
2 files changed, 4 insertions, 2 deletions
diff --git a/js/src/frontend/Parser.cpp b/js/src/frontend/Parser.cpp
index 2702f3075..a26520477 100644
--- a/js/src/frontend/Parser.cpp
+++ b/js/src/frontend/Parser.cpp
@@ -4459,7 +4459,7 @@ Parser<ParseHandler>::initializerInNameDeclaration(Node decl, Node binding,
//
// for (var/let/const x = ... of ...); // BAD
if (isForOf) {
- reportWithNode(ParseError, false, binding, JSMSG_BAD_FOR_LEFTSIDE);
+ errorAt(initializerOffset, JSMSG_OF_AFTER_FOR_LOOP_DECL);
return false;
}
@@ -4468,7 +4468,7 @@ Parser<ParseHandler>::initializerInNameDeclaration(Node decl, Node binding,
//
// for (let/const x = ... in ...); // BAD
if (DeclarationKindIsLexical(declKind)) {
- reportWithNode(ParseError, false, binding, JSMSG_BAD_FOR_LEFTSIDE);
+ errorAt(initializerOffset, JSMSG_IN_AFTER_LEXICAL_FOR_DECL);
return false;
}
diff --git a/js/src/js.msg b/js/src/js.msg
index 42a48c3a5..a19e3aa85 100644
--- a/js/src/js.msg
+++ b/js/src/js.msg
@@ -262,6 +262,8 @@ MSG_DEF(JSMSG_GARBAGE_AFTER_INPUT, 2, JSEXN_SYNTAXERR, "unexpected garbage a
MSG_DEF(JSMSG_IDSTART_AFTER_NUMBER, 0, JSEXN_SYNTAXERR, "identifier starts immediately after numeric literal")
MSG_DEF(JSMSG_ILLEGAL_CHARACTER, 0, JSEXN_SYNTAXERR, "illegal character")
MSG_DEF(JSMSG_IMPORT_DECL_AT_TOP_LEVEL, 0, JSEXN_SYNTAXERR, "import declarations may only appear at top level of a module")
+MSG_DEF(JSMSG_OF_AFTER_FOR_LOOP_DECL, 0, JSEXN_SYNTAXERR, "a declaration in the head of a for-of loop can't have an initializer")
+MSG_DEF(JSMSG_IN_AFTER_LEXICAL_FOR_DECL,0,JSEXN_SYNTAXERR, "a lexical declaration in the head of a for-in loop can't have an initializer")
MSG_DEF(JSMSG_INVALID_FOR_IN_DECL_WITH_INIT,0,JSEXN_SYNTAXERR,"for-in loop head declarations may not have initializers")
MSG_DEF(JSMSG_LABEL_NOT_FOUND, 0, JSEXN_SYNTAXERR, "label not found")
MSG_DEF(JSMSG_LET_COMP_BINDING, 0, JSEXN_SYNTAXERR, "'let' is not a valid name for a comprehension variable")