platform/upstream/v8.git
9 years agogrokdump.py: work around int size limits on xrange
erikcorry [Thu, 28 May 2015 13:12:06 +0000 (06:12 -0700)]
grokdump.py: work around int size limits on xrange

R=hpayer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28680}

9 years ago[test] Fix assert for predictable mode in test runner.
machenbach [Thu, 28 May 2015 13:06:35 +0000 (06:06 -0700)]
[test] Fix assert for predictable mode in test runner.

NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28679}

9 years agoUpdate all callsites of the TryCatch ctor to pass an Isolate
jochen [Thu, 28 May 2015 12:49:31 +0000 (05:49 -0700)]
Update all callsites of the TryCatch ctor to pass an Isolate

BUG=4134
R=vogelheim@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28678}

9 years ago[turbofan] Record SharedFunctionInfo of inlined functions.
bmeurer [Thu, 28 May 2015 12:12:43 +0000 (05:12 -0700)]
[turbofan] Record SharedFunctionInfo of inlined functions.

We need the shared function info of inlined functions to prevent code
flushing for their unoptimized code, and also to make sure that liveedit
can find the proper functions to deoptimize.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28677}

9 years ago[test] Use instrumented libc++ for asan and tsan builds.
machenbach [Thu, 28 May 2015 11:50:44 +0000 (04:50 -0700)]
[test] Use instrumented libc++ for asan and tsan builds.

BUG=chromium:489254
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28676}

9 years ago[deoptimizer] Materialize double values as smis whenever possible.
bmeurer [Thu, 28 May 2015 10:30:54 +0000 (03:30 -0700)]
[deoptimizer] Materialize double values as smis whenever possible.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28675}

9 years ago[turbofan] Remove the JSGraph dependency from the ControlFlowOptimizer.
bmeurer [Thu, 28 May 2015 09:12:50 +0000 (02:12 -0700)]
[turbofan] Remove the JSGraph dependency from the ControlFlowOptimizer.

The control flow optimization should work independent of the JSGraph. We
used the JSGraph there because it was convinient, not because it was
necessary.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28674}

9 years ago[turbofan] Remove the useless SimplifiedOperatorReducer.
bmeurer [Thu, 28 May 2015 08:38:02 +0000 (01:38 -0700)]
[turbofan] Remove the useless SimplifiedOperatorReducer.

The SimplifiedOperatorReducer is (mostly) unused, except for the very
rough store elimination, and just eats compilation time.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28673}

9 years ago[crankshaft] Record inlined shared function infos instead of closures.
bmeurer [Thu, 28 May 2015 07:11:53 +0000 (00:11 -0700)]
[crankshaft] Record inlined shared function infos instead of closures.

The list of inlined functions is used in exactly two places - for live
edit and to prevent code flushing for inlined functions - and those are
fine with SharedFunctionInfo and don't require a closure.

This is one additional step towards inlining based on SharedFunctionInfo
instead of JSFunction.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28672}

9 years agoThrow illegal exception when formatting with invalid template index.
yangguo [Thu, 28 May 2015 07:05:01 +0000 (00:05 -0700)]
Throw illegal exception when formatting with invalid template index.

R=arv@chromium.org
BUG=chromium:492526
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28671}

9 years agoDo not eagerly convert exception to string when creating a message object
yangguo [Thu, 28 May 2015 06:30:08 +0000 (23:30 -0700)]
Do not eagerly convert exception to string when creating a message object

R=mstarzinger@chromium.org
BUG=chromium:490680
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#28670}

9 years ago[turbofan] Remove frame state TODOs from VisitForInBody.
bmeurer [Thu, 28 May 2015 04:10:43 +0000 (21:10 -0700)]
[turbofan] Remove frame state TODOs from VisitForInBody.

Neither the increment nor the comparison can deoptimize, so we don't
need proper frame states there.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28669}

9 years agoUpdate V8 DEPS.
v8-autoroll [Thu, 28 May 2015 03:28:31 +0000 (20:28 -0700)]
Update V8 DEPS.

Rolling v8/build/gyp to 29e94a3285ee899d14d5e56a6001682620d3778f

Rolling v8/tools/clang to dc8f173e7fe10badbd9e29cd6eadc32ec552e691

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28668}

9 years agoSkip simdjs/shell_test_runner on big-endian platforms.
akos.palfi [Wed, 27 May 2015 18:55:41 +0000 (11:55 -0700)]
Skip simdjs/shell_test_runner on big-endian platforms.

This test is little-endian specific and therefore it can't run
correctly on big-endian platforms.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28667}

9 years agoPPC: VectorICs: allocating slots for store ics in ast nodes.
mbrandy [Wed, 27 May 2015 17:26:22 +0000 (10:26 -0700)]
PPC: VectorICs: allocating slots for store ics in ast nodes.

Port 5450fc07ba07615a70f5ed8379dc23c3275d6fe3

Original commit message:
Also adapt code generation to pass the slot to the
store/keyed-store ic. AST nodes ObjectLiteral, Assignment,
ForEach, Call and CountOperation now include one or more
feedback vector ic slot ids.

R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28666}

9 years agoPPC: [es6] Support super.property in eval and arrow functions
mbrandy [Wed, 27 May 2015 17:22:00 +0000 (10:22 -0700)]
PPC: [es6] Support super.property in eval and arrow functions

Port 44e9810345cea9bfd6861905bc6856db7db5a25c

Original commit message:
When we enter a method that needs access to the [[HomeObject]]
we allocate a local variable `.home_object` and assign it the
value from the [[HomeObject]] private symbol. Something along
the lines of:

  method() {
    var .home_object = %ThisFunction()[home_object_symbol];
    ...
  }

R=arv@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28665}

9 years ago[strong] Implement per-object restrictions behaviour for prototype setting
conradw [Wed, 27 May 2015 17:06:36 +0000 (10:06 -0700)]
[strong] Implement per-object restrictions behaviour for prototype setting

Implements the strong mode proposal's restrictions on the ability of user code
to modify the prototype of strong objects.

Setting the strong bit is still wip, so this change will only affect those
objects that have the bit correctly set. The tests reflect this, and will be
expanded as more objects can be marked as strong.

BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28664}

9 years ago[test] Add sanitizer coverage to gyp configs.
machenbach [Wed, 27 May 2015 16:18:22 +0000 (09:18 -0700)]
[test] Add sanitizer coverage to gyp configs.

BUG=chromium:489254
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28663}

9 years agoFix cctest/test-unboxed-doubles/IncrementalWriteBarrierObjectShiftFieldsRight after...
ulan [Wed, 27 May 2015 16:09:01 +0000 (09:09 -0700)]
Fix cctest/test-unboxed-doubles/IncrementalWriteBarrierObjectShiftFieldsRight after 5e87a0.

Make sure that when manual evacuation candidate selection is enabled we do not select more pages than requested.
BUG=

TBR=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28662}

9 years agoFix DCHECK on SetBookmark.
vogelheim [Wed, 27 May 2015 15:43:30 +0000 (08:43 -0700)]
Fix DCHECK on SetBookmark.

The DCHECK was a lie. The idea was that - when a bookmark is set -
the scanner must clearly be at a character boundary and hence the
bookmark does not need to save a 'partial' UTF-8 code point. The
first part is true - the Scanner is always at a character boundary -
but the 'partial' UTF-8 code point is at the end of a block, not at
the current character position of the Scanner.
Hence, the 'partial' character needs to be saved as well.

jkummerow: Thanks for noticing.

BUG=chromium:470930
R=jochen@chromium.org, jkummerow@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28661}

9 years agoIntroduce v8::Object::CreateDataProperty
jochen [Wed, 27 May 2015 15:03:28 +0000 (08:03 -0700)]
Introduce v8::Object::CreateDataProperty

Also deprecate ForceSet

BUG=chromium:475206
R=adamk@chromium.org,verwaest@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#28660}

9 years agoVectorICs: allocating slots for store ics in ast nodes.
mvstanton [Wed, 27 May 2015 14:26:11 +0000 (07:26 -0700)]
VectorICs: allocating slots for store ics in ast nodes.

Also adapt code generation to pass the slot to the
store/keyed-store ic. AST nodes ObjectLiteral, Assignment,
ForEach, Call and CountOperation now include one or more
feedback vector ic slot ids.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28659}

9 years agoTreat weak references in context weakly in write barrier.
hpayer [Wed, 27 May 2015 14:13:04 +0000 (07:13 -0700)]
Treat weak references in context weakly in write barrier.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28658}

9 years agoUpdate V8 DEPS.
v8-autoroll [Wed, 27 May 2015 14:10:22 +0000 (07:10 -0700)]
Update V8 DEPS.

Rolling v8/buildtools to a85661f97e83c620a8a1d0255829eb7a674e12cc

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28657}

9 years agoRevert of Use CLOCK_REALTIME_COARSE when available. (patchset #1 id:1 of https:/...
machenbach [Wed, 27 May 2015 14:05:49 +0000 (07:05 -0700)]
Revert of Use CLOCK_REALTIME_COARSE when available. (patchset #1 id:1 of https://codereview.chromium.org/1151283005/)

Reason for revert:
[Sheriff] This leads to several failures in chromium and blocks our roll:
https://codereview.chromium.org/1154363002/

Bisect (https://codereview.chromium.org/1152553004/) points to this CL.

Please add the failing chromium trybot on a reland of this CL.

Original issue's description:
> Use CLOCK_REALTIME_COARSE when available.
>
> On systems that have CLOCK_REALTIME_COARSE with good enough resolution,
> we can avoid making a system call to get the current time; it's serviced
> from the vDSO.
>
> This is v2 of the patch.  v1 can be found at [0] but was reverted in [1]
> because of Chromium sandbox restrictions.  The necessary changes have
> been applied upstream in [2].
>
> [0] https://codereview.chromium.org/1125003002
> [1] https://codereview.chromium.org/1130083003
> [2] https://codereview.chromium.org/1133653002
>
> BUG=
> LOG=N
>
> Committed: https://crrev.com/28cea2b749f24ba33e6e0c8e343dd0d6258ee302
> Cr-Commit-Position: refs/heads/master@{#28639}

TBR=jochen@chromium.org,bmeurer@chromium.org,ben@strongloop.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28656}

9 years ago[strong] fix strong array, object prototypes
conradw [Wed, 27 May 2015 13:55:02 +0000 (06:55 -0700)]
[strong] fix strong array, object prototypes

Strong Object/Array literals are currently being created with incorrect
internal prototypes. This CL fixes this and extends the test suite to check.

BUG=
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28655}

9 years ago[test] Remove default for zero test cases.
machenbach [Wed, 27 May 2015 13:50:43 +0000 (06:50 -0700)]
[test] Remove default for zero test cases.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28654}

9 years agogdb-v8-support.py: add FindAnywhere helper.
vegorov [Wed, 27 May 2015 13:48:56 +0000 (06:48 -0700)]
gdb-v8-support.py: add FindAnywhere helper.

R=jkummerow@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28653}

9 years agoScale old generation growing strategy based on allocation rate.
hpayer [Wed, 27 May 2015 13:09:14 +0000 (06:09 -0700)]
Scale old generation growing strategy based on allocation rate.

Before we used to scale the growing factor based on freed global handles (which may have caused jank when many global handles got freed on site navigation).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28652}

9 years agoNew algorithm for selecting evacuation candidates
ulan [Wed, 27 May 2015 13:07:47 +0000 (06:07 -0700)]
New algorithm for selecting evacuation candidates

This lifts the sqrt(n) limit on number of evacuation candidates,
replaces O(n * sqrt(n)) algorithm with O(n*log(n)) algorithm, and
removes hard-coded constants.

Evacuation candidates are selected as follows:

1) Sort pages from the most free to the least free.

2) Select the first m pages as evacuation candidates such that m is as
large as possible under the two conditions:

- The total size of live objects in the first m pages does not exceed
the given limit. This is based on the assumption that the evacuation cost is
proportional to the total size of moved objects.

- The fragmentation of the (m+1)-th page does not exceed the given
limit.

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

Cr-Commit-Position: refs/heads/master@{#28651}

9 years ago[turbofan] Fix type feedback for JSStoreNamed
jkummerow [Wed, 27 May 2015 12:30:34 +0000 (05:30 -0700)]
[turbofan] Fix type feedback for JSStoreNamed

And delete remnants of non-vectorized LoadICs from the type feedback oracle

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

Cr-Commit-Position: refs/heads/master@{#28650}

9 years ago[turbofan] Use Start as sentinel for frame states.
bmeurer [Wed, 27 May 2015 11:01:51 +0000 (04:01 -0700)]
[turbofan] Use Start as sentinel for frame states.

This simplifies inlining, in that we only need to update uses of Start
and inputs of End instead of walking the whole inlinee to update all
outer frame states.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28649}

9 years ago[turbofan] Optimize && and || in test context.
bmeurer [Wed, 27 May 2015 08:35:31 +0000 (01:35 -0700)]
[turbofan] Optimize && and || in test context.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28648}

9 years agoMark class as exported to fix win build.
vogelheim [Wed, 27 May 2015 07:10:31 +0000 (00:10 -0700)]
Mark class as exported to fix win build.

TBR=machenbach@chromium.org
BUG=chromium:470930
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28647}

9 years ago[turbofan] Optimize strict equality of unique values.
bmeurer [Wed, 27 May 2015 04:23:29 +0000 (21:23 -0700)]
[turbofan] Optimize strict equality of unique values.

If both inputs to JSStrictEqual/JSStrictNotEqual are unique values (i.e.
values with a canonical representation), we can lower the comparison to
ReferenceEqual instead of StringEqual or CompareIC.

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

Cr-Commit-Position: refs/heads/master@{#28646}

9 years agoUpdate V8 DEPS.
v8-autoroll [Wed, 27 May 2015 03:27:13 +0000 (20:27 -0700)]
Update V8 DEPS.

Rolling v8/third_party/icu to f1ad7f9ba957571dc692ea3e187612c685615e19

Rolling v8/tools/clang to dbc958e1b51949ca815ca31a8f9bf4a760ca1d35

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28645}

9 years ago[es6] Support super.property in eval and arrow functions
arv [Tue, 26 May 2015 20:29:47 +0000 (13:29 -0700)]
[es6] Support super.property in eval and arrow functions

When we enter a method that needs access to the [[HomeObject]]
we allocate a local variable `.home_object` and assign it the
value from the [[HomeObject]] private symbol. Something along
the lines of:

  method() {
    var .home_object = %ThisFunction()[home_object_symbol];
    ...
  }

BUG=v8:3867, v8:4031
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28644}

9 years ago[test] Verbose test runner output on windows.
machenbach [Tue, 26 May 2015 19:50:42 +0000 (12:50 -0700)]
[test] Verbose test runner output on windows.

TBR=jkummerow@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28643}

9 years agoAdd {Map,Set}::FromArray to the API
adamk [Tue, 26 May 2015 18:50:14 +0000 (11:50 -0700)]
Add {Map,Set}::FromArray to the API

These are similar to the Map/Set constructors when called with an array,
except that they are guaranteed to be side-effect free if called with
a packed array.

This will be useful in implementing structured clone which, as
specified in HTML, speaks in terms of the internal [[MapData]]
and [[SetData]] slots without going through the exposed iteration
ES semantics.

BUG=v8:3340
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#28642}

9 years ago[es6] Define generator prototype as writable prop
mike [Tue, 26 May 2015 18:31:35 +0000 (11:31 -0700)]
[es6] Define generator prototype as writable prop

The April 14 2015 final draft of the ES6 specification states that the
`prototype` property of generator function instances should be writable.

BUG=v8:4140, v8:4140
LOG=N
R=arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28641}

9 years agoAdd {Map,Set}::AsArray to the API
adamk [Tue, 26 May 2015 18:13:22 +0000 (11:13 -0700)]
Add {Map,Set}::AsArray to the API

These return arrays representing the current contents of the given
Map/Set. They are similar to what would be returned by the JS code:

  Array.from(collection)

except that they are guaranteed side-effect free.

This will be useful in implementing structured clone which, as
specified in HTML, speaks in terms of the internal [[MapData]]
and [[SetData]] slots without going through the exposed iteration
ES semantics.

BUG=v8:3340
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#28640}

9 years agoUse CLOCK_REALTIME_COARSE when available.
ben [Tue, 26 May 2015 18:10:34 +0000 (11:10 -0700)]
Use CLOCK_REALTIME_COARSE when available.

On systems that have CLOCK_REALTIME_COARSE with good enough resolution,
we can avoid making a system call to get the current time; it's serviced
from the vDSO.

This is v2 of the patch.  v1 can be found at [0] but was reverted in [1]
because of Chromium sandbox restrictions.  The necessary changes have
been applied upstream in [2].

[0] https://codereview.chromium.org/1125003002
[1] https://codereview.chromium.org/1130083003
[2] https://codereview.chromium.org/1133653002

BUG=
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28639}

9 years agoFix overflow in allocation throughput calculation.
hpayer [Tue, 26 May 2015 17:46:49 +0000 (10:46 -0700)]
Fix overflow in allocation throughput calculation.

BUG=chromium:492021
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28638}

9 years agoAdd basic API support for Map & Set
adamk [Tue, 26 May 2015 17:36:48 +0000 (10:36 -0700)]
Add basic API support for Map & Set

Only supports constructing new objects and returning size.
Followup patch will need to add ability to retrieve and
set contents in order to support structured clone.

Also removes a bunch of outdated "experimental" markers from v8.h.

BUG=v8:3340
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#28637}

9 years agoPPC: Vector ICs: Introduce Store and KeyedStore IC code stubs.
mbrandy [Tue, 26 May 2015 15:51:03 +0000 (08:51 -0700)]
PPC: Vector ICs: Introduce Store and KeyedStore IC code stubs.

Port a86384f192f88458bb46eece0a8f2709979057b8

Original commit message:
Also introduce new interface descriptors for the trampoline and full
versions of those stubs.

Currently, the stubs aren't functional.

R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28636}

9 years agoFix windows builder after fe9a16b6.
ulan [Tue, 26 May 2015 15:48:20 +0000 (08:48 -0700)]
Fix windows builder after fe9a16b6.

TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28635}

9 years agoPPC: Move hash code from hidden string to a private symbol
mbrandy [Tue, 26 May 2015 15:44:47 +0000 (08:44 -0700)]
PPC: Move hash code from hidden string to a private symbol

Port eca5b5d7abc0a9028cb9832087fbf2ed59dadf92

Original commit message:
* Hash code is now just done with a private own symbol instead of the hidden string, which predates symbols.
* In the long run we should do all hidden properties this way and get rid of the
hidden magic 0-length string with the zero hash code.  The advantages include
less complexity and being able to do things from JS in a natural way.
* Initially, the performance of weak set regressed, because it's a little harder
to do the lookup in C++.  Instead of heroics in C++ to make things faster I
moved some functionality into JS and got the performance back. JS is supposed to be good at looking up named properties on objects.
* This also changes hash codes of Smis so that they are always Smis.

Performance figures are in the comments to the code review.  Summary: Most of js-perf-test/Collections is neutral.  Set and Map with object keys are 40-50% better.  WeakMap is -5% and WeakSet is +9%.  After the measurements, I fixed global proxies, which cost 1% on most tests and 5% on the weak ones :-(.

In the code review comments is a patch with an example of the heroics we could do in C++ to make lookup faster (I hope we don't have to do this.  Instead of checking for the property, then doing a new lookup to insert it, we could do one lookup and handle the addition immediately).  With the current benchmarks above this buys us nothing, but if we go back to doing more lookups in C++ instead of in stubs and JS then it's a win.

In a similar vein we could give the magic zero hash code to the hash code
symbol.  Then when we look up the hash code we would sometimes see the table
with all the hidden properties.  This dual use of the field for either the hash
code or the table with all hidden properties and the hash code is rather ugly,
and this CL gets rid of it.  I'd be loath to bring it back.  On the benchmarks quoted above it's slightly slower than moving the hash code lookup to JS like in this CL.

One worry is that the benchmark results above are more monomorphic than real
world code, so may be overstating the performance benefits of moving to JS.  I
think this is part of a general issue we have with handling polymorphic code in
JS and any solutions there will benefit this solution, which boils down to
regular property access. Any improvement there will lift all boats.

R=erikcorry@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28634}

9 years agoPPC: Move work to omit unnecessary ObjectLiteral stores to the numbering pass.
mbrandy [Tue, 26 May 2015 15:43:34 +0000 (08:43 -0700)]
PPC: Move work to omit unnecessary ObjectLiteral stores to the numbering pass.

Port 32de677805877bbf8d697926e09c23963a27e191

Original commit message:
The reason is that this information will be needed to compute the number of
vector ic slots done at numbering time.

R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28633}

9 years agoFix test-heap/OldSpaceAllocationCounter.
ulan [Tue, 26 May 2015 15:42:20 +0000 (08:42 -0700)]
Fix test-heap/OldSpaceAllocationCounter.

TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28632}

9 years ago[test] Sync in *san configurations from chromium.
machenbach [Tue, 26 May 2015 14:51:35 +0000 (07:51 -0700)]
[test] Sync in *san configurations from chromium.

This configures *san in v8 just like in chromium's
common.gypi. I also addresses compilation problems with ICU
and usage of instrumented libc++.

TBR=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28631}

9 years agoTemporary fix for test-heap/OldSpaceAllocationCounter.
ulan [Tue, 26 May 2015 13:51:48 +0000 (06:51 -0700)]
Temporary fix for test-heap/OldSpaceAllocationCounter.

TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28630}

9 years ago[test] Correctly merge expected test outcomes.
machenbach [Tue, 26 May 2015 13:22:18 +0000 (06:22 -0700)]
[test] Correctly merge expected test outcomes.

Without this change, wildcards always overwrite the outcomes
of more specific rules. Now we always merge.

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

Cr-Commit-Position: refs/heads/master@{#28629}

9 years agoCorrectly hook up materialized receiver into the evaluation context chain.
yangguo [Tue, 26 May 2015 13:06:38 +0000 (06:06 -0700)]
Correctly hook up materialized receiver into the evaluation context chain.

R=ulan@chromium.org
BUG=chromium:491943
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#28628}

9 years agoTemporary auto-CC'ing hablich to x87 changes
hablich [Tue, 26 May 2015 13:05:25 +0000 (06:05 -0700)]
Temporary auto-CC'ing hablich to x87 changes

BUG=
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28627}

9 years agoWhite space change after infra breakage.
Michael Achenbach [Tue, 26 May 2015 12:41:18 +0000 (14:41 +0200)]
White space change after infra breakage.

Cr-Commit-Position: refs/heads/master@{#28626}

9 years ago[turbofan] Connect loops to end via Terminate during graph building.
bmeurer [Tue, 26 May 2015 12:17:57 +0000 (05:17 -0700)]
[turbofan] Connect loops to end via Terminate during graph building.

This way we don't need to connect (potentially) non-terminating loops
later during control reduction, which saves one forward pass over the
control graph.  Long term we will move the trimming functionality of
the control reducer to the GraphReducer, and get rid of the Finish
method again.

As a bonus, this change also properly rewires Terminate, Throw and
Deoptimize during inlining.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28625}

9 years ago[turbofan] Verify uses of Deoptimize and Return in graph.
mstarzinger [Tue, 26 May 2015 11:52:44 +0000 (04:52 -0700)]
[turbofan] Verify uses of Deoptimize and Return in graph.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28624}

9 years agoAdd old generation allocation throughput computation.
ulan [Tue, 26 May 2015 11:51:18 +0000 (04:51 -0700)]
Add old generation allocation throughput computation.

BUG=chromium:492021
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28623}

9 years agoMove hash code from hidden string to a private symbol
erikcorry [Tue, 26 May 2015 11:26:26 +0000 (04:26 -0700)]
Move hash code from hidden string to a private symbol

* Hash code is now just done with a private own symbol instead of the hidden string, which predates symbols.
* In the long run we should do all hidden properties this way and get rid of the
hidden magic 0-length string with the zero hash code.  The advantages include
less complexity and being able to do things from JS in a natural way.
* Initially, the performance of weak set regressed, because it's a little harder
to do the lookup in C++.  Instead of heroics in C++ to make things faster I
moved some functionality into JS and got the performance back. JS is supposed to be good at looking up named properties on objects.
* This also changes hash codes of Smis so that they are always Smis.

Performance figures are in the comments to the code review.  Summary: Most of js-perf-test/Collections is neutral.  Set and Map with object keys are 40-50% better.  WeakMap is -5% and WeakSet is +9%.  After the measurements, I fixed global proxies, which cost 1% on most tests and 5% on the weak ones :-(.

In the code review comments is a patch with an example of the heroics we could do in C++ to make lookup faster (I hope we don't have to do this.  Instead of checking for the property, then doing a new lookup to insert it, we could do one lookup and handle the addition immediately).  With the current benchmarks above this buys us nothing, but if we go back to doing more lookups in C++ instead of in stubs and JS then it's a win.

In a similar vein we could give the magic zero hash code to the hash code
symbol.  Then when we look up the hash code we would sometimes see the table
with all the hidden properties.  This dual use of the field for either the hash
code or the table with all hidden properties and the hash code is rather ugly,
and this CL gets rid of it.  I'd be loath to bring it back.  On the benchmarks quoted above it's slightly slower than moving the hash code lookup to JS like in this CL.

One worry is that the benchmark results above are more monomorphic than real
world code, so may be overstating the performance benefits of moving to JS.  I
think this is part of a general issue we have with handling polymorphic code in
JS and any solutions there will benefit this solution, which boils down to
regular property access. Any improvement there will lift all boats.

R=adamk@chromium.org, verwaest@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28622}

9 years ago[turbofan] Properly kill Terminate nodes when removing loops.
bmeurer [Tue, 26 May 2015 10:47:55 +0000 (03:47 -0700)]
[turbofan] Properly kill Terminate nodes when removing loops.

BUG=chromium:491578
LOG=n
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28621}

9 years ago[turbofan] Change End to take a variable number of inputs.
bmeurer [Tue, 26 May 2015 10:31:55 +0000 (03:31 -0700)]
[turbofan] Change End to take a variable number of inputs.

This simplifies the handling of the End node. Based on this CL we will
finally fix terminating every loop from the beginning (via Terminate
nodes) and fix inlining of Throw, Deoptimize and Terminate.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28620}

9 years agoRevert of Fixed a couple of failing DCHECK(has_pending_exception()). (patchset #1...
ishell [Tue, 26 May 2015 10:28:23 +0000 (03:28 -0700)]
Revert of Fixed a couple of failing DCHECK(has_pending_exception()). (patchset #1 id:1 of https://codereview.chromium.org/1151373002/)

Reason for revert:
Broke V8 Linux - nosnap.

Original issue's description:
> Fixed a couple of failing DCHECK(has_pending_exception()).
>
> BUG=chromium:491062
> LOG=N
>
> Committed: https://crrev.com/62b56507cce3c57a2e1aebce6d34f29b3b64e762
> Cr-Commit-Position: refs/heads/master@{#28617}

TBR=yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:491062

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

Cr-Commit-Position: refs/heads/master@{#28619}

9 years agoDon't shrink new space based on allocation rate in predictable mode.
hpayer [Tue, 26 May 2015 10:14:13 +0000 (03:14 -0700)]
Don't shrink new space based on allocation rate in predictable mode.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28618}

9 years agoFixed a couple of failing DCHECK(has_pending_exception()).
ishell [Tue, 26 May 2015 10:06:47 +0000 (03:06 -0700)]
Fixed a couple of failing DCHECK(has_pending_exception()).

BUG=chromium:491062
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28617}

9 years agoFix lookup iterator checks in GetRealNamedProperty* methods
jochen [Tue, 26 May 2015 09:23:45 +0000 (02:23 -0700)]
Fix lookup iterator checks in GetRealNamedProperty* methods

BUG=v8:4143
R=verwaest@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28616}

9 years agoMove work to omit unnecessary ObjectLiteral stores to the numbering pass.
mvstanton [Tue, 26 May 2015 09:05:53 +0000 (02:05 -0700)]
Move work to omit unnecessary ObjectLiteral stores to the numbering pass.

The reason is that this information will be needed to compute the number of
vector ic slots done at numbering time.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28615}

9 years agoExclude non-optimizable functions from OptimizeFunctionOnNextCall.
jarin [Tue, 26 May 2015 08:46:57 +0000 (01:46 -0700)]
Exclude non-optimizable functions from OptimizeFunctionOnNextCall.

BUG=chromium:491481
R=mstarzinger@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28614}

9 years ago[turbofan] Fix known issue about computed property names.
mstarzinger [Tue, 26 May 2015 08:45:10 +0000 (01:45 -0700)]
[turbofan] Fix known issue about computed property names.

This fixes a corner-case where deoptimization while evaluating the
value to a __proto__ property after computed property names appeared
in an object literal, lead to environments not being in sync with
unoptimized code.

R=arv@chromium.org
TEST=mjsunit/harmony/computed-property-names-deopt

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

Cr-Commit-Position: refs/heads/master@{#28613}

9 years agoDo not leak message object beyond try-catch.
yangguo [Tue, 26 May 2015 08:00:04 +0000 (01:00 -0700)]
Do not leak message object beyond try-catch.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28612}

9 years ago[test] Mark slow tests on msan.
machenbach [Tue, 26 May 2015 07:55:23 +0000 (00:55 -0700)]
[test] Mark slow tests on msan.

TBR=svenpanne@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28611}

9 years agoImplement bookmarks for ExternalStreamingStream.
vogelheim [Tue, 26 May 2015 07:54:14 +0000 (00:54 -0700)]
Implement bookmarks for ExternalStreamingStream.

(Requires the embedder's ExternalSourceStream implementation to cooperate.
 See crrev.com/1154883003 for Blink.)

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

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

Cr-Commit-Position: refs/heads/master@{#28610}

9 years agoFix harmony-sharedarraybuffer implementation.
yangguo [Tue, 26 May 2015 07:39:51 +0000 (00:39 -0700)]
Fix harmony-sharedarraybuffer implementation.

NOTREECHECKS=true
NOTRY=true
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28609}

9 years agoRevert of Revert of Hook up more import/exports in natives. (patchset #1 id:1 of...
yangguo [Tue, 26 May 2015 07:24:13 +0000 (00:24 -0700)]
Revert of Revert of Hook up more import/exports in natives. (patchset #1 id:1 of https://codereview.chromium.org/1154743003/)

Reason for revert:
Unrelated failure that was uncovered by this CL has been fixed (https://codereview.chromium.org/1152243002/)

Original issue's description:
> Revert of Hook up more import/exports in natives. (patchset #3 id:40001 of https://codereview.chromium.org/1154483002/)
>
> Reason for revert:
> [Sheriff] Speculative revert for gc stress failures:
> http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/481
>
> Original issue's description:
> > Hook up more import/exports in natives.
> >
> > R=jkummerow@chromium.org
> >
> > Committed: https://crrev.com/7a918ac9658d11778f39593bfcc19d7c506defd9
> > Cr-Commit-Position: refs/heads/master@{#28573}
> >
> > Committed: https://crrev.com/e13a39dd7f4062898709d7c68900677df0513995
> > Cr-Commit-Position: refs/heads/master@{#28578}
>
> TBR=jkummerow@chromium.org,erik.corry@gmail.com,yangguo@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/eb0024d1dbdda5f51b006dd54887404ee6c5cbfc
> Cr-Commit-Position: refs/heads/master@{#28584}

TBR=jkummerow@chromium.org,erik.corry@gmail.com,machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28608}

9 years agoDo not patch IC in deoptimized code.
yangguo [Tue, 26 May 2015 06:56:15 +0000 (23:56 -0700)]
Do not patch IC in deoptimized code.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28607}

9 years agoX87: [es6] Spread in array literals
chunyang.dai [Mon, 25 May 2015 13:15:22 +0000 (06:15 -0700)]
X87: [es6] Spread in array literals

port 9502e91adbed48a546463aa848656d07619d14e6 (r28534)

original commit message:

    This allows you to put iterables into your array literals
    and the will get spread into the array.

      let x = [0, ...range(1, 3)];  // [0, 1, 2]

    This is done by treating the array literal up to the first
    spread element as usual, including using a boiler plate
    array, and then appending the remaining expressions and rest
    expressions.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28606}

9 years agoX87: Vector ICs: Introduce Store and KeyedStore IC code stubs.
chunyang.dai [Mon, 25 May 2015 13:13:34 +0000 (06:13 -0700)]
X87: Vector ICs: Introduce Store and KeyedStore IC code stubs.

port a86384f192f88458bb46eece0a8f2709979057b8 (r28597).

original commit message:

    Also introduce new interface descriptors for the trampoline and full
    versions of those stubs.

    Currently, the stubs aren't functional.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28605}

9 years ago[release-tools] Fix auto-roller after depot tools change.
machenbach [Sat, 23 May 2015 19:24:37 +0000 (12:24 -0700)]
[release-tools] Fix auto-roller after depot tools change.

BUG=chromium:491581
LOG=n
NOTRY=true
TBR=hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28604}

9 years agoWhitespace change to test CQ.
machenbach [Fri, 22 May 2015 19:40:50 +0000 (12:40 -0700)]
Whitespace change to test CQ.

TBR=tandrii@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28603}

9 years agoUse OAuth for accessing Rietveld
sergiyb [Fri, 22 May 2015 18:48:42 +0000 (11:48 -0700)]
Use OAuth for accessing Rietveld

R=machenbach@chromium.org, tandrii@chromium.org
BUG=489483
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28602}

9 years agoUpdate UTF-8 decoder to detect more special cases.
jochen [Fri, 22 May 2015 18:47:36 +0000 (11:47 -0700)]
Update UTF-8 decoder to detect more special cases.

The blink version is stricter and for parsing it's important that both
decoders behave the same.

BUG=chromium:489944
R=vogelheim@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28601}

9 years agoIntroduce a maybe-version of Function::New
jochen [Fri, 22 May 2015 18:39:40 +0000 (11:39 -0700)]
Introduce a maybe-version of Function::New

Internally, it invokes GetFunction() which returns a MaybeLocal<>

BUG=4134
R=vogelheim@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28600}

9 years ago[test] Fix no-exceptions cc flag.
machenbach [Fri, 22 May 2015 16:40:27 +0000 (09:40 -0700)]
[test] Fix no-exceptions cc flag.

BUG=chromium:425187
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28599}

9 years ago[turbofan] Simplify handling of spreads in array literals.
mstarzinger [Fri, 22 May 2015 15:42:59 +0000 (08:42 -0700)]
[turbofan] Simplify handling of spreads in array literals.

R=arv@chromium.org
TEST=mjsunit/harmony/spread-array

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

Cr-Commit-Position: refs/heads/master@{#28598}

9 years agoVector ICs: Introduce Store and KeyedStore IC code stubs.
mvstanton [Fri, 22 May 2015 14:36:48 +0000 (07:36 -0700)]
Vector ICs: Introduce Store and KeyedStore IC code stubs.

Also introduce new interface descriptors for the trampoline and full
versions of those stubs.

Currently, the stubs aren't functional.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28597}

9 years agoRemove unnecessary TypeFeedbackIds, saves memory and simplifies TurboFan.
mvstanton [Fri, 22 May 2015 14:32:31 +0000 (07:32 -0700)]
Remove unnecessary TypeFeedbackIds, saves memory and simplifies TurboFan.

Consequence of going whole-hog for vector-based Load/KeyedLoad ICs.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28596}

9 years agoMIPS: Add float instructions and test coverage, part two
Djordje.Pesic [Fri, 22 May 2015 13:49:20 +0000 (06:49 -0700)]
MIPS: Add float instructions and test coverage, part two

Implement assembler, disassembler tests for all instructions for mips32 and mips64. Additionally, add missing single precision float instructions for r2 and r6 architecture variants in assembler, simulator and disassembler with corresponding tests.

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

Cr-Commit-Position: refs/heads/master@{#28595}

9 years agoImplement SharedArrayBuffer.
binji [Fri, 22 May 2015 13:43:38 +0000 (06:43 -0700)]
Implement SharedArrayBuffer.

This adds a new external type (v8::SharedArrayBuffer) that uses a JSArrayBuffer
under the hood. It can be distinguished from an ArrayBuffer by the newly-added
is_shared() bit.

Currently there is no difference in functionality between a SharedArrayBuffer
and an ArrayBuffer. However, a future CL will add the Atomics API, which is
only available on an SharedArrayBuffer. All non-atomic accesses are identical
to ArrayBuffer accesses.

LOG=N
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28594}

9 years agoIdle old generation limit is used when allocation rate is low.
hpayer [Fri, 22 May 2015 13:10:18 +0000 (06:10 -0700)]
Idle old generation limit is used when allocation rate is low.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28593}

9 years agoMake delete API consistent for String objects
conradw [Fri, 22 May 2015 13:09:09 +0000 (06:09 -0700)]
Make delete API consistent for String objects

Deleting an in-bounds character index from a String object should always return
false.

BUG=
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28592}

9 years agoRemove v8::Private
jochen [Fri, 22 May 2015 12:42:00 +0000 (05:42 -0700)]
Remove v8::Private

Nothing uses it

R=rossberg@chromium.org
LOG=y
BUG=none

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

Cr-Commit-Position: refs/heads/master@{#28591}

9 years agoFix build.
yangguo [Fri, 22 May 2015 12:33:04 +0000 (05:33 -0700)]
Fix build.

TBR=machenbach@chromium.org
NOTRY=true
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#28590}

9 years agoRevert of Implement SharedArrayBuffer (patchset #7 id:120001 of https://codereview...
yangguo [Fri, 22 May 2015 12:18:13 +0000 (05:18 -0700)]
Revert of Implement SharedArrayBuffer (patchset #7 id:120001 of https://codereview.chromium.org/1136553006/)

Reason for revert:
breaks build

Original issue's description:
> Implement SharedArrayBuffer.
>
> This adds a new external type (v8::SharedArrayBuffer) that uses a JSArrayBuffer under the hood. It can be distinguished from an ArrayBuffer by the newly-added is_shared() bit.
>
> Currently there is no difference in functionality between a SharedArrayBuffer and an ArrayBuffer. However, a future CL will add the Atomics API, which is only available on an SharedArrayBuffer. All non-atomic accesses are identical to ArrayBuffer accesses.
>
> BUG=
>
> Committed: https://crrev.com/57170bff7baf341c666252a7f6a49e9c08d51263
> Cr-Commit-Position: refs/heads/master@{#28588}

TBR=jarin@chromium.org,jochen@chromium.org,binji@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28589}

9 years agoImplement SharedArrayBuffer.
binji [Fri, 22 May 2015 12:07:00 +0000 (05:07 -0700)]
Implement SharedArrayBuffer.

This adds a new external type (v8::SharedArrayBuffer) that uses a JSArrayBuffer under the hood. It can be distinguished from an ArrayBuffer by the newly-added is_shared() bit.

Currently there is no difference in functionality between a SharedArrayBuffer and an ArrayBuffer. However, a future CL will add the Atomics API, which is only available on an SharedArrayBuffer. All non-atomic accesses are identical to ArrayBuffer accesses.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28588}

9 years agoGeneralize alignment in heap GC functions.
bbudge [Fri, 22 May 2015 12:01:59 +0000 (05:01 -0700)]
Generalize alignment in heap GC functions.
Changes template parameters from int to AllocationAlignment.

LOG=N
BUG=v8:4124

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

Cr-Commit-Position: refs/heads/master@{#28587}

9 years agoUse conservative hash table capacity growth during entire snapshotting.
yangguo [Fri, 22 May 2015 11:50:38 +0000 (04:50 -0700)]
Use conservative hash table capacity growth during entire snapshotting.

We want to use the conservative growth strategy during
- isolate initialization
- bootstrapping a context

But not when
- not creating a snapshot
- running additional code for custom snapshot.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28586}

9 years agoUncommit and shrink semi-spaces only on low allocation rate.
hpayer [Fri, 22 May 2015 11:43:11 +0000 (04:43 -0700)]
Uncommit and shrink semi-spaces only on low allocation rate.

BUG=chromium:481811
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28585}

9 years agoRevert of Hook up more import/exports in natives. (patchset #3 id:40001 of https...
machenbach [Fri, 22 May 2015 11:21:32 +0000 (04:21 -0700)]
Revert of Hook up more import/exports in natives. (patchset #3 id:40001 of https://codereview.chromium.org/1154483002/)

Reason for revert:
[Sheriff] Speculative revert for gc stress failures:
http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/481

Original issue's description:
> Hook up more import/exports in natives.
>
> R=jkummerow@chromium.org
>
> Committed: https://crrev.com/7a918ac9658d11778f39593bfcc19d7c506defd9
> Cr-Commit-Position: refs/heads/master@{#28573}
>
> Committed: https://crrev.com/e13a39dd7f4062898709d7c68900677df0513995
> Cr-Commit-Position: refs/heads/master@{#28578}

TBR=jkummerow@chromium.org,erik.corry@gmail.com,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28584}

9 years ago[turbofan] Rework Node guts to save space.
titzer [Fri, 22 May 2015 11:13:02 +0000 (04:13 -0700)]
[turbofan] Rework Node guts to save space.

This reduces the storage per-Node storage from 7 words to 6 and per-edge
storage from 6 words to 4.
On average this is about 10%-15% space savings over the whole graph.

Remove the use of std::deque as the out-of-line storage for inputs.
Reduce size of Use links and use pointer arithmetic to find Node
from Use.

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

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

Cr-Commit-Position: refs/heads/master@{#28583}

9 years agoDon't UnshiftGrey any black objects
erikcorry [Fri, 22 May 2015 11:07:37 +0000 (04:07 -0700)]
Don't UnshiftGrey any black objects

R=hpayer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28582}

9 years agoJavaScript stubs have access to their calling convention and minor key now.
svenpanne [Fri, 22 May 2015 11:01:53 +0000 (04:01 -0700)]
JavaScript stubs have access to their calling convention and minor key now.

First steps only, the TurboFan compilation is still triggered from C++ land.

Includes some simplifications/cleanups, too.

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

Cr-Commit-Position: refs/heads/master@{#28581}