mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 09:15:35 +00:00
Bug 1296814 - Specify an explicit offset when warning about "use asm" found in the directive prologue of a script (rather than a function body). r=anba
--HG-- extra : rebase_source : 40239791b101a8a53f924d71944e412a0b5dbb31
This commit is contained in:
parent
1eb4cc8925
commit
d141fe456e
@ -842,7 +842,7 @@ class FullParseHandler
|
||||
MOZ_MUST_USE ParseNode* setLikelyIIFE(ParseNode* pn) {
|
||||
return parenthesize(pn);
|
||||
}
|
||||
void setPrologue(ParseNode* pn) {
|
||||
void setInDirectivePrologue(ParseNode* pn) {
|
||||
pn->pn_prologue = true;
|
||||
}
|
||||
|
||||
|
@ -3757,10 +3757,10 @@ Parser<FullParseHandler>::asmJS(Node list)
|
||||
*/
|
||||
template <typename ParseHandler>
|
||||
bool
|
||||
Parser<ParseHandler>::maybeParseDirective(Node list, Node pn, bool* cont)
|
||||
Parser<ParseHandler>::maybeParseDirective(Node list, Node possibleDirective, bool* cont)
|
||||
{
|
||||
TokenPos directivePos;
|
||||
JSAtom* directive = handler.isStringExprStatement(pn, &directivePos);
|
||||
JSAtom* directive = handler.isStringExprStatement(possibleDirective, &directivePos);
|
||||
|
||||
*cont = !!directive;
|
||||
if (!*cont)
|
||||
@ -3777,7 +3777,7 @@ Parser<ParseHandler>::maybeParseDirective(Node list, Node pn, bool* cont)
|
||||
// directive in the future. We don't want to interfere with people
|
||||
// taking advantage of directive-prologue-enabled features that appear
|
||||
// in other browsers first.
|
||||
handler.setPrologue(pn);
|
||||
handler.setInDirectivePrologue(possibleDirective);
|
||||
|
||||
if (directive == context->names().useStrict) {
|
||||
// Functions with non-simple parameter lists (destructuring,
|
||||
@ -3813,7 +3813,8 @@ Parser<ParseHandler>::maybeParseDirective(Node list, Node pn, bool* cont)
|
||||
} else if (directive == context->names().useAsm) {
|
||||
if (pc->isFunctionBox())
|
||||
return asmJS(list);
|
||||
return reportWithNode(ParseWarning, false, pn, JSMSG_USE_ASM_DIRECTIVE_FAIL);
|
||||
return reportWithOffset(ParseWarning, false, directivePos.begin,
|
||||
JSMSG_USE_ASM_DIRECTIVE_FAIL);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
@ -521,7 +521,7 @@ class SyntaxParseHandler
|
||||
MOZ_MUST_USE Node setLikelyIIFE(Node pn) {
|
||||
return pn; // Remain in syntax-parse mode.
|
||||
}
|
||||
void setPrologue(Node pn) {}
|
||||
void setInDirectivePrologue(Node pn) {}
|
||||
|
||||
bool isConstant(Node pn) { return false; }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user