harmony-scoping: make assignment to 'const' a late error.
authordslomov <dslomov@chromium.org>
Wed, 26 Nov 2014 11:21:09 +0000 (03:21 -0800)
committerCommit bot <commit-bot@chromium.org>
Wed, 26 Nov 2014 11:21:23 +0000 (11:21 +0000)
commit6ac4de87a8b01500b066a3e401e921d2d84b42db
tree2c0531cb398b598e8d43d265bf4c89447a9ba9e7
parent560b0c4534741cab40bcc0369997aab7091b56fd
harmony-scoping: make assignment to 'const' a late error.

Per TC39 Nov 2014 decision.

This patch also changes behavior for "legacy const": assignments to sloppy const in strict mode is now also a type error. This fixes v8:2243 and also brings us in compliance with other engines re assignment to function names (see updated webkit test), but might have bigger implications.
That change can easily be reverted by changing Variable::IsSignallingAssignmentToConst.

BUG=v8:3713,v8:2243
LOG=N

Review URL: https://codereview.chromium.org/749633002

Cr-Commit-Position: refs/heads/master@{#25516}
17 files changed:
src/arm/full-codegen-arm.cc
src/arm64/full-codegen-arm64.cc
src/compiler/ast-graph-builder.cc
src/compiler/ast-graph-builder.h
src/full-codegen.h
src/hydrogen.cc
src/ia32/full-codegen-ia32.cc
src/runtime/runtime-scopes.cc
src/runtime/runtime.h
src/scopes.cc
src/x64/full-codegen-x64.cc
test/mjsunit/harmony/block-const-assign.js
test/mjsunit/harmony/classes.js
test/mjsunit/harmony/module-linking.js
test/mjsunit/harmony/regress/regress-2243.js
test/mjsunit/regress/regress-2506.js
test/webkit/fast/js/basic-strict-mode-expected.txt