MIPS: Capture receiver in generator object

Port r14434 (04f254d1)

Original commit message:
Previously there has been no reason to context-allocate the receiver, so
access to the receiver always goes through the stack.  This was failing
with generators, which assumed that forcing context allocation would
relieve the need of storing anything but the context and the function on
the stack.

This CL adds a slot in generator objects to capture the receiver, and
restores it when resuming a generator.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
MIPS: Constructed arrays can be created with Hydrogen code stubs. The feature is still off by default (--optimize-constructed-arrays).

Port r14441 (0c30d023)

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Defer slow branch of GetAlignedPointerFromInternalField

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Do not dereference handles during relocation.

R=hpayer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Avoid unnecessary indirection when creating CodeEntries

BUG=None

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Prevent false positive from GCMole in DeferredFormatStackTrace.

R=yangguo@chromium.org
TEST=gcmole

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Better handling of Phi nodes with constant inputs

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix test/build failures (win64 compile warning, isolate test parallel compilation failure, gcmole issue, isolate test intermittant failure)

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Implement support for Math.imul in Crankshaft.

R=jkummerow@chromium.org
TEST=mjsunit/math-imul

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Bootstrapper code for constructed arrays needs to be handlefied

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
forgot parends around macro arg

R=svenpanne@chromium.org
BUG=

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

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

R=ulan@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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