Revert "Use the same registers for StoreIC and KeyedStoreIC."

This reverts commit r22358 due to release mode arm64 test failures.

TBR=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix arm64 deoptimization from double registers (reverts r20613).

This reverts "ARM64: Use pair memory access in deoptimizer entry", r20613. It does not really make sense to micro-optimize the deoptimizer as it is the ultra-slow path. Moreover, the original code was easier to read (in addition to being correct).

BUG=391313
LOG=N
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Whiltespace change to trigger bots.

TBR=jochen@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Whiltespace change to trigger bots.

TBR=jochen@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Introduce a PrototypeIterator class and use it for prototype access

The new pattern is that we first get the map of the root of the
prototype chain using Object::GetMapRoot() and then walk up the
prototype chain using Map::prototype().

BUG=???
R=verwaest@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Implement handling of arrow functions in the parser

Arrow functions are parsed from ParseAssignmentExpression(). Handling the
parameter list is done by letting ParseConditionalExpression() parse a comma
separated list of identifiers, and it returns a tree of BinaryOperation nodes
with VariableProxy leaves, or a single VariableProxy if there is only one
parameter. When the arrow token "=>" is found, the VariableProxy nodes are
passed to ParseArrowFunctionLiteral(), which will then skip parsing the
paramaeter list. This avoids having to rewind when the arrow is found and
restart parsing the parameter list.

Note that the empty parameter list "()" is handled directly in
ParsePrimaryExpression(): after is has consumed the opening parenthesis,
if a closing parenthesis follows, then the only valid input is an arrow
function. In this case, ParsePrimaryExpression() directly calls
ParseArrowFunctionLiteral(), to avoid needing to return a sentinel value
to signal the empty parameter list. Because it will consume the body of
the arrow function, ParseAssignmentExpression() will not see the arrow
"=>" token as next, and return the already-parser expression.

The implementation is done in ParserBase, so it was needed to do some
additions to ParserBase, ParserTraits and PreParserTraits. Some of the
glue code can be removed later on when more more functionality is moved
to ParserBase.

Additionally, this adds a runtime flag "harmony_arrow_functions"
(disabled by default); enabling "harmony" will enable it as well.

BUG=v8:2700
LOG=N
R=marja@chromium.org

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

Patch from Adrián Pérez de Castro <aperez@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Whitespace change to trigger bots.

TBR=jochen@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Ensure that each profiling entry ends with a new line.

Currently this does not happen if the message builder buffer is full.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Unify LookupIterator::GetRoot and Objects::GetRootMap

BUG=none
R=verwaest@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Include symbol properties in Object.{create,defineProperties}

R=mstarzinger@chromium.org
BUG=v8:3440
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Serialize builtins by referencing canonical ones.

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove sequential sweeping mode and perform lazy sweeping when no sweeper threads are active.

BUG=
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Revert "Include symbol properties in Object.{create,defineProperties}"

TBR=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Revert "Remove sequential sweeping mode and perform lazy sweeping when no sweeper threads are active."

Reason: broke win64 build

This reverts commit 221bfdd2da2b6f3c1cbe77c5d197f1ea626b0bd2.

TBR=hpayer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix error message about read-only symbol properties.

R=rossberg@chromium.org
BUG=v8:3441
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Reland "Include symbol properties in Object.{create,defineProperties}"

Second try; implementation that doesn't rely on external arrays.

R=mstarzinger@chromium.org
BUG=v8:3440

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This CL simplifies var / const by ensuring the behavior is consistent in itself, and with regular JS semantics; between regular var/const and eval-ed var/const.

Legacy const is changed so that a declaration declares a configurable, but non-writable, slot, and the initializer reconfigures it (when possible) to non-configurable non-writable. This avoids the need for "the hole" as marker value in JSContextExtensionObjects and GlobalObjects. Undefined is used instead.

BUG=
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix d8 object printing (symbols, accessors)

R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Replace AddProperty by AddNamedProperty to speed up the common case

BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove ASSERT since there are tons of different ASSIGN variants

BUG=
R=rossberg@chromium.org

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

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