DescriptionFix 'eval' in class extends clauses to be always-strict
Compiler backends get their language mode from the current
function, but should instead be deriving it from the current scope.
This allows proper handling of the always-strictness of class declarations
and expressions, and in particular the treatment of 'eval' calls in an
extends clause as a strict eval.
Also fix the parser's RecordEvalCall logic to only reach out to the
DeclarationScope in sloppy mode, which fixes the strange case of a
sloppy function thinking it contains a sloppy eval when in fact
it contains only a strict eval.
BUG=v8:4970
LOG=n
Committed: https://crrev.com/c8a342a5825a835556e0ae26f8a1295b80d02489
Cr-Commit-Position: refs/heads/master@{#36001}
Patch Set 1 #Patch Set 2 : Add test #Patch Set 3 : Change test to match report, and check for strictness #Patch Set 4 : Rebased #Patch Set 5 : Add 4974 fix #Patch Set 6 : Remove unrelated test case #
Messages
Total messages: 25 (12 generated)
|