Commit Graph

21724 Commits

Author SHA1 Message Date
dslomov
de8e2be875 Implement TDZ in StoreIC for top-level lexicals.
StoreIC::Store was missing a check present in LoadIC::Load.

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

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

Cr-Commit-Position: refs/heads/master@{#27182}
2015-03-13 13:28:18 +00:00
yangguo
c13dda2519 Add more output to flaky debug-references test.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27181}
2015-03-13 12:27:40 +00:00
jochen
a6a887d083 Extract code to mark an object during incremental marking
Not only does this remove code duplication, I also plan to use this for
unifying reference group marking later

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

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

Cr-Commit-Position: refs/heads/master@{#27180}
2015-03-13 12:14:11 +00:00
yangguo
057857ef06 PPC: fix allocation issues for PPC64.
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27179}
2015-03-13 11:18:31 +00:00
titzer
3ff0e6f023 Speed up FastElementsAccessor::ValidContents by removing redundant handle scope.
R=jkummerow@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27178}
2015-03-13 10:47:42 +00:00
yangguo
a873c9f336 Serializer: prepare support for INTERNAL_REFERENCE_ENCODED.
Platform ports that use this RelocInfo kind need to implement
set_target_internal_reference accordingly to distinguish between
INTERNAL_REFERENCE and INTERNAL_REFERENCE_ENCODED.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27177}
2015-03-13 10:08:04 +00:00
marja
0c56d7e809 Remove duplicate script scope.
We previously had two nested SCRIPT_SCOPEs (used to be GLOBAL_SCOPES), but as
the lexical variable implementation changed, the inner one is no longer needed.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27176}
2015-03-13 09:46:14 +00:00
jochen
0a1e272f9c Turn on job-based optimizing compiler
BUG=v8:3608
R=yangguo@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#27175}
2015-03-13 09:14:00 +00:00
michael_dawson
0697e92952 PPC: [turbofan] Introduce optional Float64Min and Float64Max machine operators.
Port 99f8d57f3c

Original commit message:
Basically recognize certain x < y ? x : y constructs and turn that into
Float64Min/Float64Max operations, if the target machine supports that.
On x86 we lower to (v)minsd/(v)maxsd.

R=dcarney@chromium.org

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

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

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

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27174}
2015-03-13 07:40:07 +00:00
michael_dawson
ae78a9702a PPC: Simplify pending message object handling.
Port d4696c4841

Original commit message:
This moves the decision whether to report a message or not to when
the pending exception is propagated instead of trying to preserve the
decision in a ThreadLocalTop field.

R=titzer@chromium.org

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

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

R=danno@chromium.org, svenpanne@chromium.org, titzer@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27173}
2015-03-13 07:34:57 +00:00
bmeurer
83f157bc18 [turbofan] Use builtin inlining mechanism for Math.abs and Math.sqrt.
Reduces the amount of custom support code for Math functions in TurboFan
and allows for more general inlining (i.e. independent of parameter
types).

BUG=v8:3952
LOG=n
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27172}
2015-03-13 07:06:15 +00:00
adamk
0c305e0b1b Fix error message for Object.observe accept argument
BUG=chromium:464695
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27171}
2015-03-12 19:04:38 +00:00
Hannes Payer
a1a2046274 Reactivate all the cores in cpu.sh.
BUG=
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27170}
2015-03-12 18:01:58 +00:00
balazs.kilvady
7290d15e71 MIPS: Improve naming of turbofan ops for %_DoubleHi, %_DoubleLo and %_ConstructDouble.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27169}
2015-03-12 17:29:16 +00:00
balazs.kilvady
323ec9e8bd MIPS: [turbofan] Introduce optional Float64Min and Float64Max machine operators.
Port 99f8d57f3c

Original commit message:
Basically recognize certain x < y ? x : y constructs and turn that into
Float64Min/Float64Max operations, if the target machine supports that.
On x86 we lower to (v)minsd/(v)maxsd.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27168}
2015-03-12 16:43:51 +00:00
arv
36df5747bf Use path in name for test262-es6
For ES5 the file names always included the whole path, like this:

  ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-3.js

For ES6 this is no longer true:

  language/computed-property-names/basics/symbol.js
  language/computed-property-names/class/method/symbol.js

To allow the status file to correctly identify the right test we need
to change the reported test name to include the whole path.

BUG=None
LOG=N
R=rossberg@chromium.org, machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27167}
2015-03-12 16:36:31 +00:00
dcarney
2d3311b82f remove DeletedField from PropertyDetails
R=verwaest@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27166}
2015-03-12 16:03:27 +00:00
dslomov
c071af5ae3 Switch the order of experimental global initialization and running natives.
The order should match the one for normal natives.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27165}
2015-03-12 15:44:38 +00:00
jochen
6b8428748e Use target_cpu instead of cpu_arch in BUILD.gn
Also add missing defines for arm simulator build

BUG=v8:3841
R=machenbach@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27164}
2015-03-12 15:39:47 +00:00
johan
68d5f916d8 Fix build on solaris platforms
e8b9f2d7 introduced a different cast which broke building on Illumos.
Revert to previous behavior for V8_OS_SOLARIS only.

Found on SmartOS while building with gcc 4.9.0.

edit1: adding jochen to reviewers since he was assigned through the issue tracker and danno since he seems to do a fair amount of cross-platform work

edit2: removing BUG reference because I don't understand what LOG needs to contain (and it seems to link to chromium and not the v8 repo). Please edit commit message as appropriate.

BUG=3935
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27163}
2015-03-12 15:12:45 +00:00
mstarzinger
1a37a4cc39 [turbofan] Bring back long lost comment to AstGraphBuilder.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27162}
2015-03-12 15:04:38 +00:00
yangguo
4e9daf4e3d Hide RegExp and String initialization in a closure.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27161}
2015-03-12 14:47:49 +00:00
bmeurer
99f8d57f3c [turbofan] Introduce optional Float64Min and Float64Max machine operators.
Basically recognize certain x < y ? x : y constructs and turn that into
Float64Min/Float64Max operations, if the target machine supports that.
On x86 we lower to (v)minsd/(v)maxsd.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27160}
2015-03-12 14:07:39 +00:00
caitpotter88
1aae3a1c89 [es6] support template literals after MemberExpression
BUG=v8:3958, 450942
LOG=N
R=arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27159}
2015-03-12 14:02:04 +00:00
balazs.kilvady
811caee0e0 MIPS: Simplify pending message object handling.
Port d4696c4841

Original commit message:
This moves the decision whether to report a message or not to when
the pending exception is propagated instead of trying to preserve the
decision in a ThreadLocalTop field.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27158}
2015-03-12 13:54:45 +00:00
mstarzinger
4dfff4abbd [turbofan] Introduce builders for property access.
This introduces a choke point in the AstGraphBuilder for property
access creation. This makes it easier to enrich all such nodes with
additional side-table or debugging information.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27157}
2015-03-12 13:50:05 +00:00
bashi
83245abb6b Add Cast() for Int32 and Uint32
It should be possible to cast a Value to Int32 without throwing an exception
when IsInt32() is true. Same for Uint32.

BUG=chromium:462402
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27156}
2015-03-12 12:27:46 +00:00
Sven Panne
40567349df Remove funky 2-stage initialization of ParserInfo and an adventurous memset.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27155}
2015-03-12 11:46:32 +00:00
ishell
0902b5f4df Incorrect handling of HTransitionElementsKind in hydrogen check elimination phase fixed.
BUG=chromium:460917
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27154}
2015-03-12 11:44:29 +00:00
marja
44c8c1bcfe [strong] Cleanup and fix test (declaration-after-use.js).
Cleanup: Better helpers, unified line splitting. Also asserting that without
strong mode, the snippets don't produce errors.

Fix: The eval related tests were wrong (we didn't make sure that the error
thrown comes from strong scoping and is not a normal runtime error).

BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27153}
2015-03-12 10:52:08 +00:00
balazs.kilvady
1320b9dc5f MIPS: CpuProfiler: enable tests except four failing tests.
Port 84e90b2d0d

Original commit message:
Four tests are failing due to a problem with no frame ranges.

TEST=cctest/test-cpu-profiler/CollectDeoptEvents
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27152}
2015-03-12 10:46:31 +00:00
dcarney
317ce1170d add 0 length guard in IsNonArrayIndexInteger
TBR=verwaest@chromium.org

BUG=466086
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27151}
2015-03-12 10:44:38 +00:00
mstarzinger
d4696c4841 Simplify pending message object handling.
This moves the decision whether to report a message or not to when
the pending exception is propagated instead of trying to preserve the
decision in a ThreadLocalTop field.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27150}
2015-03-12 09:50:44 +00:00
mvstanton
4ededa8694 Vector-ICs: Implement slot sharing for global loads.
We can reduce the number of type feedback vector slots required, and
also reduce IC misses.

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

Cr-Commit-Position: refs/heads/master@{#27149}
2015-03-12 09:23:01 +00:00
bmeurer
b5197ea478 [turbofan] Remove unused diamonds during control reduction.
A diamond is unused if the Merge node has no Phi/EffectPhi uses, exactly
two inputs, one IfTrue and one IfFalse, which have the same Branch
control input and no other uses except for the Merge. In this case the
diamond can safely be removed.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27148}
2015-03-12 09:02:22 +00:00
machenbach
8329f04abe Mark ProcessDebugMessagesThreaded as flaky.
TBR=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27147}
2015-03-12 08:15:55 +00:00
michael_dawson
be2e9199cb PPC: simplify delta calculation in DoDeferredInstanceOfKnownGlobal.
... and improve protection against trampoline table generation in this
sequence.

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

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27146}
2015-03-12 08:14:51 +00:00
michael_dawson
7cbdadd495 PPC: remove test excludes no longer required
The test/cctest/cctest.status and test/mjsunit/mjsunit.status
tests now pass under the simulator so removing these
excludes

	modified:   test/cctest/cctest.status
	modified:   test/mjsunit/mjsunit.status

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

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27145}
2015-03-12 07:54:38 +00:00
michael_dawson
c67dab62c7 PPC: Simplify pending message script handling.
Port f71e262683

Original commit message:
This removes the separate tracking of the pending message script,
because that script is already stored in the message object and
duplicating it in the ThreadLocalTop makes it more brittle.

R=bmeurer@chromium.org

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

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

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

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27144}
2015-03-12 04:27:18 +00:00
adamk
9703c057c5 Modules: simplify logic around allocation of module internal variables
Since recursive modules are gone, only the top-level scope can have
module inner scopes. Rename Scope::AllocateModulesRecursively to
Scope::AllocateModules, and add test showing the module Variables
are still allocated appropriately in the top level scope.

BUG=v8:1569,v8:3940
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27143}
2015-03-11 23:19:57 +00:00
dpranke
ad5630db87 Fix the toolchain used to build the snapshots in GN.
We need the v8 snapshot to be compiled on the host cpu (the
machine doing the build), but using generated code that has the
same pointer size as the target_arch; i.e., for 32-bit arm builds,
we need to use a 32-bit x86 host binary, not a 64-bit host binary.

The easiest way to ensure that this happens is to just specify
a custom toolchain in GN to use to build the snapshot.

R=jochen@chromium.org, cjhopman@chromium.org
BUG=465456, 395249
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27142}
2015-03-11 21:55:57 +00:00
ishell
6d0677d845 Reland of Remove slots that point to unboxed doubles from the StoreBuffer/SlotsBuffer.
The problem is that tagged slot could become a double slot after migrating of an object to another map with "shifted" fields (for example as a result of generalizing immutable data property to a data field).
This CL also adds useful machinery that helps triggering incremental write barriers.

BUG=chromium:454297, chromium:465273
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27141}
2015-03-11 19:29:57 +00:00
balazs.kilvady
2bd426cdd5 MIPS: Simplify pending message script handling.
Port f71e262683

Original commit message:
This removes the separate tracking of the pending message script,
because that script is already stored in the message object and
duplicating it in the ThreadLocalTop makes it more brittle.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27140}
2015-03-11 17:25:11 +00:00
balazs.kilvady
94d49b1150 MIPS64: CpuProfiler: fix for CollectDeoptEvents test.
Port a925f3f478

Original commit message:
The same idea as in https://codereview.chromium.org/984893003/

BUG=chromium:452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27139}
2015-03-11 16:52:29 +00:00
yangguo
9333e7e135 Hide native Date implementation in function context.
This further reduces the context size.

R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27138}
2015-03-11 15:53:37 +00:00
svenpanne
a69cfac182 Re-arranged intrinsic macros a bit.
Outside of runtime.h, only the distinction between intrinsics
returning pairs and those returning pairs is really meaningful, not
the internal traditional partitioning of them.

BUG=v8:3947
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27137}
2015-03-11 15:18:52 +00:00
michael_dawson
d88656af9f cctest/test-deoptimization/DeoptimizeCompare was failing on PPC because the path that is optimized for isel incorrectly used integer values instead of Smi's
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27136}
2015-03-11 14:58:03 +00:00
svenpanne
611eb25894 Converted FullCode to have its own list of known intrinsics.
Combined the various lists, the only slightly ugly thing is now the
distinction between intrinsics returning pairs and the rest, but
that's no big deal.

BUG=v8:3947
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27135}
2015-03-11 14:03:29 +00:00
loislo
df9e6fe329 CpuProfiler: simplify inlined function info magic.
I did some investigation and found that in the most cases
the old schema with the separate List for functions and inlines
gives us no memory benefits because more frequently we inlines
different functions into parent function. So the plain schema
wins a tens or even hundreds bytes a few thousand times.

The only drawback is that we will print the inlined body
the each time when we inline it. But is not a problem
because it happens only under FLAG_hydrogen_track_positions.

Also I added script_id to the structure, so it could be used later
by cpu-profiler.

BUG=chromium:452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27134}
2015-03-11 13:51:25 +00:00
balazs.kilvady
ee4f1bd81d MIPS: CpuProfiler: fix for CollectDeoptEvents test.
Port a925f3f478

Original commit message:
The same idea as in https://codereview.chromium.org/984893003/

BUG=chromium:452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27133}
2015-03-11 13:42:51 +00:00