platform/upstream/v8.git
10 years ago(Pre)Parser unification: use shorter type names.
marja@chromium.org [Tue, 18 Mar 2014 17:05:38 +0000 (17:05 +0000)]
(Pre)Parser unification: use shorter type names.

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoA64: Use appropriate return types for the simulator fpcr and nzcv members.
alexandre.rames@arm.com [Tue, 18 Mar 2014 16:44:07 +0000 (16:44 +0000)]
A64: Use appropriate return types for the simulator fpcr and nzcv members.

R=ulan@chromium.org

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

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

10 years agoRevert "First attempt at providing default traits for PersistentValueMap."
yangguo@chromium.org [Tue, 18 Mar 2014 16:32:39 +0000 (16:32 +0000)]
Revert "First attempt at providing default traits for PersistentValueMap."

This reverts r20038.

TBR=vogelheim@chromium.org

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

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

10 years agoIncrease pretenure ratio from 60% to 85%
mvstanton@chromium.org [Tue, 18 Mar 2014 15:19:35 +0000 (15:19 +0000)]
Increase pretenure ratio from 60% to 85%

As pretenure-call-new comes online, this is a better performing ratio
overall.

R=hpayer@chromium.org

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

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

10 years agoRemove Promise.cast
rossberg@chromium.org [Tue, 18 Mar 2014 15:03:35 +0000 (15:03 +0000)]
Remove Promise.cast

...as per January meeting. Renames 'cast' to 'resolve'. We rename the prior 'resolve' to 'accept', to keep the chain API usable.

R=svenpanne@chromium.org
BUG=

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

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

10 years agoA64: ElementsKind TODOs
m.m.capewell@googlemail.com [Tue, 18 Mar 2014 15:01:55 +0000 (15:01 +0000)]
A64: ElementsKind TODOs

Replace LoadElementsKind with LoadElementsKindFromMap, remove unneeded TODO in
DoStringCharFromCode, improve constraints for DoCheckValue and improve code for
ElementsKind checking in StoreArrayLiteralElementStub.

BUG=
R=ulan@chromium.org

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

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

10 years agoFirst attempt at providing default traits for PersistentValueMap.
dcarney@chromium.org [Tue, 18 Mar 2014 15:01:12 +0000 (15:01 +0000)]
First attempt at providing default traits for PersistentValueMap.

BUG=
R=dcarney@chromium.org

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

Patch from Daniel Vogelheim <vogelheim@chromium.org>.

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

10 years agoPromises: make null a legal argument for .then
rossberg@chromium.org [Tue, 18 Mar 2014 14:55:43 +0000 (14:55 +0000)]
Promises: make null a legal argument for .then

R=svenpanne@chromium.org
BUG=

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

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

10 years agoA64: Force emission of the veneer pool emission when required.
alexandre.rames@arm.com [Tue, 18 Mar 2014 14:26:26 +0000 (14:26 +0000)]
A64: Force emission of the veneer pool emission when required.

R=ulan@chromium.org

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

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

10 years agoRefactor GetCodeCopyFromTemplate to get a single point where objects are replaced...
ulan@chromium.org [Tue, 18 Mar 2014 14:15:09 +0000 (14:15 +0000)]
Refactor GetCodeCopyFromTemplate to get a single point where objects are replaced in code.

BUG=
R=verwaest@chromium.org

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

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

10 years agoA64: Handle a few TODOs.
alexandre.rames@arm.com [Tue, 18 Mar 2014 14:00:21 +0000 (14:00 +0000)]
A64: Handle a few TODOs.

Below are notes about some of the TODOs handled.

* In Simulator::Debug:
    We haven't had issues with printing in the debugger for a while. If the
    feature turns out to be still lacking an issue can be raised.

* In SubStringStub::Generate:
    There is no need to jump there. The StringCharAtGenerator is asked to set
    the result in x0, and the return sequence following only uses two instructions.
    Also, we would need to jump after the native counter increment instead of the
    return_x0 label.

* In ArrayPushStub::Generate:
    Raised an internal issue to check and update the ARM code.

* In MacroAssembler::CopyBytes:
    The new code should be faster for bulk copies. Raised an internal issue to
    investigate and improve this function.

* In MacroAssembler::EnterExitFrame:
    Unless we actually find something is wrong, this is working and looks ok.
    Also fixed the comments about the FP registers.

* Comment for BumpSystemStackPointer:
    Removed the comment at the declaration site and updated the TODO in the
    implementation.

R=ulan@chromium.org

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

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

10 years agoFix TransitionElementsKindStub to handle non-JSArray objects correctly.
ulan@chromium.org [Tue, 18 Mar 2014 13:29:29 +0000 (13:29 +0000)]
Fix TransitionElementsKindStub to handle non-JSArray objects correctly.

BUG=352982
LOG=N
TEST=mjsunit/regress/regress-352982.js
R=danno@chromium.org

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

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

10 years agoPrepare push to trunk. Now working on version 3.25.17.
machenbach@chromium.org [Tue, 18 Mar 2014 13:02:41 +0000 (13:02 +0000)]
Prepare push to trunk.  Now working on version 3.25.17.

R=yangguo@chromium.org
TBR=yangguo@chromium.org

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

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

10 years agoDeprecate ChangeLog on bleeding_edge.
machenbach@chromium.org [Tue, 18 Mar 2014 12:46:48 +0000 (12:46 +0000)]
Deprecate ChangeLog on bleeding_edge.

- This adds a sentinel to the ChangeLog on bleeding edge.
- Modifying the ChangeLog file directly when pushing to trunk is now no longer possible. If further modifications to the ChangeLog in manual push-to-trunk mode are required (e.g. after the prepare push LGTM), the change log entry temp file must be edited.
- Functionality that is no longer needed is removed.

BUG=
R=jkummerow@chromium.org

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

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

10 years agoHandlify callers of Object::GetElement.
yangguo@chromium.org [Tue, 18 Mar 2014 12:34:02 +0000 (12:34 +0000)]
Handlify callers of Object::GetElement.

R=ishell@chromium.org

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

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

10 years agoFix race between VisitSmiRoots and SetStackLimit.
yangguo@chromium.org [Tue, 18 Mar 2014 12:21:07 +0000 (12:21 +0000)]
Fix race between VisitSmiRoots and SetStackLimit.

R=hpayer@chromium.org

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

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

10 years agoIntroduce representation types
rossberg@chromium.org [Tue, 18 Mar 2014 11:50:18 +0000 (11:50 +0000)]
Introduce representation types

Also:
- improve type pretty-printing,
- update doc comments,
- some renamings for consistency.

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoHandlification of ArrayConstructorCommon().
ishell@chromium.org [Tue, 18 Mar 2014 11:38:27 +0000 (11:38 +0000)]
Handlification of ArrayConstructorCommon().

R=yangguo@chromium.org

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

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

10 years agoAdd support for movw/movt immediate loads to BackEdgeTable on ARM to enable ool const...
rmcilroy@chromium.org [Tue, 18 Mar 2014 11:36:19 +0000 (11:36 +0000)]
Add support for movw/movt immediate loads to BackEdgeTable on ARM to enable ool constant pool.

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

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

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

10 years agoApply numeric casts correctly in typed arrays and related code.
dslomov@chromium.org [Tue, 18 Mar 2014 10:55:29 +0000 (10:55 +0000)]
Apply numeric casts correctly in typed arrays and related code.

R=jkummerow@chromium.org
BUG=353004
LOG=Y

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

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

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

10 years agoRevert "Apply numeric casts correctly in typed arrays and related code."
dslomov@chromium.org [Tue, 18 Mar 2014 10:50:00 +0000 (10:50 +0000)]
Revert "Apply numeric casts correctly in typed arrays and related code."

This reverts commit r20020 for breaking Win64 build.

TBR=jkummerow@chromium.org

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

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

10 years agoApply numeric casts correctly in typed arrays and related code.
dslomov@chromium.org [Tue, 18 Mar 2014 10:23:50 +0000 (10:23 +0000)]
Apply numeric casts correctly in typed arrays and related code.

R=jkummerow@chromium.org
BUG=353004
LOG=Y

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

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

10 years agoStage ES6 promises and weak collections
rossberg@chromium.org [Tue, 18 Mar 2014 09:57:14 +0000 (09:57 +0000)]
Stage ES6 promises and weak collections

Split collections flag into weak and non-weak.

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoRobustified address calculations on A64.
svenpanne@chromium.org [Tue, 18 Mar 2014 07:13:55 +0000 (07:13 +0000)]
Robustified address calculations on A64.

We no longer rely on the (adventurous) assumption that the class
Instruction is empty, implying sizeof(Instruction) == 1. This will
greatly simplify upcoming refactorings.

R=rodolph.perfetta@gmail.com

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

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

10 years agoPrepare push to trunk. Now working on version 3.25.16.
machenbach@chromium.org [Tue, 18 Mar 2014 01:04:55 +0000 (01:04 +0000)]
Prepare push to trunk.  Now working on version 3.25.16.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

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

10 years agoMIPS: Utility functions for pretenure call new.
plind44@gmail.com [Mon, 17 Mar 2014 18:27:44 +0000 (18:27 +0000)]
MIPS: Utility functions for pretenure call new.

Port r19998 (6b07a42)

Original commit message:
These functions aren't yet called in the tree but will be in the next days. AssertUndefinedOrAllocationSite is to be used in several places where AllocationSite feedback is optional.

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoMIPS: Fixed spec violation of storing to length of a frozen object.
plind44@gmail.com [Mon, 17 Mar 2014 18:16:19 +0000 (18:16 +0000)]
MIPS: Fixed spec violation of storing to length of a frozen object.

Port r20005 (d647ec2)

BUG=chromium:350890
LOG=N
R=ishell@chromium.org

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoUpdate constant pool correctly when resuming a generator
rmcilroy@chromium.org [Mon, 17 Mar 2014 17:29:03 +0000 (17:29 +0000)]
Update constant pool correctly when resuming a generator

This CL depends on the following CLs landing first:
  https://codereview.chromium.org/188063002/
  https://codereview.chromium.org/190793002/

R=ulan@chromium.org

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

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

10 years agoDon't generate keyed store ICs for global proxies.
verwaest@chromium.org [Mon, 17 Mar 2014 17:19:39 +0000 (17:19 +0000)]
Don't generate keyed store ICs for global proxies.

BUG=352983
LOG=y
R=ishell@chromium.org

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

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

10 years agoA64: Introduce a DeoptimizeIfMinusZero() helper.
alexandre.rames@arm.com [Mon, 17 Mar 2014 17:18:31 +0000 (17:18 +0000)]
A64: Introduce a DeoptimizeIfMinusZero() helper.

R=ulan@chromium.org

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

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

10 years agoFix mjsunit/compiler/concurrent-invalidate-transition-map.js test.
ulan@chromium.org [Mon, 17 Mar 2014 17:00:48 +0000 (17:00 +0000)]
Fix mjsunit/compiler/concurrent-invalidate-transition-map.js test.

BUG=v8:3156
LOG=N
R=yangguo@chromium.org

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

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

10 years agoFollow up to r20003.
marja@chromium.org [Mon, 17 Mar 2014 16:04:47 +0000 (16:04 +0000)]
Follow up to r20003.

(Fixing comments in tests.)

R=rossberg@chromium.org
BUG=

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

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

10 years agoFix date cache in strict mode.
ulan@chromium.org [Mon, 17 Mar 2014 15:47:58 +0000 (15:47 +0000)]
Fix date cache in strict mode.

BUG=v8:3220
LOG=N
TEST=mjsunit/regress/regress-3220.js
R=rossberg@chromium.org

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

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

10 years agoFixed spec violation of storing to length of a frozen object.
ishell@chromium.org [Mon, 17 Mar 2014 15:43:33 +0000 (15:43 +0000)]
Fixed spec violation of storing to length of a frozen object.

BUG=chromium:350890
LOG=N
R=verwaest@chromium.org

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

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

10 years agoMIPS: Make invalid LHSs a parse-time (reference) error
plind44@gmail.com [Mon, 17 Mar 2014 15:11:04 +0000 (15:11 +0000)]
MIPS: Make invalid LHSs a parse-time (reference) error

Port r19976 (73bbd7a)

Original commit message:
This is required by the spec. It also prevents crashes resulting from the attempt to read type feedback for the RHS of an invalid assignment which full codegen never actually allocated info for.

To do: check properly in preparser already.

BUG=351658
LOG=Y
R=rossberg@chromium.org

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoAdd tests which ensure that the data produced by the preparser is really used.
marja@chromium.org [Mon, 17 Mar 2014 15:06:33 +0000 (15:06 +0000)]
Add tests which ensure that the data produced by the preparser is really used.

R=rossberg@chromium.org
BUG=

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

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

10 years agoHandlification of ArrayConstructorCommon().
ishell@chromium.org [Mon, 17 Mar 2014 15:01:45 +0000 (15:01 +0000)]
Handlification of ArrayConstructorCommon().

R=yangguo@chromium.org

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

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

10 years agoFix ASSERT violation when BinaryOpIC::Transition recurses into itself
jkummerow@chromium.org [Mon, 17 Mar 2014 14:51:31 +0000 (14:51 +0000)]
Fix ASSERT violation when BinaryOpIC::Transition recurses into itself

BUG=chromium:352586
LOG=n
R=verwaest@chromium.org

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

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

10 years agoUtility functions for pretenure call new. These functions aren't yet called in the...
mvstanton@chromium.org [Mon, 17 Mar 2014 13:55:22 +0000 (13:55 +0000)]
Utility functions for pretenure call new. These functions aren't yet called in the tree but will be in the next days. AssertUndefinedOrAllocationSite is to be used in several places where AllocationSite feedback is optional.

R=hpayer@chromium.org

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

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

10 years agoMove ParseBinaryExpression to ParserBase.
marja@chromium.org [Mon, 17 Mar 2014 13:54:42 +0000 (13:54 +0000)]
Move ParseBinaryExpression to ParserBase.

R=mstarzinger@chromium.org
BUG=v8:3126
LOG=N

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

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

10 years agoFix branch for resetting change log in push-to-trunk.
machenbach@chromium.org [Mon, 17 Mar 2014 13:52:33 +0000 (13:52 +0000)]
Fix branch for resetting change log in push-to-trunk.

The patch is applied to ChangeLog with the "--index" option, which already updates the index of the file. For resetting the ChangeLog to the trunk revision, the trunk branch needs to be stated explicitly in the checkout, otherwise it checks out the already patched HEAD.

TEST=tools/push-to-trunk/script_test.py
R=jkummerow@chromium.org

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

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

10 years agoPretenure code generation corner case with new space COW arrays.
mvstanton@chromium.org [Mon, 17 Mar 2014 13:42:37 +0000 (13:42 +0000)]
Pretenure code generation corner case with new space COW arrays.

When advised to pretenure in crankshaft, and the boilerplate is a cow
array, move the elements to old space if it's not already there to avoid
overflowing the store buffer.

R=hpayer@chromium.org

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

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

10 years agoMove ParseConditionalExpression to ParserBase.
marja@chromium.org [Mon, 17 Mar 2014 13:36:39 +0000 (13:36 +0000)]
Move ParseConditionalExpression to ParserBase.

R=mstarzinger@chromium.org
BUG=v8:3126
LOG=N

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

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

10 years agoExpose DumpBacktrace for debugging purposes.
marja@chromium.org [Mon, 17 Mar 2014 13:33:19 +0000 (13:33 +0000)]
Expose DumpBacktrace for debugging purposes.

After this change, you can just call DumpBacktrace in any function. Previously
the only function printing stack traces was V8_Fatal, but that also terminated
the program, so not very useful for debugging.

Note that DumpBacktrace is roughly equivalent to base::debug::StackTrace
functionality in Chromium, except less fancy, but it's enough for us.

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoBetter handling of constant-pool-like parts of the instruction stream.
svenpanne@chromium.org [Mon, 17 Mar 2014 13:32:39 +0000 (13:32 +0000)]
Better handling of constant-pool-like parts of the instruction stream.

This avoids e.g. trying to disassemble those parts, which could result
in failed assertions.

R=ulan@chromium.org

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

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

10 years agoDelete socket connection after debugger input loop ends.
yangguo@chromium.org [Mon, 17 Mar 2014 13:32:02 +0000 (13:32 +0000)]
Delete socket connection after debugger input loop ends.

R=svenpanne@chromium.org
BUG=v8:3193
LOG=N

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

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

10 years agoFix more WebKit test expectations
rossberg@chromium.org [Mon, 17 Mar 2014 13:06:47 +0000 (13:06 +0000)]
Fix more WebKit test expectations

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoFix Windows compile problem.
hpayer@chromium.org [Mon, 17 Mar 2014 12:17:13 +0000 (12:17 +0000)]
Fix Windows compile problem.

BUG=
R=yangguo@chromium.org

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

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

10 years agoFix WebKit and Mozilla test expectations
rossberg@chromium.org [Mon, 17 Mar 2014 12:00:40 +0000 (12:00 +0000)]
Fix WebKit and Mozilla test expectations

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoMake sure allocated objects in PrologueCallbackAlloc and EpilogueCallbackAlloc API...
hpayer@chromium.org [Mon, 17 Mar 2014 10:52:33 +0000 (10:52 +0000)]
Make sure allocated objects in PrologueCallbackAlloc and EpilogueCallbackAlloc API test are used.

BUG=
R=mvstanton@chromium.org

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

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

10 years agoheap: allow allocation in gc prologue/epilogue
hpayer@chromium.org [Mon, 17 Mar 2014 10:38:45 +0000 (10:38 +0000)]
heap: allow allocation in gc prologue/epilogue

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

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

Patch from Fedor Indutny <fedor.indutny@gmail.com>.

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

10 years agoFix C++ compilation issue
rossberg@chromium.org [Mon, 17 Mar 2014 10:28:53 +0000 (10:28 +0000)]
Fix C++ compilation issue

TBR=marja@chromium.org
BUG=

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

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

10 years agoMake invalid LHSs a parse-time (reference) error
rossberg@chromium.org [Mon, 17 Mar 2014 10:21:01 +0000 (10:21 +0000)]
Make invalid LHSs a parse-time (reference) error

This is required by the spec. It also prevents crashes resulting from the attempt to read type feedback for the RHS of an invalid assignment which full codegen never actually allocated info for.

To do: check properly in preparser already.

R=marja@chromium.org, mstarzinger@chromium.org
BUG=351658
LOG=Y

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

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

10 years agoAdd Promises/A+ Compliance Test Suite.
rossberg@chromium.org [Mon, 17 Mar 2014 10:03:01 +0000 (10:03 +0000)]
Add Promises/A+ Compliance Test Suite.

This CL introduces Promises/A+ tests[1].
This CL doesn't contain the test itself: it will be downloaded by test cfg.py.
This CL includes some helper JS functions to run the test in d8 shell.

[1]: https://github.com/promises-aplus/promises-tests

BUG=347095
LOG=Y
R=rossberg@chromium.org

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

Patch from Yutaka Hirano <yhirano@chromium.org>.

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

10 years agoSplit Promise API into Promise/Resolver
rossberg@chromium.org [Mon, 17 Mar 2014 09:57:25 +0000 (09:57 +0000)]
Split Promise API into Promise/Resolver

R=svenpanne@chromium.org
BUG=
LOG=Y

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

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

10 years agoFix typo in r19923 (bounds check offset propagation)
jkummerow@chromium.org [Mon, 17 Mar 2014 09:38:01 +0000 (09:38 +0000)]
Fix typo in r19923 (bounds check offset propagation)

BUG=chromium:352929
LOG=n
R=ulan@chromium.org

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

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

10 years agoPrepare push to trunk. Now working on version 3.25.15.
machenbach@chromium.org [Mon, 17 Mar 2014 09:27:45 +0000 (09:27 +0000)]
Prepare push to trunk.  Now working on version 3.25.15.

R=yangguo@chromium.org
TBR=yangguo@chromium.org

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

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

10 years agoCheck elimination now sets known successor branch of HCompareObjectEqAndBranch (corre...
ishell@chromium.org [Mon, 17 Mar 2014 09:11:38 +0000 (09:11 +0000)]
Check elimination now sets known successor branch of HCompareObjectEqAndBranch (correctness fix).

BUG=chromium:352058
LOG=N
R=bmeurer@chromium.org

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

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

10 years agoFix maintaining change log in push-to-trunk.
machenbach@chromium.org [Mon, 17 Mar 2014 08:51:27 +0000 (08:51 +0000)]
Fix maintaining change log in push-to-trunk.

Applying the patch on ChangeLog causes local changes. To reset the ChangeLog to its original state, the "-f" option is required.

TBR=jarin@chromium.org

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

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

10 years agoRevert "Continued fix for 351257. Reusing the feedback vector is too complex."
mvstanton@chromium.org [Mon, 17 Mar 2014 08:31:21 +0000 (08:31 +0000)]
Revert "Continued fix for 351257. Reusing the feedback vector is too complex."

This reverts commit r19919.

TBR=bmeuer@chromium.org

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

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

10 years agoSuppress test failures on GC-stress for A64.
yangguo@chromium.org [Mon, 17 Mar 2014 08:30:04 +0000 (08:30 +0000)]
Suppress test failures on GC-stress for A64.

R=ulan@chromium.org
BUG=v8:3219
LOG=N

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

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

10 years agoPrepare push to trunk. Now working on version 3.25.14.
machenbach@chromium.org [Mon, 17 Mar 2014 08:13:17 +0000 (08:13 +0000)]
Prepare push to trunk.  Now working on version 3.25.14.

R=yangguo@chromium.org
TBR=yangguo@chromium.org

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

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

10 years agoFix compile error after r19955
yurys@chromium.org [Mon, 17 Mar 2014 07:09:49 +0000 (07:09 +0000)]
Fix compile error after r19955

BUG=None
TBR=svenpanne@chromium.org
LOG=N

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

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

10 years agoMove profiler callback interfaces from v8.h to v8-profiler.h
yurys@chromium.org [Mon, 17 Mar 2014 07:02:39 +0000 (07:02 +0000)]
Move profiler callback interfaces from v8.h to v8-profiler.h

OutputStream and ActivityControl are used only by heap profiler so I moved their definition in v8-profiler.h to not clutter v8.h

Drive-by: removed OutputStream::GetOutputEncoding which is unused.
BUG=None
LOG=Y
R=alph@chromium.org, svenpanne@chromium.org

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

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

10 years agoCleanup: Remove unused 'non_object_property_call' message.
jarin@chromium.org [Sat, 15 Mar 2014 20:37:13 +0000 (20:37 +0000)]
Cleanup: Remove unused 'non_object_property_call' message.

R=jarin@chromium.org

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

Patch from Mike West <mkwst@chromium.org>.

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

10 years agoReland "Maintain change log file directly on trunk branch in push-to-trunk."
machenbach@chromium.org [Sat, 15 Mar 2014 13:06:08 +0000 (13:06 +0000)]
Reland "Maintain change log file directly on trunk branch in push-to-trunk."

This uses the following approach to modify the trunk change log:
- Calculate the new change log entries
- Apply changes to the bleeding edge change log (this will be removed in a follow up CL)
- Apply the diff between BE and trunk to trunk (this includes the diff of the change log)
- Reset the change log to the version on trunk
- Reapply the new change log entries

R=jarin@chromium.org

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

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

10 years agoMIPS: Fix Lithium div, mod and floor.
plind44@gmail.com [Fri, 14 Mar 2014 19:03:10 +0000 (19:03 +0000)]
MIPS: Fix Lithium div, mod and floor.

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoMIPS: Fix deoptimization for out-of-line constant pool.
plind44@gmail.com [Fri, 14 Mar 2014 18:26:31 +0000 (18:26 +0000)]
MIPS: Fix deoptimization for out-of-line constant pool.

Port r19940 (db96c25)

Original commit message:
Ensure that the stack contains the correct constant pool pointer when a
function deopts.

This CL depends on https://codereview.chromium.org/183803022/ landing first.

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoA64: fix restoring of registers in deopt_every_n_times.
ulan@chromium.org [Fri, 14 Mar 2014 18:11:27 +0000 (18:11 +0000)]
A64: fix restoring of registers in deopt_every_n_times.

BUG=352656
LOG=N
R=jochen@chromium.org

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

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

10 years agoPrepare push to trunk. Now working on version 3.25.13.
dslomov@chromium.org [Fri, 14 Mar 2014 16:14:35 +0000 (16:14 +0000)]
Prepare push to trunk.  Now working on version 3.25.13.

R=machenbach@chromium.org
TBR=machenbach@chromium.org

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

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

10 years agoFix a race in initialization of timezone cache in platform-win32.
ulan@chromium.org [Fri, 14 Mar 2014 15:19:54 +0000 (15:19 +0000)]
Fix a race in initialization of timezone cache in platform-win32.

This allocates a timezone cache per isolate.

BUG=
R=jochen@chromium.org

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

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

10 years agoA64: Improve the code sequence generated for deoptimization exits.
alexandre.rames@arm.com [Fri, 14 Mar 2014 15:17:34 +0000 (15:17 +0000)]
A64: Improve the code sequence generated for deoptimization exits.

R=ulan@chromium.org

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

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

10 years agoA64: Fixes for the veneers emission.
alexandre.rames@arm.com [Fri, 14 Mar 2014 15:14:42 +0000 (15:14 +0000)]
A64: Fixes for the veneers emission.

This patch includes 3 fixes for veneers emission.

1) Block veneer pools emission in the PatchingAssembler.
2) Fix the check for veneer pool emission just before a constant pool.
3) Forbid copy of labels. The list of JumpTableEntry used to track the
   deoptimization table entries would make copies of the labels when growing.
   Doing so, it would confuse the Assembler that was tracking the labels via
   pointers.

R=ulan@chromium.org

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

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

10 years agoFix deoptimization for out-of-line constant pool.
rmcilroy@chromium.org [Fri, 14 Mar 2014 15:11:58 +0000 (15:11 +0000)]
Fix deoptimization for out-of-line constant pool.

Ensure that the stack contains the correct constant pool pointer when a
function deopts.

This CL depends on https://codereview.chromium.org/183803022/ landing first.

R=ulan@chromium.org

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

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

10 years agoDisable cctest test-lockers/MultithreadedParallelIsolates.
dslomov@chromium.org [Fri, 14 Mar 2014 15:11:03 +0000 (15:11 +0000)]
Disable cctest test-lockers/MultithreadedParallelIsolates.

Had to disable always instead of in 'nosnap' mode.

TBR=machenbach@chromium.org
BUG=v8:3215
LOG=N

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

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

10 years agoExpose FrameDetails and ScopeDetails from its Mirrors.
yurys@chromium.org [Fri, 14 Mar 2014 15:10:01 +0000 (15:10 +0000)]
Expose FrameDetails and ScopeDetails from its Mirrors.

We in fact already access these via the private property "details_".
Make it into the API.

R=ulan@chromium.org, yurys@chromium.org, ulan, yangguo, yurys

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

Patch from Andrey Adaykin <aandrey@chromium.org>.

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

10 years agoClean up some isolate macros.
yangguo@chromium.org [Fri, 14 Mar 2014 15:06:17 +0000 (15:06 +0000)]
Clean up some isolate macros.

R=ishell@chromium.org

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

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

10 years agoMove PersitentValueMap into seperate header, to avoid excessive polution
dcarney@chromium.org [Fri, 14 Mar 2014 14:57:04 +0000 (14:57 +0000)]
Move PersitentValueMap into seperate header, to avoid excessive polution
of v8.h.

R=dcarney@chromium.org
BUG=

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

Patch from Daniel Vogelheim <vogelheim@chromium.org>.

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

10 years agoFix generalization with callbacks.
verwaest@chromium.org [Fri, 14 Mar 2014 14:17:49 +0000 (14:17 +0000)]
Fix generalization with callbacks.

BUG=352588
LOG=n
R=danno@chromium.org

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

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

10 years agoRemove unused irregexp cache.
yangguo@chromium.org [Fri, 14 Mar 2014 13:22:14 +0000 (13:22 +0000)]
Remove unused irregexp cache.

R=svenpanne@chromium.org

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

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

10 years agoMake thread_creation_mutex a Thread::PlatformData member.
hpayer@chromium.org [Fri, 14 Mar 2014 12:46:30 +0000 (12:46 +0000)]
Make thread_creation_mutex a Thread::PlatformData member.

BUG=
R=svenpanne@chromium.org

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

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

10 years agoRevert "Really skip dead blocks in GVN"
bmeurer@chromium.org [Fri, 14 Mar 2014 12:05:01 +0000 (12:05 +0000)]
Revert "Really skip dead blocks in GVN"

This reverts commit r19779 for breaking the GVN algorithm.

BUG=352149
LOG=y
R=hpayer@chromium.org

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

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

10 years agoMore precise result types for contructor calls
rossberg@chromium.org [Fri, 14 Mar 2014 11:40:03 +0000 (11:40 +0000)]
More precise result types for contructor calls

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoSynchronize thread creation on posix platforms.
hpayer@chromium.org [Fri, 14 Mar 2014 10:51:16 +0000 (10:51 +0000)]
Synchronize thread creation on posix platforms.

BUG=
R=jarin@chromium.org

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

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

10 years agoSpeed up A64 simulator by removing useless memcpy.
svenpanne@chromium.org [Fri, 14 Mar 2014 10:36:13 +0000 (10:36 +0000)]
Speed up A64 simulator by removing useless memcpy.

The addresses involved should always be aligned, so we can simply use
a cast, just like the ARM simulator. Even if the alignment assumption
did not hold and the platform we are running on couldn't handle
unaligned access, some #ifdefs would be much more preferable. The
affected member functions were the top 2 in a profile (18% and 15%),
so basically every hack is allowed here to speed things up. :-)

Removed some dead code for literals on the way. If we need to
resurrect it, we should do it without double(!) memcpys.

Generally, I still don't understand why we need the Instr/Instruction
distinction or simply wrap Instr within Instruction, this seems to
be much simpler and cleaner, but this would involve heavier changes.

The overall speedup of this CL is roughly 37%, see the numbers below
for a reduced Octane suite and the check targets:

------------------------------------------------------------
With memcpy:
------------------------------------------------------------

make -j32 a64.release.quickcheck => 03:29
make -j32 a64.release.check      => 11:30
Reduced Octane suite             => 05:16
Richards: 35.1
DeltaBlue: 64.1
RayTrace: 130
Splay: 66.1
SplayLatency: 619
NavierStokes: 58.7
PdfJS: 89.6
Mandreel: 58.5
MandreelLatency: 242
CodeLoad: 5103
Box2D: 124
----
Score (version 9): 144

------------------------------------------------------------
With casts:
------------------------------------------------------------
make -j32 a64.release.quickcheck => 02:14
make -j32 a64.release.check      => 07:21
Reduced Octane suite             => 03:21
Richards: 53.3
DeltaBlue: 103
RayTrace: 205
Splay: 95.9
SplayLatency: 859
NavierStokes: 103
PdfJS: 136
Mandreel: 94.8
MandreelLatency: 386
CodeLoad: 6493
Box2D: 179
----
Score (version 9): 219

R=ulan@chromium.org

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

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

10 years agoPromiseCoerce should deal with an error during accessing "then".
rossberg@chromium.org [Fri, 14 Mar 2014 10:35:01 +0000 (10:35 +0000)]
PromiseCoerce should deal with an error during accessing "then".

PromiseCource(x) should return a rejected promise when accessing x.then
leads to an error.

BUG=347095
LOG=Y
R=rossberg@chromium.org

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

Patch from Yutaka Hirano <yhirano@chromium.org>.

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

10 years agoA64: Fix a few simulation inaccuracies.
jacob.bramley@arm.com [Fri, 14 Mar 2014 10:23:55 +0000 (10:23 +0000)]
A64: Fix a few simulation inaccuracies.

  - Return the correct NaN when an invalid operation generates a NaN.
  - When one or more operands are NaN, handle them as the processor
    would, prioritising signalling NaNs and making them quiet.
  - Fix fmadd and related instructions:
     - Fnmadd is fma(-n, m, -a), not -fma(n, m, a).
     - Some common libc implementations incorrectly implement fma for
       zero results, so work around these cases.
  - Replace some unreliable tests.

This patch also adds support for Default-NaN mode, since once all the
other work was done, it only required a couple of lines of code.
Default-NaN mode was used for an optimisation in ARM, and it should now
be possible to apply the same optimisation to A64.

BUG=
R=jochen@chromium.org

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

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

10 years agoFix for issue 351261.
mvstanton@chromium.org [Fri, 14 Mar 2014 10:22:55 +0000 (10:22 +0000)]
Fix for issue 351261.

This relands the following fix: "HAllocate should never generate
allocation code if the requested size does not fit into page. Regression
test included. (bug 347543)" along with additional fixes to KeyedStoreIC.

BUG=351261
LOG=N
R=verwaest@chromium.org

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

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

10 years agoNew Compilation API, part 1, try 2
marja@chromium.org [Fri, 14 Mar 2014 10:20:33 +0000 (10:20 +0000)]
New Compilation API, part 1, try 2

- Distinguish between context bound scripts (Script) and context unbound scripts
(UnboundScript).
- Add ScriptCompiler (which will later contain functions for async compilation).

This is a breaking change, in particular, Script::New no longer exists (it is
replaced by ScriptCompiler::CompileUnbound). Script::Compile remains as a
backwards-compatible shorthand for ScriptCompiler::Compile.

Passing CompilerOptions with produce_data_to_cache = true doesn't do anything
yet; the only way to generate the data to cache is the old preparsing API. (To
be fixed in the next version.)

This is a fixed version of https://codereview.chromium.org/186723005/

BUG=
R=dcarney@chromium.org

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

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

10 years agoFixed modulo by a power of 2 on A64.
svenpanne@chromium.org [Fri, 14 Mar 2014 10:18:57 +0000 (10:18 +0000)]
Fixed modulo by a power of 2 on A64.

Actually setting flags before checking them might be a good idea... :-/

R=bmeurer@chromium.org

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

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

10 years agoPropagate updated offsets in BoundsCheckBbData.
ulan@chromium.org [Fri, 14 Mar 2014 10:02:25 +0000 (10:02 +0000)]
Propagate updated offsets in BoundsCheckBbData.

BUG=350863
LOG=Y
TEST=mjsunit/regress/regress-350863.js
R=bmeurer@chromium.org, jkummerow@chromium.org

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

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

10 years agoAdd regression test for range analysis bug.
bmeurer@chromium.org [Fri, 14 Mar 2014 09:54:26 +0000 (09:54 +0000)]
Add regression test for range analysis bug.

BUG=v8:3204
LOG=y
R=svenpanne@chromium.org

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

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

10 years agoMove ParseYieldExpression to ParserBase.
marja@chromium.org [Fri, 14 Mar 2014 09:51:22 +0000 (09:51 +0000)]
Move ParseYieldExpression to ParserBase.

R=mstarzinger@chromium.org
BUG=v8:3126
LOG=N

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

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

10 years agoMove ParseAssignmentExpression to ParserBase.
marja@chromium.org [Fri, 14 Mar 2014 09:43:04 +0000 (09:43 +0000)]
Move ParseAssignmentExpression to ParserBase.

R=mstarzinger@chromium.org, mstarzinger
BUG=v8:3126
LOG=N

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

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

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

10 years agoContinued fix for 351257. Reusing the feedback vector is too complex.
mvstanton@chromium.org [Fri, 14 Mar 2014 09:28:37 +0000 (09:28 +0000)]
Continued fix for 351257. Reusing the feedback vector is too complex.

Attempting to re-use the type feedback vector stored in the
SharedFunctionInfo turns out to be difficult among the various cases.
It will be much easier to do this when deferred type feedback processing
is removed, as is in the works.

Created bug v8:3212 to track re-introducing the optimization of reusing
the type vector on recompile before optimization.

The CL also brings back the type vector on the SharedFunctionInfo.

BUG=351257
LOG=Y
R=bmeurer@chromium.org, bmeuer@chromium.org

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

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

10 years agoStopCpuProfiling should return non-const CpuProfile
yurys@chromium.org [Fri, 14 Mar 2014 09:26:31 +0000 (09:26 +0000)]
StopCpuProfiling should return non-const CpuProfile

StopCpuProfiling is replaced with StopProfiling which returns non-const CpuProfile which allows to call CpuProfile::Delete on it without const_cast. Also replaced StartCpuProfiling with StartProfiling to have symmetric names for start/stop actions.

BUG=v8:3213
LOG=Y
R=alph@chromium.org, svenpanne@chromium.org

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

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

10 years agoAllow for compiling with xcode 5.1 (which doesn't have gcc anymore)
jochen@chromium.org [Fri, 14 Mar 2014 07:47:08 +0000 (07:47 +0000)]
Allow for compiling with xcode 5.1 (which doesn't have gcc anymore)

BUG=none
R=jkummerow@chromium.org, machenbach@chromium.org
LOG=y

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

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

10 years agoPrepare push to trunk. Now working on version 3.25.12.
machenbach@chromium.org [Fri, 14 Mar 2014 03:04:37 +0000 (03:04 +0000)]
Prepare push to trunk.  Now working on version 3.25.12.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

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

10 years agoPrepare push to trunk. Now working on version 3.25.11.
machenbach@chromium.org [Fri, 14 Mar 2014 01:04:45 +0000 (01:04 +0000)]
Prepare push to trunk.  Now working on version 3.25.11.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

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

10 years agoMIPS: Turn StringLengthStub (used by string wrappers only) into a hydrogen stub.
plind44@gmail.com [Thu, 13 Mar 2014 18:08:36 +0000 (18:08 +0000)]
MIPS: Turn StringLengthStub (used by string wrappers only) into a hydrogen stub.

Port r19889 (8fa27bb)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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