Revert r20652 "Handlify and convert string.length to new API-style accessor."

Reason: test failure with --noenable-sse3.

R=dcarney@chromium.org
TBR=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Bugfix: A TransitionArray can disappear during copy.

During handlification of TransitionArray code, an error was introduced
in TransitionArray::CopyInsert because after creating a copy of a
TransitionArray, it may be that the array disappears during GC
because it is modified during the marking of the owning map.

R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Partially fix semantics of Array.push()

Semantics of elements accessors are now preserved in all optimized code paths
through Array.push(). Previously it was possible to have inconsistent behavior
between optimized and unoptimized code, and there were cases where element
accessors were completely ingored.

R=verwaest@chromium.org

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

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

The usage of this define has been obsoleted by removal of UnsafePersistent
from Chromium.

Depends on https://codereview.chromium.org/230613005

R=dcarney@chromium.org
BUG=276323
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add support for --raw and --omit to js2c.
  --raw writes the raw source data to a separate file
  --omit allows omitting the source data from the generated files.

The intention is (future) support for having the embedder optionally
store the source data 'blob' and handling it to V8::Initialize, with
the goal of reducing the binary size of V8.

The patch also contains numerous unrelated changes/refactorings in the hope of increasing maintainability. Let me know whether you agree. In particular:
- Remove some unused code.
- Do not overwrite Python built-ins (e.g. the type() function)
- Do not use a string as exception object (no longer supported in python 2.7)
- Add command line argument handling + help text.
- Split logic into:
  - PrepareSources - which reads + preprocesses the source files
  - BuildMetadata - which takes the prepared sources and generates the data the code template needs.

BUG=355539
LOG=N
R=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20657 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
ARM64: Preserve x8 and x9 when necessary.

Fix a couple of places were x8 and x9 are excluded from lists of saved
registers. These are caller-saved registers, so C code can corrupt them.

x8 and x9 were originally reserved for debug code in the ARM64 port, so
we didn't bother preserving them, but they are now normal allocatable
registers.

BUG=v8:3263
LOG=N
R=rmcilroy@chromium.org, ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix android_arm64 target for experimental ndk

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Rename PushInt64AsTwoSmis to PushRegisterAsTwoSmis and support x32 as well.

R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
There is no definition for HArgumentsObject, so LDummyUse confuses the register allocator. I have recently made similar fix for HCapturedObject (see https://codereview.chromium.org/222283002/).

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
x64: Make sure that the upper half of a 64bit register contains 0 for int32 values.

BUG=360611
LOG=y
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Use the right kind of guard for debug code.

R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Avoid type assertion on object comparison in Hydrogen - the comparison is unreachable because of previous checks.

BUG=
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Drop unused name parameter of SetPropertyToField().

R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20667 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Implement handlified String::Equals and Name::Equals.

R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix chromium ranges output in v8 releases script.

Add space after commas for auto line break in spreadsheets.
Add default empty strings to avoid undefined values in spreadsheets.

BUG=
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove remnant from deferred error formatting on GC.

Deferred error formatting on GC was a failed experiment. It has been
removed, except for this part.  See r13371.

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20672 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add rmcilroy@chromium.org to src/OWNERS.

BUG=
R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Make sure that ranges are not accessed after range analysis. Remove HValue::PrintRangeTo.

The ranges are simply wrong after range analysis, and we should only rely on computed flags.

R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Unify mechanism to find trailing AllocationMementos

R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
ARM: Do not set FPSCR when converting to clamped uint8

Setting the FPSCR flags is expensive on some CPUs. Get rid of repeated
setting of the FPSCR by relying on the correct default flags being set
when doing uint8 clamping. Also use vcvt_u32_f64 instead of vcvt_s32_f64,
which enables removing the check against zero (vcvt_u32_f64 will clamp to
zero).

To be on the safe side, add asserts to check that the VFP rounding mode
flags are set to default as expected.

This increases performance of a hot loop repeatedly setting
Uint8ClampedArray values on some CPUs by as much as a factor of 12.

BUG=v8:3253
LOG=N
R=jacob.bramley@arm.com, rmcilroy@chromium.org, ulan@chromium.org

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

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