diff options
author | Gaming4JC <g4jc@hyperbola.info> | 2019-06-08 16:37:10 -0400 |
---|---|---|
committer | Gaming4JC <g4jc@hyperbola.info> | 2019-07-18 22:38:19 -0400 |
commit | adc81d634d12d58a64e0d2a1e95998b766cf6e96 (patch) | |
tree | 2153cf74c44f6d67a56311d74a4bc357cab13ee1 /js/src/frontend/Parser.cpp | |
parent | 52e22e231b065cc7d5975d5f6f8a9231c4f18f6e (diff) | |
download | UXP-adc81d634d12d58a64e0d2a1e95998b766cf6e96.tar UXP-adc81d634d12d58a64e0d2a1e95998b766cf6e96.tar.gz UXP-adc81d634d12d58a64e0d2a1e95998b766cf6e96.tar.lz UXP-adc81d634d12d58a64e0d2a1e95998b766cf6e96.tar.xz UXP-adc81d634d12d58a64e0d2a1e95998b766cf6e96.zip |
1317374 - Don't do Annex B lexical function behavior when redeclaring a parameter name.
Diffstat (limited to 'js/src/frontend/Parser.cpp')
-rw-r--r-- | js/src/frontend/Parser.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/js/src/frontend/Parser.cpp b/js/src/frontend/Parser.cpp index 79b5d70f4..66ada79f2 100644 --- a/js/src/frontend/Parser.cpp +++ b/js/src/frontend/Parser.cpp @@ -1183,6 +1183,12 @@ Parser<ParseHandler>::tryDeclareVar(HandlePropertyName name, DeclarationKind kin *redeclaredKind = Some(declaredKind); return true; } + } else if (kind == DeclarationKind::VarForAnnexBLexicalFunction) { + MOZ_ASSERT(DeclarationKindIsParameter(declaredKind)); + + // Annex B.3.3.1 disallows redeclaring parameter names. + *redeclaredKind = Some(declaredKind); + return true; } } else { if (!scope->addDeclaredName(pc, p, name, kind)) |