Strict mode arguments do not share binding with formal parameters.
authormmaly@chromium.org <mmaly@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 7 Mar 2011 19:23:46 +0000 (19:23 +0000)
committermmaly@chromium.org <mmaly@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 7 Mar 2011 19:23:46 +0000 (19:23 +0000)
commit927f341d3c84d63ca6b40a402203e81d6161545a
treead366cf482c2531293fde63c828886d532323ba7
parent4a9056cbce4924a3f985aeddd06ba8ddb71df78d
Strict mode arguments do not share binding with formal parameters.

Move strict mode flag from TemporaryScope to Scope so that it can be accessed from variable binding code.
Arguments do not alias in strict mode (ia32, x64 and arm, codegen and full codegen).
Hydrogen tolerates null arguments_shadow().
In codegen-<arch> arguments object is allocated eagerly to capture values before they get modified.

Review URL: http://codereview.chromium.org/6625048/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
14 files changed:
src/arm/codegen-arm.cc
src/arm/full-codegen-arm.cc
src/ast-inl.h
src/ast.h
src/hydrogen.cc
src/ia32/codegen-ia32.cc
src/ia32/full-codegen-ia32.cc
src/parser.cc
src/scopes.cc
src/scopes.h
src/x64/codegen-x64.cc
src/x64/full-codegen-x64.cc
test/es5conform/es5conform.status
test/mjsunit/strict-mode.js