platform/upstream/v8.git
10 years agoIntroduce FeedbackNexus for vector-based ics.
mvstanton@chromium.org [Tue, 28 Oct 2014 14:50:18 +0000 (14:50 +0000)]
Introduce FeedbackNexus for vector-based ics.

A FeedbackNexus is the combination of a feedback vector, a slot(s) in
the vector, along with methods to query and manipulate that information
in a type-correct way.

A CallIC will have a CallICNexus, a LoadIC a LoadICNexus, etc.,
reflecting the fact that different types of ICs configure their data
in unique ways.

This CL limits itself to introducing and using the nexus type only for
CallICs. A follow-up will use them for Load and KeyedLoadICs for the
case when the --vector-ics flag is turned on.

The notion of a Nexus is also embedded at the lowest level of the IC
class. This makes sense because more ICs should become vector-based
in the future.

This CL is based on https://codereview.chromium.org/679073002/ which
should land first.

BUG=
R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24945}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[Sheriff] Skip tests that fail with TF on arm64.
machenbach@chromium.org [Tue, 28 Oct 2014 14:47:32 +0000 (14:47 +0000)]
[Sheriff] Skip tests that fail with TF on arm64.

TBR=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24944}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoClasses: Add more tests for prototype edge cases
arv@chromium.org [Tue, 28 Oct 2014 14:12:18 +0000 (14:12 +0000)]
Classes: Add more tests for prototype edge cases

BUG=3655
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24943}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Complete support for integer division/modulus in simplified lowering.
bmeurer@chromium.org [Tue, 28 Oct 2014 13:56:26 +0000 (13:56 +0000)]
[turbofan] Complete support for integer division/modulus in simplified lowering.

Also add backend flags that tell whether integer division/modulus is
generally safe, i.e. does not trap on overflow or divide by zero.

TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24942}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoUse a simpler KeyedStoreGeneric stub
jkummerow@chromium.org [Tue, 28 Oct 2014 13:53:53 +0000 (13:53 +0000)]
Use a simpler KeyedStoreGeneric stub

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24941}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoImprove branch creation in release scripts.
machenbach@chromium.org [Tue, 28 Oct 2014 13:42:58 +0000 (13:42 +0000)]
Improve branch creation in release scripts.

Use 'git new-branch' for creating new branches.

BUG=410721
LOG=n
TEST=script_test.py
R=tandrii@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24940}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoClasses: Add test for method prototype
arv@chromium.org [Tue, 28 Oct 2014 13:39:41 +0000 (13:39 +0000)]
Classes: Add test for method prototype

Methods should not have a prototype property

BUG=v8:3330
LOG=y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24939}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoGet stack trace for uncaught exceptions/promise rejections from the simple stack...
aandrey@chromium.org [Tue, 28 Oct 2014 13:24:36 +0000 (13:24 +0000)]
Get stack trace for uncaught exceptions/promise rejections from the simple stack when available.

We can convert simple stack trace of an Error object to the detailed stack that
is used for debugging. Do so when available, and only then fall back to
reporting stack trace at throw site.

R=yangguo@chromium.org, Yang
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#24938}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMove AST node counting to post-pass
wingo@igalia.com [Tue, 28 Oct 2014 13:23:54 +0000 (13:23 +0000)]
Move AST node counting to post-pass

R=mstarzinger@chromium.org, svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24937}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoSilence control reducer tracing a bit.
mstarzinger@chromium.org [Tue, 28 Oct 2014 13:14:53 +0000 (13:14 +0000)]
Silence control reducer tracing a bit.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24936}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] LoadElement should not have a control input.
bmeurer@chromium.org [Tue, 28 Oct 2014 13:00:11 +0000 (13:00 +0000)]
[turbofan] LoadElement should not have a control input.

TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24935}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoClasses: Add basic support for properties
arv@chromium.org [Tue, 28 Oct 2014 12:43:05 +0000 (12:43 +0000)]
Classes: Add basic support for properties

This adds the properties to the prototype and the constructor.

BUG=v8:3330
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24934}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAllow duplicate property names in classes
arv@chromium.org [Tue, 28 Oct 2014 12:23:26 +0000 (12:23 +0000)]
Allow duplicate property names in classes

ES6 no longer makes duplicate properties an error. However, we
continue to treat duplicate properties in strict mode object
literals as errors. With this change we allow duplicate properties
in class bodies. We continue to flag duplicate constructors as an
error as required by ES6.

BUG=v8:3570
LOG=Y
R=marja@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24933}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRemoved non-existent files from gyp and GN builds.
mvstanton@chromium.org [Tue, 28 Oct 2014 12:09:48 +0000 (12:09 +0000)]
Removed non-existent files from gyp and GN builds.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24932}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Reduce (x & K) & K to x & K.
bmeurer@chromium.org [Tue, 28 Oct 2014 11:57:20 +0000 (11:57 +0000)]
[turbofan] Reduce (x & K) & K to x & K.

TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24931}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMake floating merges respected minimum RPO of coupled phis.
mstarzinger@chromium.org [Tue, 28 Oct 2014 11:38:22 +0000 (11:38 +0000)]
Make floating merges respected minimum RPO of coupled phis.

R=bmeurer@chromium.org, jarin@chromium.org
TEST=cctest/test-scheduler/LoopedFloatingDiamond

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

Cr-Commit-Position: refs/heads/master@{#24930}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoUse shared function info for eval cache key.
yangguo@chromium.org [Tue, 28 Oct 2014 10:00:37 +0000 (10:00 +0000)]
Use shared function info for eval cache key.

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24927}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Work-around stack overflow in zlib.
bmeurer@chromium.org [Tue, 28 Oct 2014 09:54:00 +0000 (09:54 +0000)]
[turbofan] Work-around stack overflow in zlib.

TBR=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24926}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoPrevent recursion in the debug event listener.
yangguo@chromium.org [Tue, 28 Oct 2014 09:44:16 +0000 (09:44 +0000)]
Prevent recursion in the debug event listener.

R=ulan@chromium.org
BUG=chromium:409614
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#24924}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoSwitch schedule early phase to use forward propagation.
mstarzinger@chromium.org [Tue, 28 Oct 2014 09:34:35 +0000 (09:34 +0000)]
Switch schedule early phase to use forward propagation.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24923}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoWindows: use SystemTimeToTzSpecificLocalTime instead of localtime_s.
ulan@chromium.org [Tue, 28 Oct 2014 08:55:28 +0000 (08:55 +0000)]
Windows: use SystemTimeToTzSpecificLocalTime instead of localtime_s.

The localtime_s function produces incorrect results for russian time zone.

BUG=chromium:417640
LOG=Y
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24922}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agomove functions in v8::V8 that should be on v8::Isolate
dcarney@chromium.org [Tue, 28 Oct 2014 08:43:15 +0000 (08:43 +0000)]
move functions in v8::V8 that should be on v8::Isolate

R=marja@chromium.org, svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#24921}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix ASAN warning.
mvstanton@chromium.org [Tue, 28 Oct 2014 08:34:11 +0000 (08:34 +0000)]
Fix ASAN warning.

BUG=
TBR=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24920}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Improve typed lowering for JSToBoolean.
bmeurer@chromium.org [Tue, 28 Oct 2014 08:33:52 +0000 (08:33 +0000)]
[turbofan] Improve typed lowering for JSToBoolean.

- JSToBoolean(x:string) => BooleanNot(NumberEqual(x.length, #0))
- JSToBoolean(phi(x1,...,xn):primitive) => phi(JSToBoolean(x1),...,JSToBoolean(xn))

TEST=cctest,mjsunit/asm/do-while,mjsunit/boolean,unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24919}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Turn slow case for stack check into deferred code.
bmeurer@chromium.org [Tue, 28 Oct 2014 08:33:03 +0000 (08:33 +0000)]
[turbofan] Turn slow case for stack check into deferred code.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24918}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Minor cleanups to lowering of typed array loads/stores.
bmeurer@chromium.org [Tue, 28 Oct 2014 08:28:36 +0000 (08:28 +0000)]
[turbofan] Minor cleanups to lowering of typed array loads/stores.

TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24917}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRevert "[turbofan] Merge GenericNode with Node."
jarin@chromium.org [Mon, 27 Oct 2014 22:33:52 +0000 (22:33 +0000)]
Revert "[turbofan] Merge GenericNode with Node."

This reverts commit a238443c00ebbd8afb48ee7ad336e0ff163c84b5 (r24915)
for tanking benchmarks.

TBR=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24916}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Merge GenericNode with Node.
jarin@chromium.org [Mon, 27 Oct 2014 20:36:56 +0000 (20:36 +0000)]
[turbofan] Merge GenericNode with Node.

BUG=
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24915}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMake NextCodeLink pointer 8-byte aligned after GC pointer updating uses atomics.
dusan.milosavljevic@imgtec.com [Mon, 27 Oct 2014 18:24:05 +0000 (18:24 +0000)]
Make NextCodeLink pointer 8-byte aligned after GC pointer updating uses atomics.

After r24737 pointer updating is done by atomic operations which strictly
require target address to be 8-byte alignment on MIPS64.

The alignment is broken on 64-bit arches because InstructionSize is first field
and has Int size.

Order of fields in object layout are changed to make kNextCodeLinkOffset
divisible by 8. The size of code object header remains the same.

TEST=cctest/test-debug/* on MIPS64
BUG=
R=jkummerow@chromium.org, paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#24914}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix for the cctest compilation issue on Mac after r24911.
ishell@chromium.org [Mon, 27 Oct 2014 16:58:38 +0000 (16:58 +0000)]
Fix for the cctest compilation issue on Mac after r24911.

TBR=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24913}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd serializer test case to bug fix in r24871.
yangguo@chromium.org [Mon, 27 Oct 2014 16:40:04 +0000 (16:40 +0000)]
Add serializer test case to bug fix in r24871.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24912}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoA type vector with multiple IC types needs metadata.
mvstanton@chromium.org [Mon, 27 Oct 2014 16:34:28 +0000 (16:34 +0000)]
A type vector with multiple IC types needs metadata.

This CL adds a bitset to describe the type of IC in each IC slot.
This is necessary for clearing ICs of different types.

With FLAG_vector_ics off (the current state), it's not required because
CALL_IC is the only type of IC in the vector.

R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24911}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRevert "Move AST node counting to post-pass"
wingo@igalia.com [Mon, 27 Oct 2014 16:25:11 +0000 (16:25 +0000)]
Revert "Move AST node counting to post-pass"

This reverts commit 698356720824559a6bd81c24be707b44ac277526 for
breaking regress-96526-002 among other things.

TBR=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24910}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMove AST node counting to post-pass
wingo@igalia.com [Mon, 27 Oct 2014 15:00:09 +0000 (15:00 +0000)]
Move AST node counting to post-pass

R=mstarzinger@chromium.org, svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24909}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRevert "Enable turbofan deoptimization by default."
jarin@chromium.org [Mon, 27 Oct 2014 14:36:36 +0000 (14:36 +0000)]
Revert "Enable turbofan deoptimization by default."

This reverts commit 866032692ff59ac4282e6d1a483cbb52870cc784 for breaking
tests.

TBR=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24908}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoSimpleMove now calls [[Has]] before [[Get]] when moving elements
adamk@chromium.org [Mon, 27 Oct 2014 13:04:46 +0000 (13:04 +0000)]
SimpleMove now calls [[Has]] before [[Get]] when moving elements

BUG=v8:3643
LOG=n
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24907}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRemove unused return values from PreEdge visitor.
mstarzinger@chromium.org [Mon, 27 Oct 2014 12:57:50 +0000 (12:57 +0000)]
Remove unused return values from PreEdge visitor.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24906}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoEnable turbofan deoptimization by default.
jarin@chromium.org [Mon, 27 Oct 2014 12:46:44 +0000 (12:46 +0000)]
Enable turbofan deoptimization by default.

BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24905}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] reduce allocations outside of pipeline
dcarney@chromium.org [Mon, 27 Oct 2014 12:39:20 +0000 (12:39 +0000)]
[turbofan] reduce allocations outside of pipeline

BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24904}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRevert "Make all references from root shortcuts (except one to GC roots)"
yurys@chromium.org [Mon, 27 Oct 2014 12:37:40 +0000 (12:37 +0000)]
Revert "Make all references from root shortcuts (except one to GC roots)"

This reverts commit 940418d2e1150499a28cca60b5dd138d351ec652. It resulted in orphan (Document DOM trees) and (Detached DOM trees) nodes.

BUG=chromium:414190
LOG=N
TBR=loislo@chromium.org, yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24903}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMake all references from root shortcuts (except one to GC roots)
yurys@chromium.org [Mon, 27 Oct 2014 12:10:19 +0000 (12:10 +0000)]
Make all references from root shortcuts (except one to GC roots)

Eventually we are going to nuke this shortcuts from root entry altogether. This fix makes (GC roots) retained size equal to the snapshot's total size.

BUG=chromium:414190
LOG=N
R=loislo@chromium.org, yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24902}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRevert 'Introduce phantom weak handles in the API and use them internally for debug...
erikcorry@chromium.org [Mon, 27 Oct 2014 12:03:25 +0000 (12:03 +0000)]
Revert 'Introduce phantom weak handles in the API and use them internally for debug info'

Revert of https://codereview.chromium.org/649563006/ due to layout test
failures.
BUG=
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24901}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRevert "Limit the number of transitions allowed per hidden class." Due to crashes...
verwaest@chromium.org [Mon, 27 Oct 2014 11:57:58 +0000 (11:57 +0000)]
Revert "Limit the number of transitions allowed per hidden class." Due to crashes in ClearMapTransitions

BUG=
R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24900}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoIntroduce phantom weak handles in the API and use them internally for debug info
erikcorry@chromium.org [Mon, 27 Oct 2014 11:04:33 +0000 (11:04 +0000)]
Introduce phantom weak handles in the API and use them internally for debug info

R=jochen@chromium.org, ulan@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24899}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix Win64 build after r24896
danno@chromium.org [Mon, 27 Oct 2014 10:29:52 +0000 (10:29 +0000)]
Fix Win64 build after r24896

TBR=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24898}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix non-TF targets after r24874.
akos.palfi@imgtec.com [Mon, 27 Oct 2014 10:29:20 +0000 (10:29 +0000)]
Fix non-TF targets after r24874.

Fix mips64 and presumably x87.

BUG=
R=mstarzinger@chromium.org, sigurds@chromium.org

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

Patch from Paul Lind <paul.lind@imgtec.com>.

Cr-Commit-Position: refs/heads/master@{#24897}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Reduce memory consumption of graph building
danno@chromium.org [Mon, 27 Oct 2014 10:12:16 +0000 (10:12 +0000)]
[turbofan] Reduce memory consumption of graph building

Allow reservation of additional input capacity when creating nodes to prevent switching to deque representation when adding well-known additional inputs.

Also ensure that only a single temporary buffer is used to create temporary input arrays before allocating nodes.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24896}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] delete graph and schedule before register allocation.
dcarney@chromium.org [Mon, 27 Oct 2014 09:36:51 +0000 (09:36 +0000)]
[turbofan] delete graph and schedule before register allocation.

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

BUG=

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

Cr-Commit-Position: refs/heads/master@{#24894}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agopass isolate to Value::To* functions
dcarney@chromium.org [Mon, 27 Oct 2014 09:02:49 +0000 (09:02 +0000)]
pass isolate to Value::To* functions

BUG=
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24893}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] add absolute peak to stats
dcarney@chromium.org [Mon, 27 Oct 2014 08:58:55 +0000 (08:58 +0000)]
[turbofan] add absolute peak to stats

R=danno@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#24892}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoImplement control reducer, which reduces branches and phis together in a single fixpoint.
titzer@chromium.org [Mon, 27 Oct 2014 08:41:32 +0000 (08:41 +0000)]
Implement control reducer, which reduces branches and phis together in a single fixpoint.

R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24891}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS64: Fix bug in super assignment from r24570.
paul.lind@imgtec.com [Sun, 26 Oct 2014 22:43:17 +0000 (22:43 +0000)]
MIPS64: Fix bug in super assignment from r24570.

TEST=mjsunit/harmony/super.js
BUG=
R=akos.palfi@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#24889}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Implement the correct semantics for integer division/modulus.
bmeurer@chromium.org [Sun, 26 Oct 2014 12:49:56 +0000 (12:49 +0000)]
[turbofan] Implement the correct semantics for integer division/modulus.

Also fix the sdiv/udiv instructions on ARM as a nice side effect.

TEST=cctest,unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24888}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoHandle noi18n in deopt.
jarin@chromium.org [Sun, 26 Oct 2014 10:44:57 +0000 (10:44 +0000)]
Handle noi18n in deopt.

TBR=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24887}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd more missing deopts
jarin@chromium.org [Sun, 26 Oct 2014 10:24:49 +0000 (10:24 +0000)]
Add more missing deopts

BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24886}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd remaining @@toStringTag symbols to builtins
dslomov@chromium.org [Fri, 24 Oct 2014 19:28:23 +0000 (19:28 +0000)]
Add remaining @@toStringTag symbols to builtins

R=dslomov@chromium.org

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

Patch from Caitlin Potter <caitpotter88@gmail.com>.

Cr-Commit-Position: refs/heads/master@{#24885}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoSimpleSlice now calls [[Get]] before [[Has]] when generating copy
adamk@chromium.org [Fri, 24 Oct 2014 18:07:59 +0000 (18:07 +0000)]
SimpleSlice now calls [[Get]] before [[Has]] when generating copy

SparseSlice does not need this (non-optimal) reordering since its
callers guarantee that [[Get]] has no side effects on the passed-in array.

BUG=v8:3643
LOG=n
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24884}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoWiden definition of %HasComplexElements() to include non-enumerability
adamk@chromium.org [Fri, 24 Oct 2014 18:04:03 +0000 (18:04 +0000)]
Widen definition of %HasComplexElements() to include non-enumerability

This avoids using the Sparse methods on objects with non-enumerable elements,
which can cause the 'enumerable: false' bit to get lost in the operation.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24883}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[arm64] Use logical immediates when matching tst instructions.
baptiste.afsa@arm.com [Fri, 24 Oct 2014 15:29:19 +0000 (15:29 +0000)]
[arm64] Use logical immediates when matching tst instructions.

R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24882}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix "jst" GDB macro
jkummerow@chromium.org [Fri, 24 Oct 2014 15:04:02 +0000 (15:04 +0000)]
Fix "jst" GDB macro

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24881}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoCheck string literals with escapes in PreParserTraits::GetSymbol()
dslomov@chromium.org [Fri, 24 Oct 2014 15:02:29 +0000 (15:02 +0000)]
Check string literals with escapes in PreParserTraits::GetSymbol()

LOG=Y
BUG=v8:3606
R=arv@chromium.org, marja@chromium.org

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

Patch from Caitlin Potter <caitpotter88@gmail.com>.

Cr-Commit-Position: refs/heads/master@{#24880}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoWhitespace change for testing gnumbd.
machenbach@chromium.org [Fri, 24 Oct 2014 14:40:43 +0000 (14:40 +0000)]
Whitespace change for testing gnumbd.

Cr-Commit-Position: refs/heads/master@{#24878}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix bugs in Scheduler hoisting and RPO loop bounds computations.
titzer@chromium.org [Fri, 24 Oct 2014 13:57:32 +0000 (13:57 +0000)]
Fix bugs in Scheduler hoisting and RPO loop bounds computations.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24877}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd Schedule::InsertBranch to fuse control flow graphs.
mstarzinger@chromium.org [Fri, 24 Oct 2014 13:48:02 +0000 (13:48 +0000)]
Add Schedule::InsertBranch to fuse control flow graphs.

R=jarin@chromium.org
TEST=cctest/test-schedule/TestScheduleInsertBranch

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

Cr-Commit-Position: refs/heads/master@{#24876}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoonly define ARRAYSIZE_UNSAFE for NaCl builds
svenpanne@chromium.org [Fri, 24 Oct 2014 13:21:17 +0000 (13:21 +0000)]
only define ARRAYSIZE_UNSAFE for NaCl builds

Now that C++11 is allowed, we can use arraysize instead of
ARRAYSIZE_UNSAFE, except in NaCl builds.  So let's move this
macro inside an NaCl ifdef.

BUG=chromium:405225
LOG=y
R=jochen@chromium.org

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

Patch from Mostyn Bramley-Moore <mostynb@opera.com>.

Cr-Commit-Position: refs/heads/master@{#24875}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd Float64Floor, Float64Ceil, Float64RoundTruncate, Float64RoundTiesAway operators.
sigurds@chromium.org [Fri, 24 Oct 2014 13:06:48 +0000 (13:06 +0000)]
Add Float64Floor, Float64Ceil, Float64RoundTruncate, Float64RoundTiesAway operators.

These operators are not supported by any backends yet, and a backend is free to not support them.

R=bmeurer@chromium.org
TEST=unittest/machine-operator

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

Cr-Commit-Position: refs/heads/master@{#24874}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAstValueFactory: make true, false, null, undefined and "the hole" unique values.
marja@chromium.org [Fri, 24 Oct 2014 13:02:23 +0000 (13:02 +0000)]
AstValueFactory: make true, false, null, undefined and "the hole" unique values.

They were not, so we were creating several instances of them, one for each time
they occurred in the source code.

It's not known to have caused efficiency problems though, so this is a sanity
fix more than an efficiency fix.

Note that numbers are still not unique.

BUG=
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24873}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoEnable --serialize-toplevel by default.
yangguo@chromium.org [Fri, 24 Oct 2014 12:41:52 +0000 (12:41 +0000)]
Enable --serialize-toplevel by default.

R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24872}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoTweaks to the code serializer.
yangguo@chromium.org [Fri, 24 Oct 2014 12:40:05 +0000 (12:40 +0000)]
Tweaks to the code serializer.

- consider the source string as a special sort of back reference.
- use repeat op code for more root members.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24871}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoTurboFan calls to vector-based ics need to resolve a slot to an index.
mvstanton@chromium.org [Fri, 24 Oct 2014 12:39:49 +0000 (12:39 +0000)]
TurboFan calls to vector-based ics need to resolve a slot to an index.

This is to cope with the recent division of the TypeFeedbackVector into
Slots and ICSlots.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24870}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoImprove printing for Symbols.
mvstanton@chromium.org [Fri, 24 Oct 2014 12:36:45 +0000 (12:36 +0000)]
Improve printing for Symbols.

Private symbols we create in the heap don't have names, but we can
resolve them to a constant string.

This gives handy debugger output like:

(gdb) job 0x2020c67d
0x2020c67d: [Symbol]
 - hash: 547385396
 - name: 0x20208091 <undefined> (uninitialized_symbol)
 - private: 1
 - own: 1
$7 = void
(gdb)

or with ShortPrint() in an array:

...
  [5]: 0x2020c67d <Symbol: 547385396 (uninitialized_symbol)>
...

Printing help for internal symbols

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24869}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoUse memcpy in List::AddAll for fundamental types.
yangguo@chromium.org [Fri, 24 Oct 2014 12:33:58 +0000 (12:33 +0000)]
Use memcpy in List::AddAll for fundamental types.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24868}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoGenerate fake basic block for Terminate node.
mstarzinger@chromium.org [Fri, 24 Oct 2014 12:32:42 +0000 (12:32 +0000)]
Generate fake basic block for Terminate node.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24867}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoPropertyICCompiler: expose monomorphic keyed load handler creation.
mvstanton@chromium.org [Fri, 24 Oct 2014 12:28:22 +0000 (12:28 +0000)]
PropertyICCompiler: expose monomorphic keyed load handler creation.

Simple refactoring that is useful for upcoming --vector-ic changes.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24866}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoWhitespace change.
machenbach@chromium.org [Fri, 24 Oct 2014 12:17:17 +0000 (12:17 +0000)]
Whitespace change.

Cr-Commit-Position: refs/heads/master@{#24865}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoWhitespace change.
machenbach@chromium.org [Fri, 24 Oct 2014 11:58:27 +0000 (11:58 +0000)]
Whitespace change.

Cr-Commit-Position: refs/heads/master@{#24864}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoWhitespace change to test gnumbd.
machenbach@chromium.org [Fri, 24 Oct 2014 09:48:58 +0000 (09:48 +0000)]
Whitespace change to test gnumbd.

TBR=agable@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24863}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[x86] Fix register constraints for multiply-high.
bmeurer@chromium.org [Fri, 24 Oct 2014 09:36:40 +0000 (09:36 +0000)]
[x86] Fix register constraints for multiply-high.

TEST=mjsunit/compiler,unittests
R=titzer@chromium.org

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

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

10 years agoLog code event for deserialized code.
yangguo@chromium.org [Fri, 24 Oct 2014 08:37:03 +0000 (08:37 +0000)]
Log code event for deserialized code.

R=mvstanton@chromium.org

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

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

10 years agoUnbreak c1visualizer.
bmeurer@chromium.org [Fri, 24 Oct 2014 08:25:00 +0000 (08:25 +0000)]
Unbreak c1visualizer.

TBR=jarin@chromium.org

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

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

10 years agoX87: Classes: implement 'new super'.
weiliang.lin@intel.com [Fri, 24 Oct 2014 07:34:20 +0000 (07:34 +0000)]
X87: Classes: implement 'new super'.

port r24825.

original commit message:

  Classes: implement 'new super'.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

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

10 years agoMake block writes in the serializer more efficient.
yangguo@chromium.org [Fri, 24 Oct 2014 07:29:39 +0000 (07:29 +0000)]
Make block writes in the serializer more efficient.

And also fix a OOB read in SerializeExternalString.

R=vogelheim@chromium.org

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

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

10 years agoLimit the number of transitions allowed per hidden class.
verwaest@chromium.org [Fri, 24 Oct 2014 05:29:54 +0000 (05:29 +0000)]
Limit the number of transitions allowed per hidden class.

Each time a transition is added to a hidden class, the whole
transitions array must be copied, which causes poor performance
in some circumstances.  This change limits the maximum size of
the transition array, avoiding this behavior in the pathological
case.  For example, this improves the performance of the EtchMark
benchmark by nearly 60%.

BUG=v8:3616
LOG=
R=verwaest@chromium.org, svenpanne@chromium.org

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

Patch from Kevin M. McCormick <mckev@amazon.com>.

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

10 years agoFix sparse versions of Array slice/splice to use [[DefineOwnProperty]] to generate...
adamk@chromium.org [Thu, 23 Oct 2014 21:13:29 +0000 (21:13 +0000)]
Fix sparse versions of Array slice/splice to use [[DefineOwnProperty]] to generate return value

BUG=chromium:423633
LOG=n
R=verwaest@chromium.org

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

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

10 years agoNarrow cases where Sparse/Smart versions of Array methods are used
adamk@chromium.org [Thu, 23 Oct 2014 18:21:50 +0000 (18:21 +0000)]
Narrow cases where Sparse/Smart versions of Array methods are used

Added a new %HasComplexElements runtime function (meaning elements that are
non-writable, non-configurable, or have getters and setters) and use it
in UseSparseVariant to filter out cases where the sparse optimizations
can cause V8 to fall out of spec compliance.

Renamed SmartMove/SmartSlice to SparseMove/SparseSlice and guarded them
with the new and improved UseSparseVariant.

These two changes combine let us pass nearly every test in bug-2615.js,
as well as fixing reverse and join on sparse arrays.

Note that there are various test changes in this patch that correct existing
tests to match the correct-by-spec behavior.

This patch depends on https://codereview.chromium.org/666883009, which
better-aligns the behavior of SmartMove with SimpleMove.

BUG=v8:2615,v8:3612,v8:3621
LOG=y
R=mstarzinger@chromium.org

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

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

10 years agoChange SmartMove no-op behavior to match SimpleMove (and ES6 spec)
adamk@chromium.org [Thu, 23 Oct 2014 17:46:34 +0000 (17:46 +0000)]
Change SmartMove no-op behavior to match SimpleMove (and ES6 spec)

The previous behavior, which caused Array.prototype.unshift() (with no args)
to have side-effects, no longer matches the spec (ES6 changed the no-arg behavior
in April 2014). The new SmartMove behavior is also compatible with current
versions of Firefox.

This is a baby step towards getting rid of SmartMove; it isolates the test
change in this patch, instead of lumping it in confusingly with all the
other test updates necessary for moving away from SmartMove.

R=dslomov@chromium.org

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

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

10 years agoMove special RPO computation into separate class.
mstarzinger@chromium.org [Thu, 23 Oct 2014 16:29:43 +0000 (16:29 +0000)]
Move special RPO computation into separate class.

R=jarin@chromium.org

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

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

10 years agoMake GIT ignore all turbo.cfg files.
mstarzinger@chromium.org [Thu, 23 Oct 2014 16:11:56 +0000 (16:11 +0000)]
Make GIT ignore all turbo.cfg files.

R=jarin@chromium.org

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

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

10 years agoShrink new space in idle notification.
ulan@chromium.org [Thu, 23 Oct 2014 15:16:27 +0000 (15:16 +0000)]
Shrink new space in idle notification.

BUG=chromium:424423
LOG=Y
R=jochen@chromium.org

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

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

10 years agoDisambiguate pow
jarin@chromium.org [Thu, 23 Oct 2014 15:09:38 +0000 (15:09 +0000)]
Disambiguate pow

TBR=bmeurer@chromium.org
BUG=

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

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

10 years agoFixed mutable heap numbers leak in JSON parser.
ishell@chromium.org [Thu, 23 Oct 2014 14:41:39 +0000 (14:41 +0000)]
Fixed mutable heap numbers leak in JSON parser.

BUG=chromium:423687
LOG=N
R=verwaest@chromium.org

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

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

10 years ago[turbofan] Use range types to type and lower arithmetic ops.
jarin@chromium.org [Thu, 23 Oct 2014 14:40:43 +0000 (14:40 +0000)]
[turbofan] Use range types to type and lower arithmetic ops.

This is based on Georg's work on typing arithmetic operations (https://codereview.chromium.org/658743002/).

Instead of weakening to bitset types, we weaken to the closest 2^n
limit if we see that we are re-typing a node with a range type (which
means that the node can be part of a cycle, so we might need
to speed up the fixpoint there).

BUG=
R=rossberg@chromium.org

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

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

10 years agoWhitespace change to trigger bots.
machenbach@chromium.org [Thu, 23 Oct 2014 14:38:25 +0000 (14:38 +0000)]
Whitespace change to trigger bots.

TBR=bmeurer@chromium.org

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

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

10 years agoSwitch release scripts to new git workflow.
machenbach@chromium.org [Thu, 23 Oct 2014 14:27:15 +0000 (14:27 +0000)]
Switch release scripts to new git workflow.

BUG=410721
TBR=tandrii@chromium.org

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

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

10 years agofix another static initializer
dcarney@chromium.org [Thu, 23 Oct 2014 12:59:48 +0000 (12:59 +0000)]
fix another static initializer

TBR=bmeurer@chromium.org

BUG=

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

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

10 years agoharmony-scoping: Allow 'const' iteration variables in strict mode.
dslomov@chromium.org [Thu, 23 Oct 2014 12:30:20 +0000 (12:30 +0000)]
harmony-scoping: Allow 'const' iteration variables in strict mode.

R=rossberg@chromium.org
BUG=v8:2506
LOG=N

Committed: https://code.google.com/p/v8/source/detail?r=24834

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

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

10 years agoMIPS: Classes: implement 'new super'.
akos.palfi@imgtec.com [Thu, 23 Oct 2014 12:05:46 +0000 (12:05 +0000)]
MIPS: Classes: implement 'new super'.

Port r24825 (b26f0181)

BUG=
R=dslomov@chromium.org, dusan.milosavljevic@imgtec.com

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

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

10 years agoReland 'Simplify TurboFan's c1visualizer file handling.'
svenpanne@chromium.org [Thu, 23 Oct 2014 11:56:26 +0000 (11:56 +0000)]
Reland 'Simplify TurboFan's c1visualizer file handling.'

This is r24819 plus some tiny fixes to make the Mac toolchain happy.

TBR=bmeurer@chromium.org

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

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

10 years agoRevert "harmony-scoping: Allow 'const' iteration variables in strict mode."
dslomov@chromium.org [Thu, 23 Oct 2014 11:55:19 +0000 (11:55 +0000)]
Revert "harmony-scoping: Allow 'const' iteration variables in strict mode."

This reverts commit r24834 for breaking debug tests.

TBR=bmeurer@chromium.org

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

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

10 years agoRemove deprecated lexer-shell.
bmeurer@chromium.org [Thu, 23 Oct 2014 11:42:30 +0000 (11:42 +0000)]
Remove deprecated lexer-shell.

R=marja@chromium.org

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

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