• marja@chromium.org's avatar
    Make strict more error messages about "eval" and "arguments" less specific. · 81504642
    marja@chromium.org authored
    We used to have error messages which provide context, like "Variable name may
    not be eval or arguments in strict mode", but for other illegal words we only
    have non-context specific error messages like "Unexpected reserved word".
    
    Providing the context makes the code unnecessarily complex, since every
    individual place must remember to check for eval or arguments. This CL produces
    a unified error message ("Unexpected eval or arguments in strict mode"), and puts
    the error reporting to (Pre)Parser::ParseIdentifier.
    
    Notes:
    
    - The module feature is so experimental, that I decided to not allow "eval" or
    "arguments" as module-related identifiers in the strict mode (even though this
    check wasn't there before).
    
    - Unfortunately, there were some inconsistencies, since it was the
    responsibility of the caller of ParseIdentifier to check "eval" and "arguments"
    and some places didn't have the check for no good reason. This CL is supposed to
    keep backward compatibility and *not* introduce any new errors.
    
    - ECMA allows "eval" and "arguments" as labels even in strict mode. (Syntax:
    "LabelledStatement: Identifier : Statement", and no strict mode restrictions on
    Identifier are listed.)
    
    - Tests which compare error message strings will fail, and need to be updated.
    
    BUG=3126
    LOG=N
    R=ulan@chromium.org
    
    Review URL: https://codereview.chromium.org/152813005
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    81504642
Name
Last commit
Last update
benchmarks Loading commit data...
build Loading commit data...
include Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...