LGTM.
http://codereview.chromium.org/6335013/diff/1/src/messages.js File src/messages.js (right): http://codereview.chromium.org/6335013/diff/1/src/messages.js#newcode240 src/messages.js:240: strict_lhs_postfix: "Operand of postfix expression may not be eval or arguments in strict mode", Unless this is what Webkit uses as error message (we should generally match those), it should say that it's only increment/decrement postfix and prefix operators that must not be eval or arguments (i.e., when the operand must be an LValue), and not, e.g., the "!" operator. http://codereview.chromium.org/6335013/diff/1/src/parser.h File src/parser.h (right): http://codereview.chromium.org/6335013/diff/1/src/parser.h#newcode617 src/parser.h:617: void CheckStrictModeLHSName(Expression* expression, I prefer LValue to LHS. We *try*, without being completely successful, to avoid abbreviations in names, except where the abbreviation is the common way to refer to the concept (e.g., JSON, ASCII, etc.) To me LValue is a canonical name, but LHS is just an abbreviation. That's obviously purely subjective :) http://codereview.chromium.org/6335013/diff/1/test/mjsunit/strict-mode.js File test/mjsunit/strict-mode.js (right): http://codereview.chromium.org/6335013/diff/1/test/mjsunit/strict-mode.js#newcode187 test/mjsunit/strict-mode.js:187: Try a compound assignment operator as well, e.g., "-=". http://codereview.chromium.org/6335013/diff/1/test/mjsunit/strict-mode.js#newcode218 test/mjsunit/strict-mode.js:218: CheckStrictMode("function strict() { var x = --arguments; }", SyntaxError) Check that not-lvalue-operand operators doesn't throw, e.g., "!" or "-". http://codereview.chromium.org/6335013/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
