Commit Graph

27347 Commits

Author SHA1 Message Date
jkummerow
989f44f126 Fix mix-up in HasEnumerableElements()
Only JSArrays ever have packed elements; holey elements can be on any kind of object.

BUG=chromium:568525
LOG=n
R=cbruni@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32755}
2015-12-10 15:01:49 +00:00
vogelheim
f564231a6b Revert of Re-land FastAccessorBuilder. (patchset #2 id:20001 of https://codereview.chromium.org/1504713012/ )
Reason for revert:
Meeh. Now "V8 Linux - gcmole" bot has issues; apparently due to a somewhat exotic builder configuration.

Original issue's description:
> Re-land FastAccessorBuilder.
>
> ... using the RawMachineAssembler and the work in crrev.com/1407313004.
>
> The original change collided with crrev.com/1513543003.
>
> BUG=chromium:508898
> LOG=Y
>
> Committed: https://crrev.com/515d9ccd8e6df7bf2ca01e2a55aaad30226399e1
> Cr-Commit-Position: refs/heads/master@{#32742}
>
> patch from issue 1474543004 at patchset 260001 (http://crrev.com/1474543004#ps260001)
>
> Committed: https://crrev.com/ee5c38d7db907ff86dd4049721c0cb4bc90a6c4d
> Cr-Commit-Position: refs/heads/master@{#32753}

TBR=epertoso@chromium.org,mstarzinger@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:508898

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

Cr-Commit-Position: refs/heads/master@{#32754}
2015-12-10 14:45:55 +00:00
vogelheim
ee5c38d7db Re-land FastAccessorBuilder.
... using the RawMachineAssembler and the work in crrev.com/1407313004.

The original change collided with crrev.com/1513543003.

BUG=chromium:508898
LOG=Y

Committed: https://crrev.com/515d9ccd8e6df7bf2ca01e2a55aaad30226399e1
Cr-Commit-Position: refs/heads/master@{#32742}

patch from issue 1474543004 at patchset 260001 (http://crrev.com/1474543004#ps260001)

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

Cr-Commit-Position: refs/heads/master@{#32753}
2015-12-10 14:15:19 +00:00
rmcilroy
c4745aa187 Remove dummy control / effect edges from RMA Call nodes.
Removes the dummy control and effect edges from the RMA Call nodes. This
requires a change to the node matchers to allow them to cope with nodes
which don't have control or effect matchers.

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

Cr-Commit-Position: refs/heads/master@{#32752}
2015-12-10 13:36:28 +00:00
adamk
93d56fde70 Activate destructuring assignment on ClusterFuzz
BUG=v8:811
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32751}
2015-12-10 13:27:53 +00:00
neis
a5380fe9ed JSON.parse: properly deal with reviver result
When the reviver returns undefined, the property in question must be deleted
even for arrays.  So far this only happened for non-array objects.

Also change the property enumeration to be spec-conformant, which is observable when the reviver modifies its "this" object directly.  There are a few further issues that need to be addressed in a separate CL.

R=yangguo@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32750}
2015-12-10 12:49:06 +00:00
dusan.m.milosavljevic
3ef18f5a91 MIPS: [turbofan] Use RINT instruction for Float64|32Round ops. on r6.
TEST=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32749}
2015-12-10 12:24:28 +00:00
jarin
be16b62fb8 [turbofan] Fix bitfield size in regalloc (after moving to MachineRepresentation).
Review URL: https://codereview.chromium.org/1514063002

Cr-Commit-Position: refs/heads/master@{#32748}
2015-12-10 12:22:45 +00:00
jarin
9c87bd4b82 [turbofan] Get rid of truncation by store.
Nowadays, representation inference and simplified lowering can insert the
right truncations based on the use.

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

Cr-Commit-Position: refs/heads/master@{#32747}
2015-12-10 11:23:55 +00:00
cbruni
40817d2242 [v8natives.js] updating comments to ES6
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32746}
2015-12-10 10:43:37 +00:00
mstarzinger
cdafea2011 [presubmit] Enable readability/nolint linter checking.
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32745}
2015-12-10 10:41:47 +00:00
vogelheim
0a50af8625 Revert of Implement Fast Accessor Builder (patchset #14 id:260001 of https://codereview.chromium.org/1474543004/ )
Reason for revert:
Broke the build, apparently.

Original issue's description:
> Implement FastAccessorBuilder.
>
> ... using the RawMachineAssembler and the work in cl/1407313004
>
> BUG=chromium:508898
> LOG=Y
>
> Committed: https://crrev.com/515d9ccd8e6df7bf2ca01e2a55aaad30226399e1
> Cr-Commit-Position: refs/heads/master@{#32742}

TBR=epertoso@chromium.org,bmeurer@chromium.org,jochen@chromium.org,mstarzinger@chromium.org,mvstanton@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:508898

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

Cr-Commit-Position: refs/heads/master@{#32744}
2015-12-10 10:16:35 +00:00
jkummerow
ce47fc8b72 [build system] Support code coverage.
Review URL: https://codereview.chromium.org/1511893004

Cr-Commit-Position: refs/heads/master@{#32743}
2015-12-10 10:11:16 +00:00
vogelheim
515d9ccd8e Implement FastAccessorBuilder.
... using the RawMachineAssembler and the work in cl/1407313004

BUG=chromium:508898
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#32742}
2015-12-10 10:10:11 +00:00
balazs.kilvady
9597b019bc MIPS: Fix NaN tests.
BUG=
TEST=mjsunit/regress/regress-undefined-nan, mjsunit/regress/regress-undefined-nan3, mjsunit/regress/regress-2596

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

Cr-Commit-Position: refs/heads/master@{#32741}
2015-12-10 10:06:17 +00:00
jkummerow
1e9c4b448f [tools] Fix tools/bash-completion.sh for bool flags and harmony features
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#32740}
2015-12-10 10:01:39 +00:00
mlippautz
f07dd5dade [heap] Cleanup: remove unused declaration
R=ulan@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32739}
2015-12-10 09:15:26 +00:00
jarin
bb2a830deb [turbofan] Make MachineType a pair of enums.
MachineType is now a class with two enum fields:
- MachineRepresentation
- MachineSemantic

Both enums are usable on their own, and this change switches some places from using MachineType to use just MachineRepresentation. Most notably:
- register allocator now uses just the representation.
- Phi and Select nodes only refer to representations.

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

Cr-Commit-Position: refs/heads/master@{#32738}
2015-12-10 09:03:53 +00:00
ahaas
28261daa47 [turbofan] Change TruncateFloat32ToInt64 to TryTruncateFloat32ToInt64.
This operator now provides a second output which indicates whether the
conversion from float32 to int64 was successful or not. The second output
returns 0 if the conversion fails, or something else if the conversion succeeds.

The second output can be ignored, which means that the operator can be used the
same as the original operator.

I implement the new operator on x64, arm64, and mips64. @v8-ppc-ports, can you
please take care of the ppc64 implementation of the second output?

R=titzer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com

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

Cr-Commit-Position: refs/heads/master@{#32737}
2015-12-10 08:12:23 +00:00
paul.lind
aa5eb1e0ed MIPS: Fix [runtime] [proxy] implement [[Construct]].
Avoid overwrite of instance type while checking IsCallable() (t2->t3).
Also slightly optimize push of register pair.

TEST=mjsunit/harmony/proxies-construct
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32736}
2015-12-10 07:33:20 +00:00
bmeurer
66f934efa1 [turbofan] Optimize JSCallConstruct in typed lowering to direct calls.
Lower JSCallConstruct with known target JSFunction to a direct call to
the target's construct_stub, and JSCallConstruct with function target to
direct call to ConstructFunction builtin.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32735}
2015-12-10 06:03:47 +00:00
brucedawson
667efbd0d7 Remove workaround for VS 2015 RC bug
R=mstarzinger@chromium.org
LOG=N
BUG=440500

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

Cr-Commit-Position: refs/heads/master@{#32734}
2015-12-10 04:43:35 +00:00
adamk
8a7e6fc34d Make AstConsString::length constant-time instead of O(N)
This makes it consistent in behavior with its heap-resident equivalent.

Also some minor cleanup in the AstString class hierarchy.

BUG=v8:4595
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32733}
2015-12-10 04:42:39 +00:00
v8-autoroll
8b3ccd809d Update V8 DEPS.
Rolling v8/tools/clang to 668876fb488c6e3c5860a367b7d9a7fb8821df76

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32732}
2015-12-10 04:41:00 +00:00
verwaest
2d13f6ec43 Fix Promise intrinsicDefaultProto
BUG=v8:3900, v8:3931, v8:1543, v8:3330
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32731}
2015-12-10 00:33:51 +00:00
yangguo
e110a2a8f3 Make mjsunit/random-bit-correlations more predictable.
R=machenbach@chromium.org
BUG=v8:4588
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32730}
2015-12-09 21:05:07 +00:00
adamk
2f9c68cfb1 Pass --harmony-object-observe in tests that depend on it
This is in preparation for turning the flag off by default.

BUG=chromium:552100
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32729}
2015-12-09 20:34:16 +00:00
mbrandy
caea1bbda0 PPC64: [turbofan] Change TruncateFloat64ToUint64 to TryTruncateFloatToUint64.
Port c343f30923

Original commit message:
    This operator now provides a second output which indicates whether the
    conversion from float64 to uint64 was successful or not. The second output
    returns 0 if the conversion fails, or something else if the conversion
    succeeds.

    The second output can be ignored, which means that the operator can be used
    the same as the original operator.

R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32728}
2015-12-09 18:37:24 +00:00
mbrandy
cfef519a1e PPC: [turbofan] Add initial support for SOFT deopts.
Port 7a22fdff1e

Original commit message:
    This only introduces the basic support for both SOFT and EAGER deopts in
    TurboFan, but doesn't make use of SOFT deopts anywhere yet (there are
    some other issues blocking that). Basically every Deoptimize operator
    now has a DeoptimizeKind, which can be either kSoft or kEager.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32727}
2015-12-09 18:35:45 +00:00
mbrandy
43c7ced3c1 PPC: Refine "[runtime] [proxy] implement [[Construct]]"
R=cbruni@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
LOG=N
BUG=v8:1543

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

Cr-Commit-Position: refs/heads/master@{#32726}
2015-12-09 18:34:52 +00:00
mbrandy
996890105d PPC: Type Feedback Vector: Calculate profiler counts on the fly.
Port 2b63d6b079

Original commit message:
    It's cumbersome to maintain IC profiler statistics all the time.
    Let's just do it as needed.

R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32725}
2015-12-09 18:30:47 +00:00
mbrandy
b9f92c15d6 PPC64: [turbofan] Changed TruncateFloat64ToInt64 to TryTruncateFloat64ToInt64.
Port 95844d94f3

Original commit message:
    The new operator provides a second output which indicates whether the
    conversion from float64 to int64 was successful or not. The second
    output returns 0 if the conversion fails. If the conversion succeeds,
    then the second output is differs from 0.

    The second output can be ignored, which means that the operator can be
    used the same way as the original operator.

R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32724}
2015-12-09 18:29:55 +00:00
jkummerow
e94f07aa2e [cleanup] [proxies] Unify style of recently written code
In particular, return Maybe<bool> from any function that can throw, and
use MAYBE_RETURN and RETURN_FAILURE macros consistently where applicable.

No change in behavior intended.

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

Cr-Commit-Position: refs/heads/master@{#32723}
2015-12-09 18:07:00 +00:00
verwaest
897fecd58c Improve the CallSite constructor
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32722}
2015-12-09 17:28:35 +00:00
balazs.kilvady
ea1442d768 MIPS: Remove unnecessary NaN fix for simulator.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32721}
2015-12-09 17:20:56 +00:00
verwaest
454c1faeef Make Error.prototype.toString spec compliant; and fix various side-effect-free error printing methods
R=yangguo@chromium.org
LOG=n

Committed: https://crrev.com/5dffa35350d0f57402806e6bd87a914e1d5933e4
Cr-Commit-Position: refs/heads/master@{#32695}

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

Cr-Commit-Position: refs/heads/master@{#32720}
2015-12-09 17:03:08 +00:00
jkummerow
65eef38349 [cleanup] Drop JSObject::GetOwnPropertyNames().
Can be replaced by KeyAccumulator + CollectOwnPropertyNames().

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

Cr-Commit-Position: refs/heads/master@{#32719}
2015-12-09 17:03:07 +00:00
cbruni
a2d5641bc4 [runtime] [proxy] implement [[Construct]]
LOG=N
BUG=v8:1543

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

Cr-Commit-Position: refs/heads/master@{#32718}
2015-12-09 14:55:33 +00:00
ulan
02320548a5 Move map retaining to finalization of incremental marking.
Compaction of the array with maps happens lazily upon adding new maps.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32717}
2015-12-09 14:53:52 +00:00
dusan.m.milosavljevic
3950ca1b1e MIPS: [turbofan] Fix Div operations by zero on r6.
TEST=cctest/test-run-machops/RunInt32DivP
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32716}
2015-12-09 14:28:51 +00:00
mstarzinger
f9ea078a22 [turbofan] Don't run graph verifier on scheduled graphs.
Fully scheduled graphs built by the RawMachineAssembler are inherently
not schedulable, they are missing effect and control dependencies, which
makes them not pass the graph verifier either. They do however pass the
schedule verifier.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32715}
2015-12-09 14:09:51 +00:00
vogelheim
35452afafb Remove deprecated APIs from test-api.cc, lines 10k - 17k.
- Except 2x applications of ForceSet, where I still need to debug
  why the expected replacement doesn't work as expected.
- Ca. 3/4 of the file is covered.

R=jochen@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32714}
2015-12-09 13:18:48 +00:00
jkummerow
8ee1c9b5c0 [cleanup] Introduce HasEnumerableElements() helper
This is a simplified copy of JSObject::GetOwnElementKeys and will make it possible to eliminate the latter.

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

Cr-Commit-Position: refs/heads/master@{#32713}
2015-12-09 13:17:08 +00:00
mlippautz
fe3d409d76 Reland "[heap] Unify evacuating an object for new and old generation."
R=hpayer@chromium.org
BUG=chromium:524425
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32712}
2015-12-09 13:16:12 +00:00
bmeurer
6a1328452a [turbofan] The JSCreateWithContext operator doesn't need a frame state.
Creating a with context cannot lazy/eager deoptimize, so we don't need
to pass a frame state.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32711}
2015-12-09 12:00:26 +00:00
mythria
67c99a9918 [Interpreter] Adds wide variant of CreateLiterals. Adds CreateLiterals to BytecodeGraphBuilder.
Adds implementation and tests for CreateObjectLiteral, CreateArrayLiteral and CreateRegExpLiteral
to bytecode graph builder. Also changes these bytecodes to expect three operands instead of using
accumulator to pass one of the operands. This is done to avoid looking into the earlier nodes to
fetch operands in the bytecode graph builder. Also adds support for wide variant of these
bytecodes to bytecode generator and bytecode graph builder.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32710}
2015-12-09 11:53:14 +00:00
bmeurer
82fd004745 [turbofan] Also lower JSCreateCatchContext in typed lowering.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32709}
2015-12-09 11:52:22 +00:00
bmeurer
109a5e7bf3 Sanitize js OWNERS file.
NOTRY=true

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32708}
2015-12-09 11:35:04 +00:00
mythria
3b6773ba3d [Interpreter] Removes ToBoolean bytecode.
ToBoolean was used with conditional jumps. An earlier cl
(https://codereview.chromium.org/1426913002/) merges jumps
and ToBoolean into a single bytecode. So, we no longer need
ToBoolean bytecode.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32707}
2015-12-09 11:29:35 +00:00
mlippautz
8ad016d361 [cctest] Move most heap related tests to test/cctest/heap and clean wrt IWYU
* Move most heap related tests into heap/ subdir
* IWYU for heap utility functions

R=ulan@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32706}
2015-12-09 11:26:15 +00:00