Improve Array.shift() performance for small arrays.

TEST=mjsunit/array-shift,mjsunit/array-shift2,mjsunit/array-shift3
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Simplify ConfigureHeap and change --max_new_space_size to --max_semi_space_size.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Reland "Removed default Isolate."

Changes compared to original CL: Until the Serializer/Isolate chaos is
cleaned up, we can't initalize/dispose cctests in a tidy way, see
cctest.cc.

BUG=359977
LOG=y
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Use ReplaceCode instead of set_code in debug.cc.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Cleaned up the weak lists hanging off the heap a bit.

 * Route all access to the 3 weak lists through getters/setters.

 * Removed superfluous visiting already done by ProcessWeakReferences.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Clean up stack guard interrupts.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Make new space iterable for --log-gc and --heap-stats options

R=hpayer@chromium.org
BUG=370827
TEST=test/mjsunit/regress/regress-370827.js
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Clean up Debugger::NotifyMessageHandler.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Sync change log and version file with trunk.

BUG=
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fixed d8 shutdown.

It is crucial that the Isolate is cleanly disposed, otherwise the
optimizing compiler thread happily continues to run.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Use HType::NonPrimitive() for unclassified HeapObjects (i.e. Maps).

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Eliminate further write barriers for old space allocations.

Storing a map or an immortal immovable object to old space
allocations requires no write barriers if the object is the
new space dominator.

R=hpayer@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Prevent calls to ReturnValue::Set with pointer-valued types.

Currently, this code will compile:
  SomePointer* p = ...;
  ReturnValue r = ...;
  r.Set(p);

What happens is that ReturnValue::Set has no pointer-ish overloads, but
a bool one, and hence C++ will convert the pointer to a bool and use
the Set(bool) overload. In other words, the example above is equivalent
to: r.Set(p ? true : false); Which probably isn't what the author had
in mind. This change adds a Set(void*) overload whose body forces a
compile error, to prevent this from happening inadvertently. The only
use of this indeed turned out to be an error.

(Wait for issue 364025 before submitting.)

BUG=
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix new space array check limit.

Also inline BuildNewSpaceArrayCheck() into its caller, because
the name BuildNewSpaceArrayCheck was confusing anyway, since
it has nothing do with new space actually.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Revert of Prevent calls to ReturnValue::Set with pointer-valued types. (https://codereview.chromium.org/240013004/)

Reason for revert:
Looks like this broke the "V8 Linux64 ASAN" build.

Original issue's description:
> Prevent calls to ReturnValue::Set with pointer-valued types.
>
> Currently, this code will compile:
>   SomePointer* p = ...;
>   ReturnValue r = ...;
>   r.Set(p);
>
> What happens is that ReturnValue::Set has no pointer-ish overloads, but
> a bool one, and hence C++ will convert the pointer to a bool and use
> the Set(bool) overload. In other words, the example above is equivalent
> to: r.Set(p ? true : false); Which probably isn't what the author had
> in mind. This change adds a Set(void*) overload whose body forces a
> compile error, to prevent this from happening inadvertently. The only
> use of this indeed turned out to be an error.
>
> (Said error was fixed/removed in crrev.com/267393002.)
>
> BUG=
> R=dcarney@chromium.org
>
> Committed: https://code.google.com/p/v8/source/detail?r=21217

R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add flag to set minimum semi-space size.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Reland - Arm64: Ensure that csp is always aligned to 16 byte values even if jssp is not.

Even although the Arm64 specification specifies that csp
only needs to be aligned to 16 bytes if it is dereferenced, some
implementations show poor performance.

Also makes the following change:
 - Enable CPU support for arm64 to enable probing of cpu implementer and cpu part.
 - Add ALWAYS_ALIGN_CSP CpuFeature for Arm64 and set it based on runtime probing of the cpu imp
 - Rename PrepareForPush and PrepareForPop to PushPreamble and PopPostamble and move PopPostabl

Original Review URL: https://codereview.chromium.org/264773004

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Presubmit checks recover:
1) runtime/references checks temporarily disabled (56 items left)
2) other errors fixed

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Require SSE2 support for the ia32 port.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Shorten autogenerated error message for functions only.

R=yangguo@chromium.org, Yang, rossberg@chromium.org
BUG=v8:3019, chromium:331971
LOG=Y

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

Patch from Andrey Adaykin <aandrey@chromium.org>.

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