platform/upstream/v8.git
11 years agoForce GC before executing unbox double arrays test to avoid timeouts.
hpayer@chromium.org [Wed, 22 May 2013 09:05:22 +0000 (09:05 +0000)]
Force GC before executing unbox double arrays test to avoid timeouts.

BUG=

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

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

11 years agobuild fix for 14738
dcarney@chromium.org [Wed, 22 May 2013 07:32:36 +0000 (07:32 +0000)]
build fix for 14738

BUG=
R=svenpanne@chromium.org

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

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

11 years agoimplement fast ReturnValue setters
dcarney@chromium.org [Wed, 22 May 2013 06:35:38 +0000 (06:35 +0000)]
implement fast ReturnValue setters

R=svenpanne@chromium.org
BUG=

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

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

11 years agoMIPS: fix arm simulator after 14725
palfia@homejinni.com [Tue, 21 May 2013 23:09:04 +0000 (23:09 +0000)]
MIPS: fix arm simulator after 14725

Port r14731 (046b5d8d)

BUG=

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

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

11 years agoMIPS: new style of property/function callbacks
palfia@homejinni.com [Tue, 21 May 2013 21:09:58 +0000 (21:09 +0000)]
MIPS: new style of property/function callbacks

Port r14725 (d393d88)

BUG=

Review URL: https://codereview.chromium.org/15562007
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoDon't track representations in context extensions.
verwaest@chromium.org [Tue, 21 May 2013 17:21:27 +0000 (17:21 +0000)]
Don't track representations in context extensions.
This also enables verification of representations.

BUG=
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/15411003

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

11 years agoAdd regression test for fix from r14732.
mstarzinger@chromium.org [Tue, 21 May 2013 14:20:42 +0000 (14:20 +0000)]
Add regression test for fix from r14732.

R=verwaest@chromium.org
BUG=chromium:242502
TEST=mjsunit/regress/regress-crbug-242502

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

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

11 years agoa tiny bug in DehoistArrayIndex
mmassi@chromium.org [Tue, 21 May 2013 14:09:28 +0000 (14:09 +0000)]
a tiny bug in DehoistArrayIndex

R=mmassi@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

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

11 years agoZap map value in the stub-cache on clear.
verwaest@chromium.org [Tue, 21 May 2013 12:59:48 +0000 (12:59 +0000)]
Zap map value in the stub-cache on clear.
The empty_string is a valid key for keyed loads and stores.

BUG=
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/15565002

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

11 years agofix arm simulator after 14725
dcarney@chromium.org [Tue, 21 May 2013 12:17:04 +0000 (12:17 +0000)]
fix arm simulator after 14725

BUG=

R=svenpanne@chromium.org

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

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

11 years agoMake sure we register extensions only once. Removed unused member variable.
svenpanne@chromium.org [Tue, 21 May 2013 12:03:49 +0000 (12:03 +0000)]
Make sure we register extensions only once. Removed unused member variable.

V8::Initialize() can be called from various threads simultaneously, so
everything should be done only once per process or within the Isolate. For
registering extensions, we do the former now.

R=dslomov@chromium.org

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

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

11 years agoDisable flaky test after r14723.
mstarzinger@chromium.org [Tue, 21 May 2013 11:24:20 +0000 (11:24 +0000)]
Disable flaky test after r14723.

R=svenpanne@chromium.org
BUG=v8:2628
TEST=cctest/test-cpu-profiler/SampleWhenFrameIsNotSetup

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

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

11 years agoDon't create new maps in CurrentMapForDeprecated.
verwaest@chromium.org [Tue, 21 May 2013 11:20:24 +0000 (11:20 +0000)]
Don't create new maps in CurrentMapForDeprecated.

R=yangguo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/15358005

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

11 years agoRemove unneeded argument from Parser::GetSymbol
wingo@igalia.com [Tue, 21 May 2013 10:45:58 +0000 (10:45 +0000)]
Remove unneeded argument from Parser::GetSymbol

Parser::GetSymbol can't actually fail, so no need for the bool* ok
argument or the CHECK_OK in callers.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoMake Runtime_Abort print to stderr instead of stdout.
mstarzinger@chromium.org [Tue, 21 May 2013 09:25:57 +0000 (09:25 +0000)]
Make Runtime_Abort print to stderr instead of stdout.

R=mvstanton@chromium.org

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

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

11 years agonew style of property/function callbacks
dcarney@chromium.org [Tue, 21 May 2013 06:36:24 +0000 (06:36 +0000)]
new style of property/function callbacks

R=svenpanne@chromium.org
BUG=

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

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

11 years agoARM: Smi refactoring and improvements.
rodolph.perfetta@gmail.com [Fri, 17 May 2013 15:38:14 +0000 (15:38 +0000)]
ARM: Smi refactoring and improvements.

Refactoring:
 * consistent use of SmiTag/Untag
 * added a few Smi macros and helpers
Improvements
 * small optimisations (e.g. merging untag and cmp #0)
 * added fixed point to double conversion instructions for simpler conversions

More on the last point: a Smi can be seen as a fixed point number with the
a one bit fractional part. Fixed to double instructions allow us to convert
a Smi to a double without untagging.

BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/15085026

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

11 years agoAllow for no samples in test-cpu-profiler/SampleWhenFrameIsNotSetup
yurys@chromium.org [Fri, 17 May 2013 15:10:25 +0000 (15:10 +0000)]
Allow for no samples in test-cpu-profiler/SampleWhenFrameIsNotSetup

The test should only check that there are no sample stacks that never possible in the JS code being profiled.

BUG=v8:2628
R=svenpanne@chromium.org

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

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

11 years agoReduce register pressure in some runtime functions
rossberg@chromium.org [Fri, 17 May 2013 13:54:12 +0000 (13:54 +0000)]
Reduce register pressure in some runtime functions

Hoped to cure the spurious 3% regression we saw on beloved chromium-rel-win7-dual/sunspider after http://code.google.com/p/v8/source/detail?r=14236

R=mstarzinger@chromium.org
BUG=chromium:233441

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

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

11 years agoPrepare push to trunk. Now working on version 3.19.3.
jkummerow@chromium.org [Fri, 17 May 2013 13:37:26 +0000 (13:37 +0000)]
Prepare push to trunk.  Now working on version 3.19.3.

R=danno@chromium.org

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

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

11 years agoTurning off optimize-constructed-arrays to investigate a WebKit/bindings issue.
mvstanton@chromium.org [Fri, 17 May 2013 12:33:48 +0000 (12:33 +0000)]
Turning off optimize-constructed-arrays to investigate a WebKit/bindings issue.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoMIPS: Unify deoptimizer for JavaScript frames.
palfia@homejinni.com [Fri, 17 May 2013 10:46:42 +0000 (10:46 +0000)]
MIPS: Unify deoptimizer for JavaScript frames.

Port r14715 (84633474)

Original commit message:
This unifies the translation of an optimized frame to a full JavaScript
frame. Only the frame's context and fp register as well as alignment
padding are different on each architecture and can be factored out.

BUG=

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

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

11 years agoFix transition test to support allocation site info.
hpayer@chromium.org [Fri, 17 May 2013 08:56:45 +0000 (08:56 +0000)]
Fix transition test to support allocation site info.

BUG=

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

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

11 years agoUnify deoptimizer for JavaScript frames.
mstarzinger@chromium.org [Fri, 17 May 2013 08:27:56 +0000 (08:27 +0000)]
Unify deoptimizer for JavaScript frames.

This unifies the translation of an optimized frame to a full JavaScript
frame. Only the frame's context and fp register as well as alignment
padding are different on each architecture and can be factored out.

R=svenpanne@chromium.org

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

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

11 years agoFill in one-word-fillers for the unused property fields.
danno@chromium.org [Fri, 17 May 2013 06:58:06 +0000 (06:58 +0000)]
Fill in one-word-fillers for the unused property fields.

BUG=chromium:240056

Review URL: https://chromiumcodereview.appspot.com/15247003
Patch from Toon Verwaest <verwaest@chromium.org>.

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

11 years agoFix bugs in rewriting combined with attributes and accessors
verwaest@chromium.org [Fri, 17 May 2013 03:16:20 +0000 (03:16 +0000)]
Fix bugs in rewriting combined with attributes and accessors

R=danno@chromium.org

Review URL: https://chromiumcodereview.appspot.com/14843023

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

11 years agoMIPS: Implement yield* (delegating yield)
palfia@homejinni.com [Fri, 17 May 2013 01:10:09 +0000 (01:10 +0000)]
MIPS: Implement yield* (delegating yield)

Port r14669 (b64ce42a)

Original commit message:
Ideally this would have been implemented via desugaring at parse-time,
but yield* is an expression, and its desugaring includes statements like
while and try/catch.  We'd have to have BlockExpression in the AST to
support that, and it's not worth it for this feature.

So instead we implement all of the logic in
FullCodeGenerator::VisitYield.  Delegating yield AST nodes now have a
try handler index, for the try/catch.  Otherwise the implementation is
straightforward.

BUG=

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

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

11 years agoRevert "Simplifying GC heuristics, deleted old generation allocation limit."
hpayer@chromium.org [Thu, 16 May 2013 16:34:56 +0000 (16:34 +0000)]
Revert "Simplifying GC heuristics, deleted old generation allocation limit."

This reverts commit 14731029.

BUG=

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

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

11 years agoFix code gen bug on arm and mips; SeqStringSetChar overwrites a register; Add better...
titzer@chromium.org [Thu, 16 May 2013 14:27:39 +0000 (14:27 +0000)]
Fix code gen bug on arm and mips; SeqStringSetChar overwrites a register; Add better default PrintDataTo for HInstruction
BUG=

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

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

11 years agoRemove one more unneccessary conversion to double.
dslomov@chromium.org [Thu, 16 May 2013 11:57:23 +0000 (11:57 +0000)]
Remove one more unneccessary conversion to double.

R=rossberg@chromium.org

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

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

11 years agoRemove d8 implementation of ArrayBuffer and typed arrays.
dslomov@chromium.org [Thu, 16 May 2013 11:55:50 +0000 (11:55 +0000)]
Remove d8 implementation of ArrayBuffer and typed arrays.

R=rossberg@chromium.org

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

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

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

11 years agoRevert "Remove d8 implementation of ArrayBuffer and typed arrays."
dslomov@chromium.org [Thu, 16 May 2013 11:54:25 +0000 (11:54 +0000)]
Revert "Remove d8 implementation of ArrayBuffer and typed arrays."

This reverts commit r14706.
That commit had a stale change from another change list.

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

11 years agoRemove d8 implementation of ArrayBuffer and typed arrays.
dslomov@chromium.org [Thu, 16 May 2013 11:48:03 +0000 (11:48 +0000)]
Remove d8 implementation of ArrayBuffer and typed arrays.

R=rossberg@chromium.org

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

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

11 years agoImplement Array.observe and emit splice change records for ArrayPush
rossberg@chromium.org [Thu, 16 May 2013 11:19:37 +0000 (11:19 +0000)]
Implement Array.observe and emit splice change records for ArrayPush

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

Patch from Rafael Weinstein <rafaelw@chromium.org>.

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

11 years agoEncapsulating Type information in the CompareICStub
olivf@chromium.org [Thu, 16 May 2013 10:59:17 +0000 (10:59 +0000)]
Encapsulating Type information in the CompareICStub

Encapsulate type information in a convenient wrapper instead of storing it in a naked bitfield. This especially facilitates transitioning to a new state and converting from/to the extraICState representation. Additionally cleaning up ToBooleanICStub::Types for consistency.

BUG=
R=svenpanne@chromium.org

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

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

11 years agoSimplifying GC heuristics, deleted old generation allocation limit.
hpayer@chromium.org [Thu, 16 May 2013 10:00:05 +0000 (10:00 +0000)]
Simplifying GC heuristics, deleted old generation allocation limit.

BUG=

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

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

11 years agoCleaned up deopt output a bit.
svenpanne@chromium.org [Thu, 16 May 2013 09:44:59 +0000 (09:44 +0000)]
Cleaned up deopt output a bit.

Be a bit more consistent it what is printed. Removed the now superfluous
"*** DEOPT"-like output.

R=mstarzinger@chromium.org

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

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

11 years agoIncrease old generation space significantly if we observe a high promotion rate.
hpayer@chromium.org [Thu, 16 May 2013 09:21:19 +0000 (09:21 +0000)]
Increase old generation space significantly if we observe a high promotion rate.

BUG=

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

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

11 years agoPut preservation of optimized code map behind a flag.
mstarzinger@chromium.org [Thu, 16 May 2013 08:39:24 +0000 (08:39 +0000)]
Put preservation of optimized code map behind a flag.

R=hpayer@chromium.org

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

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

11 years agoMIPS: Fix debug mode test failures.
palfia@homejinni.com [Wed, 15 May 2013 22:45:46 +0000 (22:45 +0000)]
MIPS: Fix debug mode test failures.

This commit fixes a couple of debug mode test failures,
which were introduced by commit 14600.

TEST=mjsunit/mirror-number,mjsunit/mirror-object

BUG=

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

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

11 years agoRe-land Notifier.prototype.performChange + tests
adamk@chromium.org [Wed, 15 May 2013 22:09:40 +0000 (22:09 +0000)]
Re-land Notifier.prototype.performChange + tests

Fixes the debug check failure on sorting an object with an array __proto__.

Original Issue: https://codereview.chromium.org/14779011/

TBR=adamk@chromium.org

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

Patch from Rafael Weinstein <rafaelw@chromium.org>.

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

11 years agoRevert "Implement Object.getNotifier(obj).performChange()" (r14696)
adamk@chromium.org [Wed, 15 May 2013 18:47:48 +0000 (18:47 +0000)]
Revert "Implement Object.getNotifier(obj).performChange()" (r14696)

Reverts r14696 because it caused debug assertion failures when running
test/mjsunit/harmony/object-observe.js

TBR=rossberg

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

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

11 years agoImplement Object.getNotifier(obj).performChange()
adamk@chromium.org [Wed, 15 May 2013 17:44:45 +0000 (17:44 +0000)]
Implement Object.getNotifier(obj).performChange()

R=rossberg,adamk,arv
BUG=

Review URL: https://codereview.chromium.org/14779011
Patch from Rafael Weinstein <rafaelw@chromium.org>.

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

11 years agoPreserve optimized code map during GCs weakly.
mstarzinger@chromium.org [Wed, 15 May 2013 16:09:25 +0000 (16:09 +0000)]
Preserve optimized code map during GCs weakly.

This change preserves the contents of optimized code maps during GCs but
treats the references in this cache weakly. It uses infrastructure from
code flushing to maintain a list of all caches.

R=hpayer@chromium.org

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

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

11 years agoRevert "GeneratorFunction() makes generator instances"
wingo@igalia.com [Wed, 15 May 2013 15:57:58 +0000 (15:57 +0000)]
Revert "GeneratorFunction() makes generator instances"

This reverts r14684 because of blink LayoutTest failures in
inspector/debugger/debugger-pause-in-internal.html.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoPreallocate transitioned maps for TypedArrays.
dslomov@chromium.org [Wed, 15 May 2013 15:23:53 +0000 (15:23 +0000)]
Preallocate transitioned maps for TypedArrays.

R=hpayer@chromium.org

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

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

11 years agoWith flag optimize-constructed-arrays on, ARM and MIPS suffered a performance degrade...
mvstanton@chromium.org [Wed, 15 May 2013 15:17:01 +0000 (15:17 +0000)]
With flag optimize-constructed-arrays on, ARM and MIPS suffered a performance degrade due to incorrect code in GenerateRecordCallTarget().

The CL also enables flag optimize-constructed-arrays.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoAdd a HBreak instruction for debugging
olivf@chromium.org [Wed, 15 May 2013 14:24:47 +0000 (14:24 +0000)]
Add a HBreak instruction for debugging

BUG=
R=jkummerow@chromium.org

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

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

11 years agoShift additional_index by element_shift_size, not shift_size.
verwaest@chromium.org [Wed, 15 May 2013 14:04:44 +0000 (14:04 +0000)]
Shift additional_index by element_shift_size, not shift_size.

R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/14629021

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

11 years agoSlight improvement of object printer for maps.
mstarzinger@chromium.org [Wed, 15 May 2013 14:03:42 +0000 (14:03 +0000)]
Slight improvement of object printer for maps.

R=ulan@chromium.org

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

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

11 years agoGeneratorFunction() makes generator instances
wingo@igalia.com [Wed, 15 May 2013 13:22:05 +0000 (13:22 +0000)]
GeneratorFunction() makes generator instances

The current specification has GeneratorFunction() be like Function(),
except that it makes generator instances.  This commit implements that
behavior.  It also fills in a piece of the implementation where
otherwise calling GeneratorFunction or GeneratorFunctionPrototype would
cause an abort because they have no code.

R=mstarzinger@chromium.org, rossberg@chromium.org
TEST=mjsunit/harmony/generators-iteration
TEST=mjsunit/harmony/generators-runtime
BUG=v8:2355
BUG=v8:2680

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

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

11 years agoFix build failure on Linux since r14681.
mstarzinger@chromium.org [Wed, 15 May 2013 13:14:24 +0000 (13:14 +0000)]
Fix build failure on Linux since r14681.

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

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

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

11 years agoRemove use_system_v8 logic from the mainline gyp file
jkummerow@chromium.org [Wed, 15 May 2013 13:09:57 +0000 (13:09 +0000)]
Remove use_system_v8 logic from the mainline gyp file

Re-upload of https://codereview.chromium.org/14872005/

BUG=chromium:226860
R=ulan@chromium.org

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

Patch from Paweł Hajdan Jr. <phajdan.jr@chromium.org>.

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

11 years agoProvide BitField64 utility class.
mstarzinger@chromium.org [Wed, 15 May 2013 12:29:13 +0000 (12:29 +0000)]
Provide BitField64 utility class.

R=svenpanne@chromium.org
TEST=cctest/test-conversions/BitField64

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

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

11 years agoSimplifying GC heuristics, deleted old generation limit factor.
hpayer@chromium.org [Wed, 15 May 2013 11:08:59 +0000 (11:08 +0000)]
Simplifying GC heuristics, deleted old generation limit factor.

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

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

11 years agoIgnore failing flaky profiler test.
svenpanne@chromium.org [Wed, 15 May 2013 10:54:24 +0000 (10:54 +0000)]
Ignore failing flaky profiler test.

R=mstarzinger@chromium.org

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

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

11 years agoFunction constructor should avoid String.prototype methods
wingo@igalia.com [Wed, 15 May 2013 10:52:06 +0000 (10:52 +0000)]
Function constructor should avoid String.prototype methods

Replace a use of .indexOf with a call to StringIndexOf.  As always,
lexical scoping to the rescue.

R=mstarzinger@chromium.org
TEST=mjsunit/regress/regress-2686
BUG=v8:2686

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

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

11 years agoEnsure all maps gathered from the ICs are updated if deprecated.
danno@chromium.org [Wed, 15 May 2013 09:04:10 +0000 (09:04 +0000)]
Ensure all maps gathered from the ICs are updated if deprecated.
Add ASSERT to SmallMapList::Add to ensure no deprecated maps are ever added.

BUG=
R=danno@chromium.org

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

Patch from Toon Verwaest <verwaest@chromium.org>.

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

11 years agoVarious minor cctest fixes to make ASAN a bit happier.
svenpanne@chromium.org [Wed, 15 May 2013 08:59:28 +0000 (08:59 +0000)]
Various minor cctest fixes to make ASAN a bit happier.

   * Running with ASAN needs more stack, so don't set resource constraints too
     tight.

   * Checking boot time memory usage doesn't make sense when running with ASAN,
     it eats tons of memory for itself.

   * Fixed a malloc/delete[] mismatch: Not surprisingly, the pointer wrapped by
     a SmartArrayPointer should better be allocated by, well, NewArray...

Even with these 3 fixes, we still have a few failures when running our test
suite with ASAN. Most of them are either timeouts or failures caused by greatly
increased stack usage.

R=mstarzinger@chromium.org

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

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

11 years agoMIPS: Error found in test262 on ARM: BinaryOpStub could call out to a built-in and...
palfia@homejinni.com [Wed, 15 May 2013 00:57:19 +0000 (00:57 +0000)]
MIPS: Error found in test262 on ARM: BinaryOpStub could call out to a built-in and push parameters without an enclosing frame.

Port r14665 (15349aa)

This corrupted stackwalking.

BUG=

Review URL: https://codereview.chromium.org/14850023
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoMIPS: Ensure that soft-deopts don't count against opt_count
palfia@homejinni.com [Wed, 15 May 2013 00:02:40 +0000 (00:02 +0000)]
MIPS: Ensure that soft-deopts don't count against opt_count

Port r14658 (12c49bd)

This makes sure that Crankshaft doesn't disable optimization to early on hot functions that still contain unexecuted code without type information.

BUG=

Review URL: https://codereview.chromium.org/15005008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoFix Win64 compilation after r14670
yurys@chromium.org [Tue, 14 May 2013 23:54:39 +0000 (23:54 +0000)]
Fix Win64 compilation after r14670

TBR=jkummerow@chromium.org
BUG=v8:2628

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

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

11 years agoSkip samples where top function's stack frame is not setup properly
yurys@chromium.org [Tue, 14 May 2013 22:51:33 +0000 (22:51 +0000)]
Skip samples where top function's stack frame is not setup properly

Stack iterator takes return address based on the frame pointer (ebp) and detects JS frames based on value at fp + StandardFrameConstants::kMarkerOffset. So in order the iterator to work correctly this values should be already setup for the current function. Stack frame is constructed at the very beginning of JS function code and destroyed before return. If sample is taken before before the frame construction is completed or after it was destroyed the stack iterator will wrongly think that FP points at the current functions frame base and will skip callers frame. To avoid this we mark code ranges where  stack frame doesn't exist and completely ignore such samples.

This fixes cctest/test-cpu-profiler/CollectCpuProfile flakiness.

BUG=v8:2628
R=jkummerow@chromium.org

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

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

11 years agoImplement yield* (delegating yield)
wingo@igalia.com [Tue, 14 May 2013 16:26:56 +0000 (16:26 +0000)]
Implement yield* (delegating yield)

Ideally this would have been implemented via desugaring at parse-time,
but yield* is an expression, and its desugaring includes statements like
while and try/catch.  We'd have to have BlockExpression in the AST to
support that, and it's not worth it for this feature.

So instead we implement all of the logic in
FullCodeGenerator::VisitYield.  Delegating yield AST nodes now have a
try handler index, for the try/catch.  Otherwise the implementation is
straightforward.

R=rossberg@chromium.org
BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration

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

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

11 years agoRevert mistakenly committed r14667 and r14666.
wingo@igalia.com [Tue, 14 May 2013 16:17:26 +0000 (16:17 +0000)]
Revert mistakenly committed r14667 and r14666.

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

11 years agoAvoid loading "iter" twice.
wingo@igalia.com [Tue, 14 May 2013 15:59:37 +0000 (15:59 +0000)]
Avoid loading "iter" twice.

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

11 years agoImplement yield* (delegating yield)
wingo@igalia.com [Tue, 14 May 2013 15:59:25 +0000 (15:59 +0000)]
Implement yield* (delegating yield)

Ideally this would have been implemented via desugaring at parse-time,
but yield* is an expression, and its desugaring includes statements like
while and try/catch.  We'd have to have BlockExpression in the AST to
support that, and it's not worth it for this feature.

So instead we implement all of the logic in
FullCodeGenerator::VisitYield.  Delegating yield AST nodes now have a
try handler index, for the try/catch.  Otherwise the implementation is
straightforward.

R=mstarzinger@chromium.org
BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration

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

11 years agoError found in test262 on ARM: BinaryOpStub could call out to a built-in and push...
mvstanton@chromium.org [Tue, 14 May 2013 15:30:55 +0000 (15:30 +0000)]
Error found in test262 on ARM: BinaryOpStub could call out to a built-in and push parameters without an enclosing frame. This corrupted stackwalking.

BUG=
R=ulan@chromium.org

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

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

11 years agoAvoid convertion to double when it is not needed.
dslomov@chromium.org [Tue, 14 May 2013 15:03:27 +0000 (15:03 +0000)]
Avoid convertion to double when it is not needed.

R=rossberg@chromium.org

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

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

11 years agoImprove dead code elimination by transitively marking live code and removing all...
titzer@chromium.org [Tue, 14 May 2013 13:10:52 +0000 (13:10 +0000)]
Improve dead code elimination by transitively marking live code and removing all dead code. Replace unreachable phi removal algorithm with the new dead code elimination pass, which is more thorough.

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

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

11 years agoRemove HIsNilAndBranch (it's now unused)
danno@chromium.org [Tue, 14 May 2013 12:56:53 +0000 (12:56 +0000)]
Remove HIsNilAndBranch (it's now unused)

R=mstarzinger@chromium.org

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

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

11 years agoDon't use anonymous types declared in an anonymous union.
svenpanne@chromium.org [Tue, 14 May 2013 12:04:04 +0000 (12:04 +0000)]
Don't use anonymous types declared in an anonymous union.

They are a non-standard extension (probably in C1X, IIRC), but clang is unhappy
with them when -Wnested-anon-types is enabled, which seems to be implied by
-pedantic.

With this change and the previous fix for clang, we are now -Werror clean, even
on clang 3.3.

R=rossberg@chromium.org

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

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

11 years agoEnsure that soft-deopts don't count against opt_count
danno@chromium.org [Tue, 14 May 2013 11:45:33 +0000 (11:45 +0000)]
Ensure that soft-deopts don't count against opt_count

This makes sure that Crankshaft doesn't disable optimization to early on hot functions that still contain unexecuted code without type information.

R=jkummerow@chromium.org

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

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

11 years agoFixed linkage for Is template.
svenpanne@chromium.org [Tue, 14 May 2013 11:02:20 +0000 (11:02 +0000)]
Fixed linkage for Is template.

With static linkage, clang 3.3 is unhappy about unused functions

   template <> inline bool Is<JSFunction>(Object* obj)
   template <> inline bool Is<JSArray>(Object* obj)

in any compilation unit apart from acessors.cc.

R=mvstanton@chromium.org

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

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

11 years agoPrepare push to trunk. Now working on version 3.19.2.
ulan@chromium.org [Tue, 14 May 2013 08:13:25 +0000 (08:13 +0000)]
Prepare push to trunk.  Now working on version 3.19.2.

R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/15159002

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

11 years agoBinaryOpStub::GenerateSmiStub() on 32bit would erroneously patch the IC in case of...
mvstanton@chromium.org [Tue, 14 May 2013 06:53:46 +0000 (06:53 +0000)]
BinaryOpStub::GenerateSmiStub() on 32bit would erroneously patch the IC in case of a gc requirement. Brought the behavior into line with ARM and x64. Also some cleanup to label names.

BUG=
R=jkummerow@chromium.org

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

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

11 years agoMIPS: Only flush SharedFunctionInfo optimized code cache when necessary
palfia@homejinni.com [Tue, 14 May 2013 00:28:45 +0000 (00:28 +0000)]
MIPS: Only flush SharedFunctionInfo optimized code cache when necessary

Port r14650 (d045fbd3)

BUG=

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

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

11 years agoMIPS: Elide hole checks on KeyedLoads of holey double arrays
palfia@homejinni.com [Tue, 14 May 2013 00:28:01 +0000 (00:28 +0000)]
MIPS: Elide hole checks on KeyedLoads of holey double arrays

Port r14630 (124d01e7)

Original commit message:
Improves NavierStokes by about 5%

BUG=

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

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

11 years agoOnly flush SharedFunctionInfo optimized code cache when necessary
danno@chromium.org [Mon, 13 May 2013 19:22:18 +0000 (19:22 +0000)]
Only flush SharedFunctionInfo optimized code cache when necessary

R=mstarzinger@chromium.org

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

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

11 years agoDon't flush code for generator functions.
wingo@igalia.com [Mon, 13 May 2013 17:36:26 +0000 (17:36 +0000)]
Don't flush code for generator functions.

R=mstarzinger@chromium.org
BUG=v8:2681
TEST=mjsunit/regress/regress-2681

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

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

11 years agoEnable harmony_typed_arrays for shared build of d8.
dslomov@chromium.org [Mon, 13 May 2013 16:32:32 +0000 (16:32 +0000)]
Enable harmony_typed_arrays for shared build of d8.

R=mstarzinger@chromium.org

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

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

11 years agoEnable native implementation of array buffer and typed arrays in d8 and tests.
dslomov@chromium.org [Mon, 13 May 2013 14:18:43 +0000 (14:18 +0000)]
Enable native implementation of array buffer and typed arrays in d8 and tests.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agostop using AsciiValue
dcarney@chromium.org [Mon, 13 May 2013 14:18:05 +0000 (14:18 +0000)]
stop using AsciiValue

TBR=svenpanne@chomium.org
BUG=

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

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

11 years agoConsistently assume that arithmetic operations can overflow unless one can prove...
svenpanne@chromium.org [Mon, 13 May 2013 13:48:15 +0000 (13:48 +0000)]
Consistently assume that arithmetic operations can overflow unless one can prove the opposite.

Previously, HDiv never had its CanOverflow flag cleared and HMod had
inverted logic (compared to HAdd, HSub and HMul). Minor cleanups on the way.

R=jkummerow@chromium.org

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

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

11 years agoFix Win64 build
danno@chromium.org [Mon, 13 May 2013 13:20:47 +0000 (13:20 +0000)]
Fix Win64 build

TBR=jkummerow@chromium.org

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

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

11 years agoFix missing hole check for loads from Smi arrays when all uses are changes
jkummerow@chromium.org [Mon, 13 May 2013 11:58:10 +0000 (11:58 +0000)]
Fix missing hole check for loads from Smi arrays when all uses are changes

BUG=chromium:233737

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

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

11 years agoPrint range and type for phis, too.
svenpanne@chromium.org [Mon, 13 May 2013 11:51:49 +0000 (11:51 +0000)]
Print range and type for phis, too.

To comply with c1visualizer syntax, the format for ranges and types has changed
slightly. Furthermore, the format for phi uses has been changed a bit for more
consistency, too.

R=ulan@chromium.org

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

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

11 years agoImprove trace_opt output to help find compilation problems
danno@chromium.org [Mon, 13 May 2013 11:10:31 +0000 (11:10 +0000)]
Improve trace_opt output to help find compilation problems

R=jkummerow@chromium.org

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

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

11 years agoPrevent flushing of code that was set with %SetCode.
mstarzinger@chromium.org [Mon, 13 May 2013 10:59:00 +0000 (10:59 +0000)]
Prevent flushing of code that was set with %SetCode.

This makes sure that shared function infos that break the one-to-one
mapping to code are marked as un-flushable. Otherwise enqueuing through
the GC meta-data field in the code object doesn't work.

R=rossberg@chromium.org
TEST=cctest/test-api/Threading4

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

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

11 years agoElide hole checks on KeyedLoads of holey double arrays
danno@chromium.org [Mon, 13 May 2013 07:35:26 +0000 (07:35 +0000)]
Elide hole checks on KeyedLoads of holey double arrays

Improves NavierStokes by about 5%

R=ulan@chromium.org

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

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

11 years agoFixed constant folding in HMod.
svenpanne@chromium.org [Mon, 13 May 2013 07:32:38 +0000 (07:32 +0000)]
Fixed constant folding in HMod.

We have to check for overflow before attempting to do a modulo operation,
otherwise Crankshaft itself segfaults on some platforms, e.g. ia32. Added tests
even for division, where the problem doesn't show up, just to be sure...

R=mvstanton@chromium.org

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

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

11 years agoMIPS: Track heap objects.
palfia@homejinni.com [Fri, 10 May 2013 22:48:41 +0000 (22:48 +0000)]
MIPS: Track heap objects.

Port r14625 (bfb25ed8)

BUG=

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

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

11 years agoMIPS: Call to the right slow method.
palfia@homejinni.com [Fri, 10 May 2013 22:47:49 +0000 (22:47 +0000)]
MIPS: Call to the right slow method.

Port r14608 (339e0877)

BUG=

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

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

11 years agoReturn failure when allocating maps fails.
verwaest@chromium.org [Fri, 10 May 2013 17:43:04 +0000 (17:43 +0000)]
Return failure when allocating maps fails.

R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/14707011

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

11 years agoTrack heap objects.
verwaest@chromium.org [Fri, 10 May 2013 17:17:50 +0000 (17:17 +0000)]
Track heap objects.

R=danno@chromium.org

Review URL: https://chromiumcodereview.appspot.com/14996004

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

11 years agoAdd Persistent::ClearAndLeak.
mstarzinger@chromium.org [Fri, 10 May 2013 14:04:51 +0000 (14:04 +0000)]
Add Persistent::ClearAndLeak.

This will be relevant after Persistent is changed to Dispose itself when
destructed. With Persistent::ClearAndLeak, Blink can take the ownership of the
object pointed by a Persistent and avoid it getting destructed.

BUG=
R=svenpanne@chromium.org

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

Patch from Marja Hölttä <marja@chromium.org>.

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

11 years agoFix bogus arguments length check in StringLocaleCompare.
mstarzinger@chromium.org [Fri, 10 May 2013 13:50:10 +0000 (13:50 +0000)]
Fix bogus arguments length check in StringLocaleCompare.

R=rossberg@chromium.org
TEST=test262/15.5.4.9_3

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

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

11 years agoRevert r14610 because of test-262 failures.
ulan@chromium.org [Fri, 10 May 2013 13:21:24 +0000 (13:21 +0000)]
Revert r14610 because of test-262 failures.

R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/14838012

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

11 years agoMIPS: Fix NaN handling for start and end indexes in ArraySlice.
palfia@homejinni.com [Fri, 10 May 2013 13:04:42 +0000 (13:04 +0000)]
MIPS: Fix NaN handling for start and end indexes in ArraySlice.

Casting NaN to int is unpredictable, on different architectures it produces different int value.

TEST=test262/S15.4.4.10_A2.1_T2, test262/S15.4.4.10_A2.2_T2

BUG=

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

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

11 years agoUpdate Test262 harness to recent version.
mstarzinger@chromium.org [Fri, 10 May 2013 13:00:43 +0000 (13:00 +0000)]
Update Test262 harness to recent version.

R=rossberg@chromium.org
TEST=test262

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

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