Implement assignment to undefined reference in ES5 Strict Mode.
authormmaly@chromium.org <mmaly@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 11 Feb 2011 21:39:59 +0000 (21:39 +0000)
committermmaly@chromium.org <mmaly@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 11 Feb 2011 21:39:59 +0000 (21:39 +0000)
commitfd6338bdda72ad48d6a5f856261e0213236800db
tree09d98b418ae73758fab1c9161e1631b5880f82d8
parent56f6cbbeaec16a59a788a2d84a76ea033a3bacad
Implement assignment to undefined reference in ES5 Strict Mode.

Strict mode assignment to undefined reference.
Simple assignments (x = <value>) use CODE_TARGET_CONTEXT.
StoreIC stores its own strictness in extra_ic_state.
The strcitness is propagated as further ic stubs are generated.

Details:
* ReferenceError on assignment to non-resolvable reference in strict mode.
* Fix es5conform test expectation file.
* Add es5conform test suite into .gitignore.
* Fix Xcode project.
* Change implemented in virtual frame code generator, as well as full-codegen
  for all architectures.
* Fix debugger test.
* Fix comment for CODE_TARGET_CONTEXT
* Implement remaining StoreIC stubs to be strict mode aware.
* Trace extra_ic_state() for ic code stubs.

Code Review URL: http://codereview.chromium.org/6474026/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
34 files changed:
.gitignore
src/arm/codegen-arm.cc
src/arm/full-codegen-arm.cc
src/arm/ic-arm.cc
src/arm/lithium-codegen-arm.cc
src/arm/virtual-frame-arm.cc
src/arm/virtual-frame-arm.h
src/assembler.h
src/builtins.cc
src/builtins.h
src/compiler.h
src/full-codegen.h
src/ia32/codegen-ia32.cc
src/ia32/full-codegen-ia32.cc
src/ia32/ic-ia32.cc
src/ia32/virtual-frame-ia32.cc
src/ia32/virtual-frame-ia32.h
src/ic.cc
src/ic.h
src/objects-inl.h
src/objects.cc
src/objects.h
src/serialize.cc
src/stub-cache.cc
src/stub-cache.h
src/x64/codegen-x64.cc
src/x64/full-codegen-x64.cc
src/x64/ic-x64.cc
src/x64/virtual-frame-x64.cc
src/x64/virtual-frame-x64.h
test/cctest/test-debug.cc
test/es5conform/es5conform.status
test/mjsunit/strict-mode.js
tools/v8.xcodeproj/project.pbxproj