Fix yield inside with

This patch makes it so that suspending generators always saves the
context.  Previously we erroneously assumed that if the operand stack
was empty, that the context would be unchanged, but that is not the case
with "with".

Fixing this brought out an interesting bug in the variable allocator.
Yield inside with will reference a context-allocated temporary holding
the generator object.  Before the fix, this object was looked up in the
with context instead of the function context, because with contexts were
not being simulated during full-codegen.  Previously this was OK as all
variables would be given LOOKUP allocation instead of CONTEXT, but the
context-allocated temporary invalidated this assumption.  The fix is to
simulate the context chain more accurately in full-codegen.

R=mstarzinger@chromium.org
BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration

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

Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Prepare push to trunk.  Now working on version 3.18.5.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add support for yield expressions

This CL extends the generator suspend and resume implementation to
capture values on the operand stack.

It factors out some helpers to measure and access the operand stack into
the JavaScriptFrame class.  It also refactors the suspend and resume
helpers to avoid handle allocation.

BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration

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

Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add assertion about module scopes to Scope::ContextChainLength.

R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Lithium: avoid registers for constants when possible.

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
remove IsOneByteConvertible

R=ulan@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Change 'Parse error' to three more informative messages.

Replace the 'unable_to_parse' key used in three places with three difference keys.
Provide three more informative and less ambiguous error messages in place of 'Parse error'.

Add three test/message cases to cover the new messages.

BUG=2636

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix build failure on Win64 since r14458.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Track storage types of instance variables.

Review URL: https://chromiumcodereview.appspot.com/14146005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix static initializers on x64

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
HConstant::InNewSpace() should be a constant function

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
MIPS: HasOnlyAsciiChars can return incorrect results. Fixup usages and rename.

Port r14453 (91869730)

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Merge commit '9e3dab0c06c81c2f746281781de5fd1d3ef0bc39' into hj-dev-palfia
MIPS: Lithium: avoid registers for constants when possible.

Port r14460 (9e3dab0c)
Merge commit '70300e976ebbbe3d7f8901d013f5e55745a5d901' into hj-dev-palfia
Fix arm port of tracking field representations. Based on Rodolph Perfetta's comments

BUG=

Review URL: https://chromiumcodereview.appspot.com/14522003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
MIPS: Track storage types of instance variables.

Port r14464 (70300e97) and r14470 (65af80fc)
Merge commit '65af80fcffab90840c1b5624b8aa4fdddcbf07c8' into hj-dev-palfia