Avoid copying flow-sensitive state when only a goto separates blocks.

BUG=
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Provide "freeBuffer()" primitive for testing under ASan.

R=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Avoid useless #ifdef DEBUG checks for the --trace-ic flag.

FLAG_trace_ic is constant false in non-DEBUG builds anyways.

R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Split Persistent into Persistent and UniquePersistent

R=svenpanne@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add ES specification reference to DateNow.

R=yangguo@chromium.org

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

Patch from Victor Costan <costan@gmail.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Avoid trying to decode the raw inline constant which is part of the aged code prologue.

BUG=v8:3007
LOG=N
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove the strict-mode flag from store handlers. It's only relevant to the IC stub.

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
The goal is to discover the appropriate heap space for objects created in full
code. By the time we optimize the code, we'll be able to decide on new or old
space based on the number of surviving objects after one or more gcs.

The mechanism is a "memento" placed behind objects in the heap. It's currently
done for array and object literals, with plans to use mementos for constructed
objects as well (in a later CL).

The feature is behind the flag allocation_site_pretenuring, currently off.

R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
ARM/MIPS compilation error.

Due to an error during platform porting.

R=yangguo@chromium.org

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

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

R=yangguo@chromium.org

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

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

Based on prototype at

  https://github.com/rossberg-chromium/js-promise

which informed the latest spec draft version at

  https://github.com/domenic/promises-unwrapping/blob/master/README.md

Activated by --harmony-promises.

Feature complete with respect to the draft spec, plus the addition of .when and .deferred methods. Final naming and other possible deviations from the current draft will hopefully be resolved soon after the next TC39 meeting.

This CL also generalises the Object.observe delivery loop into a simplistic microtask loop. Currently, all observer events are delivered before invoking any promise handler in a single fixpoint iteration. It's not clear yet what the final semantics is supposed to be (should there be a global event ordering?), but it will probably require a more thorough event loop abstraction inside V8 once we get there.

R=dslomov@chromium.org, yhirano@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Mark deprecated APIs with relatively little use as deprecated

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Shorten autogenerated error message.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix missing bounds check in n-arguments Array constructor.

LOG=N
R=mvstanton@chromium.org
BUG=v8:3027
TEST=mjsunit/regress/regress-3027

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Added tracing support for pretenuring.

BUG=
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
ARM: Optimize fixed double arguments

Optimize fixed double arguments to arithmetic Lithium instructions.

TEST=none
BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Move more type collection logic from AST to oracle.

(More to come in follow-up CL.)

R=jkummerow@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add fast make and test all target.

The new target called "quickcheck" builds and tests with several configurations using recent test runner speed improvements.

Runtime from scratch (after make clean): < 8 min
Runtime tests only: < 3 min

TEST=make quickcheck
R=jkummerow@chromium.org, yangguo@chromium.org

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

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

R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix allocation memento bookeeping code for js arrays.

BUG=
R=mvstanton@chromium.org

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

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