Reapply change to with/arguments interaction.
authorkmillikin@chromium.org <kmillikin@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 21 Jan 2011 11:28:35 +0000 (11:28 +0000)
committerkmillikin@chromium.org <kmillikin@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 21 Jan 2011 11:28:35 +0000 (11:28 +0000)
commit8a9eeaf8da09e150f7689d010bef726c0cf4d83e
tree863510282ddd47a767724386472773741a84110a
parentc630134ed2a8d8f802a5fe00f497f8a898e5f241
Reapply change to with/arguments interaction.

This is svn r6415 with a bugfix.

The bug was that we can have scopes with 0 heap slots (functions with
such scopes do not need a local context) and scopes with at least
Context::MIN_CONTEXT_SLOTS.  The code generator only allocated a local
context if there were strictly more than Context::MIN_CONTEXT_SLOTS.
Before the change to with/arguments, it was impossible to actually get
a function scope with exactly Context::MIN_CONTEXT_SLOTS because every
such scope included a heap-allocated arguments (and arguments shadow)
slot.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
12 files changed:
src/arm/code-stubs-arm.cc
src/arm/codegen-arm.cc
src/arm/full-codegen-arm.cc
src/code-stubs.h
src/ia32/code-stubs-ia32.cc
src/ia32/codegen-ia32.cc
src/ia32/full-codegen-ia32.cc
src/scopes.cc
src/x64/code-stubs-x64.cc
src/x64/codegen-x64.cc
src/x64/full-codegen-x64.cc
test/mjsunit/debug-evaluate-locals.js