Add map transition for observed objects

This patch enables objects to undergo a single transition when they become observed, avoiding the need to create a new map for every observed objects.

Observed objects which become unobserved does not cause another map transition and unobserved does not clear the observed bit on the map. The unobserved object.

R=verwaest@chromium.org

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

Patch from Rafael Weinstein <rafaelw@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Don't use StoreIC_ArrayLength on frozen arrays

The code previously assumed that an array with fast properties must have
a writable length property. But Object.freeze() now exposes a way to make
length read-only without moving the object into slow mode. This patch
simply adds a !is_frozen check to the IC code. Any future optimizations
to attribute-setting on JSArrays will need to make similar accomodations.

R=danno
BUG=v8:2711,259548

Review URL: https://chromiumcodereview.appspot.com/19115002
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Cleanup leftover definitions in HGraph.

R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This does not match ES6 spec but is the behavior in both Firefox and WebKit/Blink.

R=bmeurer@chromium.org

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

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

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Use corerct conversions for DataView accessors.

We now use DoubleTo(U)Int32 that follows ES specification.

R=titzer@chromium.org,rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Turn propagate deoptimizing mark into a proper HPhase.

Also turn the recursion on the domination chain into a loop with
an explicit stack, to avoid possible stack overflow here.

R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix possible stack overflow in range analysis.

Avoid the implicit recursion for range analysis, using a loop with
an explicit stack instead.

BUG=chromium:259452
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Current logger code is messy. It mixes together
four or even five different logging destinations.
I think we can extract the code related to a destination
into a separate class, do the same for the all destinations
and have four classes with more or less simple common logging
API

BUG=none
Meta-bug= https://code.google.com/p/chromium/issues/detail?id=260203

R=yangguo@chromium.org, yurys@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Use internal array as API function cache.

R=yangguo@chromium.org
BUG=chromium:260106
TEST=cctest/test-api/Regress260106

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Android lacks support for cxxabi.h.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix --deopt-every-n-times flag

(was broken since r15640)

R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix sloppy-mode 'const' under Harmony flag.

R=yangguo@chromium.org
BUG=173361

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Reland deprecation of HAllocateObject in favor of HAllocate.

This essentially relands r14930 and r14935 with adaptions to the current
code base. It models the instantiation of an implicit receiver for
CallNew nodes in hydrogen using HAllocate together with generic stores
instead of one specialized HAllocateObject instruction, hence creating a
single choking point for inlined allocation in optimized code.

R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Revert 15635: Turn ElementsTransitionAndStore stub into a HydrogenCodeStub

Causes breakage in crypto-(sha1|md5) SunSpider

TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix gyp_v8 to work with use_system_icu=1

If you want to use the system icu library, you'll need to use gyp_v8 (as
opposed to the standalone Makefiles)

BUG=v8:2475
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Make optimizations for debug configurable with compile flag.

To turn on optimizations for debug when building standalone, a compiler flag can be used:

make optdebug=on

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15678 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Disable compiled_transitions by default.

This was accidently re-enabled with r15674.

TBR=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Revert r15649 and fix for loop dominator propagation in GVN.

BUG=
R=mstarzinger@chromium.org

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

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