Commit Graph

19353 Commits

Author SHA1 Message Date
adamk@chromium.org
98e0eac76f Speed up creation of Objects whose prototype has dictionary elements
This speeds up both the case from the bug (using Object.create) but also
takes care ofthe "{ __proto__: obj  }" syntax, which was previously (and
erroneously) being treated the same as setting the prototype dynamically
from script using the __proto__ setter or Object.setPrototypeOf.

BUG=chromium:422754
LOG=y
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 18:16:35 +00:00
adamk@chromium.org
04db7c8793 Fix {get,set}ter-on-elements tests to run through all creation functions
setter-on-elements had the wrong length hardcoded in a for loop over the
creation functions (getter-on-elements had the right length, but seemed
worth future-proofing).

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 17:21:53 +00:00
titzer@chromium.org
5a1774268a Add Terminate operator.
Terminate is need for non-terminating loops (NTLs) that can appear after optimizing control flow. It gathers the control and effect(s) from a NTL and connects them to end so that they are not dead-code removed.

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 17:15:38 +00:00
jochen@chromium.org
7a70d6a0eb Update intialization of vtune support.
In R23940 (https://code.google.com/p/v8/source/detail?r=23940) it introduces
 Isolate::CreateParams and mentions that V8::SetJitCodeEventHandler should either
 be passed to Isolate::New as well, or invoked via the Isolate.

 When Chrome as embedder of V8, we will set the Jit Code event handler for Vtune
 support during the initialization of renderer process and V8 has be initialized
 at that time. It's better that we invoke V8::SetJitCodeEventHander via the Isolate.
 So we change the vTune::InitializeVtuneForV8(v8::Isolate::CreateParams& params) to
 vTune::InitializeVtuneForV8(v8::Isolate* isolate).

 we will do corresponding changes in chromium code if this patch is landed and Chromium
 updates V8 to the
 new release branch.

 some part of this patch is provided by denis.pravdin@intel.com.

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

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 15:30:50 +00:00
dslomov@chromium.org
8de3b7e129 Stage harmony-strings.
R=rossberg@chromium.org, yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 14:58:25 +00:00
titzer@chromium.org
f843327ea0 Cleanups to Verifier.
This CL broadens the checks done by the verifier in untyped mode and introduces some subroutines to shorten the code a bit.

Introduce routines CheckUpperIs() CheckUpperMaybe() and CheckValueInputIs() that are called unconditionally by the verifier. If the typing mode is untyped, then don't check anything.

Also added a couple checks for Merge and Loop nodes that catch bugs where the operator and the node disagree on input counts (a bug encountered today).

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 14:39:41 +00:00
dslomov@chromium.org
db000e307a Remove [[PROTOTYPE]] from ObjectToStringHarmony
harmony-tostring needs to emulate InstallFunctions --- InstallFunctions will fail
in Debug builds because the `toString` property already exists in Object.prototype.

The fix is to add some of the other features from InstallFunctions() to the
setup of ObjectToStringHarmony.

R=dslomov@chromium.org

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 14:06:15 +00:00
wingo@igalia.com
6c9bab5c74 Array.prototype.{reduce, reduceRight}: Wrong order of operations when determining initial value.
BUG=v8:3534
LOG=
R=svenpanne@chromium.org, wingo@igalia.com

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

Patch from Diego Pino <dpino@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 13:13:19 +00:00
machenbach@chromium.org
5680786c21 Move js perf tests to a common root on the perf dashboard.
BUG=
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 13:04:08 +00:00
machenbach@chromium.org
e48e3e53ae Add an --msan flag to run-tests.py.
Currently a no-op and added only for consistency with ASan/TSan.

BUG=chromium:425187
R=machenbach@chromium.org
LOG=N

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

Patch from Sergey Matveev <earthdok@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 12:54:35 +00:00
machenbach@chromium.org
846dfa1a84 Whitespace change to test new git workflow.
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:32:39 +00:00
mstarzinger@chromium.org
e4fe4e2c5f Switch ScheduleLateNodeVisitor to use explicit queue.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:31:12 +00:00
bmeurer@chromium.org
6619a7975d [turbofan] Add support for deferred code.
Branch can now have an optional hint, when the condition is
likely true or false, and if such a hint is present the other
basic block will be marked as deferred and placed at the end
of the function.

We currently use this feature for tagging int32/uint32 in
change lowering, and for load/store bounds checks in simplified
lowering.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:24:55 +00:00
dslomov@chromium.org
1efcf09375 Perf tests for fromCodePoint and codePointAt.
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:08:42 +00:00
sigurds@chromium.org
81420f003b Add FRINTP (round towards positive infinity) instruction.
Macro Assember, assembler and simulator for ARM64 were missing FRINTP.

R=rodolph.perfetta@arm.com, ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:06:22 +00:00
balazs.kilvady@imgtec.com
1479cb96c3 MIPS64: Spread the knowledge!
Port r24793 (c0c2b0d)

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 10:26:38 +00:00
bmeurer@chromium.org
08e20d1291 Disable libstdc++ debug mode on x64 for now.
TBR=mstarzinger@chromium.org

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 09:37:42 +00:00
mstarzinger@chromium.org
cb4f2520aa Remove testing artifacts from Schedule::AddFoo.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 09:14:48 +00:00
dslomov@chromium.org
b664c12235 Flatten the string in StringToDouble function.
R=yangguo@chromium.org
BUG=chromium:425551
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 08:19:05 +00:00
jochen@chromium.org
4669a5cfb9 Really disable test when running with optimize for size
R=bmeurer@chromium.org
TBR=bmeurer@chromium.org
LOG=n
BUG=none

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 08:15:47 +00:00
bmeurer@chromium.org
ded822a5de Enable libstdc++ debug mode in debug builds.
For now it's only enabled on Linux/Intel.

R=mstarzinger@chromium.org
BUG=v8:3638
LOG=y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 08:12:17 +00:00
dslomov@chromium.org
af97f09b94 Spread the knowledge!
R=arv@chromium.org, mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 08:06:43 +00:00
jochen@chromium.org
b57976051b Fix newly added test to not run with optimize-for-size
TBR=ulan@chromium.org
BUG=none
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 07:36:12 +00:00
jochen@chromium.org
8f7a455fe2 Add support for a target new space size
When this flag is set, we will commit additional pages up until the
target size before doing a scavenge.

I made sure that all tests pass when a target size of 16MB is set.

BUG=v8:3626
R=ulan@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 06:58:38 +00:00
bmeurer@chromium.org
8214cc0e56 Use getauxval() if available.
This fixes the problem of not being able to detect ARM features on
ChromeOS because sandbox cannot access /proc/self/auxv and
/proc/cpuinfo there.

Drive-by-cleanup to libc detection in two other places.

R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 06:42:17 +00:00
machenbach@chromium.org
f0881c6129 Whitespace change to trigger revert of new test262-es6 tests.
TBR=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 20:13:09 +00:00
machenbach@chromium.org
681c1b923a Whitespace change to trigger new test262-es6 tests.
TBR=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 18:46:12 +00:00
machenbach@chromium.org
bdba5b4e72 Whitespace change to trigger new test262-es6 tests.
TBR=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 18:38:03 +00:00
adamk@chromium.org
ed23b4de0b Replace single quotes with double quotes to fix BUILD.gn
TBR=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 18:16:50 +00:00
adamk@chromium.org
b6d0113abc Array.prototype.{slice,splice} should use [[DefineOwnProperty]] to generate return value
BUG=chromium:423633
LOG=N
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 17:46:42 +00:00
dslomov@chromium.org
37bd114925 Update ObjectToString to Harmony-draft algorithm
Updates Object.prototype.toString() to use algorithm described in harmony drafts.

Currently, the behaviour is essentially the same as ES262's version, however this changes when internal structures
such as Promise make use of symbolToStringTag (as they are supposed to, see v8:3241), and changes further once
Symbol.toStringTag is exposed publicly.

BUG=v8:3241, v8:3502
LOG=N
R=dslomov@chromium.org

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 17:21:32 +00:00
mstarzinger@chromium.org
5df6dc390b Revert "Make sure floating phi nodes are coupled to their control."
TBR=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 16:31:51 +00:00
mstarzinger@chromium.org
bf958b0f78 Make sure floating phi nodes are coupled to their control.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 15:35:39 +00:00
titzer@chromium.org
0c4f8bc6c4 Fix scheduler not to connect final merge block in the graph to its inputs.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 15:12:45 +00:00
dcarney@chromium.org
1c5fafe890 [turbofan] use ZonePool in most places in the compiler pipeline a temp zone is used.
R=jarin@chromium.org, bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24779 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 14:44:50 +00:00
titzer@chromium.org
2642058760 Fix off-by-one bug in TurboFan register allocator.
R=jarin@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 14:41:54 +00:00
titzer@chromium.org
12a82ef32c Fix AstGraphBuilder for loops like for(;;).
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 14:17:08 +00:00
rossberg@chromium.org
077809fc67 Fix incorrect private access
(I'm puzzled why GCC did not report this error.)

TBR=bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 13:37:49 +00:00
mvstanton@chromium.org
8330178b4c The issue is that by handling strings with map/handler pairs instead of a special
version of the keyed load stub (https://code.google.com/p/v8/source/detail?r=24661),
I allowed polymorphism between string and non-string types in the IC. Before, the
IC would go generic.

Then, at crankshaft time, we special case when we only saw strings. The error
here is that crankshaft can't emit code that handles polymorphism between string
and non-string types. The choice is either to get that to happen (I don't deem
this necessary from a performance point of view, an IC with such type feedback
before would have gone generic), or simply check for the case of "polymorphic
with some string maps" and require crankshaft to go generic. I'll do the latter.

BUG=425519
LOG=N
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 13:04:51 +00:00
rossberg@chromium.org
5e1cd18d94 Fix data race with interface caching
R=bmeurer@chromium.org
BUG=421634
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 12:57:19 +00:00
jochen@chromium.org
2147d5a145 Use an idle notification of 0ms as hint that a GC after context disposal is triggerd
BUG=none
R=ulan@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 12:56:52 +00:00
dcarney@chromium.org
54fef44df3 [turbofan] add ZonePool to correctly track compiler phase memory usage
R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 12:38:46 +00:00
bmeurer@chromium.org
1efc572fe7 [turbofan] Reduce ~~x to x.
TEST=unittests
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 12:24:01 +00:00
wingo@igalia.com
4eddbacabf Assign bailout and type feedback IDs in a post-pass
This will allow us to move expressions from one function to another, for
example when the parser determines that a given cover grammar instance
is actually the default value initializer for an arrow function.

This is a re-land of https://codereview.chromium.org/636403003/ with a
fix for the arm64 code generator.

R=svenpanne@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 12:16:37 +00:00
dslomov@chromium.org
b830c2741c Handle property name "-0" correctly for typed arrays.
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 11:54:10 +00:00
verwaest@chromium.org
37b7dde54d Remove unused IsDirty
BUG=
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 11:21:54 +00:00
dusan.milosavljevic@imgtec.com
0ffa82c3ac Handle NaN value storing in Uint8Clamped typed arrays.
TEST=mjsunit/external-array
BUG=
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 11:10:13 +00:00
dslomov@chromium.org
ac8b70cf2b Perf tests for harmony string functions.
R=yangguo@chromium.org

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 11:05:32 +00:00
bmeurer@chromium.org
423201ea06 [x86] Select better left operand for comparisons.
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 10:59:55 +00:00
yangguo@chromium.org
018e3979ee Fix leak in d8.
R=bmeurer@chromium.org
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 10:59:41 +00:00