platform/upstream/v8.git
10 years agoMIPS: Cleanup some of the range uses in ModI/DivI.
plind44@gmail.com [Tue, 11 Mar 2014 19:04:14 +0000 (19:04 +0000)]
MIPS: Cleanup some of the range uses in ModI/DivI.

Port r19796 (2b8ff32)

BUG=v8:3204
LOG=y
R=plind44@gmail.com

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

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

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

10 years agoRevert "Reland "Enable Object.observe by default""
dslomov@chromium.org [Tue, 11 Mar 2014 18:36:15 +0000 (18:36 +0000)]
Revert "Reland "Enable Object.observe by default""

This reverts commit r19736 for breaking browser_tests on ChromiumOS.

TBR=rossberg@chromium.org,rafaelw@chromium.org

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

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

10 years agoRevert "Enable Object.observe by default"
dslomov@chromium.org [Tue, 11 Mar 2014 18:15:44 +0000 (18:15 +0000)]
Revert "Enable Object.observe by default"

This reverts commit r19734 for breeaking ChromiumOS browser tests.
'OpenSpecialTypes/FileManagerBrowserTest.Test/3' started to time out,
bisecting the roll led to this change.
http://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%282%29/builds/22224

TBR=rafaelw@chromium.org,rossberg@chromium.org
BUG=v8:2409
LOG=Y

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

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

10 years agoA64: Tidy up a few TODOs.
baptiste.afsa@arm.com [Tue, 11 Mar 2014 17:31:40 +0000 (17:31 +0000)]
A64: Tidy up a few TODOs.

R=ulan@chromium.org

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

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

10 years agoA64: UseRegisterAtStart for rhs of LMulS
m.m.capewell@googlemail.com [Tue, 11 Mar 2014 17:12:34 +0000 (17:12 +0000)]
A64: UseRegisterAtStart for rhs of LMulS

BUG=
R=ulan@chromium.org

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

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

10 years agoFix issue with getOwnPropertySymbols and hidden properties
rossberg@chromium.org [Tue, 11 Mar 2014 16:46:35 +0000 (16:46 +0000)]
Fix issue with getOwnPropertySymbols and hidden properties

When getting the symbols of an object we need to ignore the hidden
properties of the prototype object since the hidden properties are
represented by a single string key and we will not include that hidden
string in the found names.

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

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

Patch from Erik Arvidsson <arv@chromium.org>.

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

10 years agoMove ParseArguments to ParserBase and add tests.
marja@chromium.org [Tue, 11 Mar 2014 16:30:47 +0000 (16:30 +0000)]
Move ParseArguments to ParserBase and add tests.

Notes:
- PreParser didn't produce "too_many_arguments"; now it does.
- The argument count in the error message was wrong; fixed it.

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

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

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

10 years agoAPI support for promises
rossberg@chromium.org [Tue, 11 Mar 2014 16:17:20 +0000 (16:17 +0000)]
API support for promises

R=svenpanne@chromium.org
BUG=

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

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

10 years agoFix kraken/oscillator performance regression after r19635.
ulan@chromium.org [Tue, 11 Mar 2014 15:50:41 +0000 (15:50 +0000)]
Fix kraken/oscillator performance regression after r19635.

Evict previously optimized code after new optimization.

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

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

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

10 years agoA64: Tidy up a couple of TODOs.
baptiste.afsa@arm.com [Tue, 11 Mar 2014 15:50:01 +0000 (15:50 +0000)]
A64: Tidy up a couple of TODOs.

R=ulan@chromium.org

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

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

10 years agoInvalidate OS-specific datetime cache on configuration change notification
ulan@chromium.org [Tue, 11 Mar 2014 15:46:56 +0000 (15:46 +0000)]
Invalidate OS-specific datetime cache on configuration change notification

When V8 is informed that the system's date time configuration has changed,
it should also drop its OS-specific caches of time zone information

R=ulan@chromium.org

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

Patch from James Robinson <jamesr@chromium.org>.

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

10 years agoA64: Improve constraints for StoreNamedField
m.m.capewell@googlemail.com [Tue, 11 Mar 2014 15:46:31 +0000 (15:46 +0000)]
A64: Improve constraints for StoreNamedField

Improve register constraints for cases that don't need write barriers, and
remove TODOs.

BUG=
R=ulan@chromium.org

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

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

10 years agoA64: Debug code should assert on unexpected situation.
baptiste.afsa@arm.com [Tue, 11 Mar 2014 15:41:27 +0000 (15:41 +0000)]
A64: Debug code should assert on unexpected situation.

R=jochen@chromium.org
BUG=

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

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

10 years agoMove ParseObjectLiteral to ParserBase.
marja@chromium.org [Tue, 11 Mar 2014 15:40:41 +0000 (15:40 +0000)]
Move ParseObjectLiteral to ParserBase.

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

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

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

10 years agofix bad access check check
dcarney@chromium.org [Tue, 11 Mar 2014 15:12:47 +0000 (15:12 +0000)]
fix bad access check check

R=verwaest@chromium.org

BUG=

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

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

10 years agoA64: Add and use a double register which holds the 0.0 value.
baptiste.afsa@arm.com [Tue, 11 Mar 2014 15:03:36 +0000 (15:03 +0000)]
A64: Add and use a double register which holds the 0.0 value.

This patch also modify the crankshaft allocatable double registers because
we need this register to be callee saved to be efficient.

R=jochen@chromium.org

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

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

10 years agoRevert "Enable concurrent sweeping."
dslomov@chromium.org [Tue, 11 Mar 2014 14:59:19 +0000 (14:59 +0000)]
Revert "Enable concurrent sweeping."

This reverts commit r19792 for breaking ARM tests.

TBR=hpayer@chromium.org

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

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

10 years agoWork around Windows name clobbering
rossberg@chromium.org [Tue, 11 Mar 2014 14:56:42 +0000 (14:56 +0000)]
Work around Windows name clobbering

TBR=dslomov@chromium.org
BUG=

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

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

10 years agoEliminate extended mode, and other modes clean-up
rossberg@chromium.org [Tue, 11 Mar 2014 14:41:22 +0000 (14:41 +0000)]
Eliminate extended mode, and other modes clean-up

- Merge LanguageMode and StrictModeFlag enums
- Make harmony-scoping depend only on strict mode
- Free some bits on the way
- Plus additional clean-up and renaming

R=ulan@chromium.org
BUG=

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

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

10 years agoMode clean-up pt 1: rename classic/non-strict mode to sloppy mode
rossberg@chromium.org [Tue, 11 Mar 2014 14:39:08 +0000 (14:39 +0000)]
Mode clean-up pt 1: rename classic/non-strict mode to sloppy mode

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoFix bug in constant folding object comparisons.
yangguo@chromium.org [Tue, 11 Mar 2014 13:34:01 +0000 (13:34 +0000)]
Fix bug in constant folding object comparisons.

R=jkummerow@chromium.org

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

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

10 years agoCleanup some of the range uses in ModI/DivI.
bmeurer@chromium.org [Tue, 11 Mar 2014 11:57:27 +0000 (11:57 +0000)]
Cleanup some of the range uses in ModI/DivI.

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

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

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

10 years agoUpdated constants.
svenpanne@chromium.org [Tue, 11 Mar 2014 11:56:04 +0000 (11:56 +0000)]
Updated constants.

No idea when they got out-of-sync...

TBR=jkummerow@chromium.org

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

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

10 years agoDo not run AddInstructionChangesNewSpacePromotion test in release mode.
hpayer@chromium.org [Tue, 11 Mar 2014 11:53:40 +0000 (11:53 +0000)]
Do not run AddInstructionChangesNewSpacePromotion test in release mode.

BUG=
R=svenpanne@chromium.org

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

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

10 years agoRevert "Mark mjsunit/string-case as flaky."
yangguo@chromium.org [Tue, 11 Mar 2014 11:38:53 +0000 (11:38 +0000)]
Revert "Mark mjsunit/string-case as flaky."

This reverts r19760 since the issue has been fixed in r19755.

R=dslomov@google.com, dslomov@chromium.org
BUG=v8:3208
LOG=N

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

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

10 years agoEnable concurrent sweeping.
hpayer@chromium.org [Tue, 11 Mar 2014 11:37:53 +0000 (11:37 +0000)]
Enable concurrent sweeping.

BUG=
R=jochen@chromium.org

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

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

10 years agoDo not overwrite already optimized code.
yangguo@chromium.org [Tue, 11 Mar 2014 11:37:02 +0000 (11:37 +0000)]
Do not overwrite already optimized code.

BUG=
R=ulan@chromium.org

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

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

10 years agoMake sure tagged binary op instructions change new space promotion.
hpayer@chromium.org [Tue, 11 Mar 2014 11:36:55 +0000 (11:36 +0000)]
Make sure tagged binary op instructions change new space promotion.

BUG=
R=jkummerow@chromium.org

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

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

10 years agoSilence Win warnings
rossberg@chromium.org [Tue, 11 Mar 2014 10:53:13 +0000 (10:53 +0000)]
Silence Win warnings

TBR=bmeurer@chromium.org
BUG=

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

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

10 years agoPromiseCoerce should ignore primitive values.
rossberg@chromium.org [Tue, 11 Mar 2014 10:41:18 +0000 (10:41 +0000)]
PromiseCoerce should ignore primitive values.

PromiseCource(x) should return "not a thenable" if Type(x) is not Object
even if x.then exists.

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

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

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

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

10 years agoFix for 350887: CHECK failure on new_length->IsSmi()
mvstanton@chromium.org [Tue, 11 Mar 2014 10:30:10 +0000 (10:30 +0000)]
Fix for 350887: CHECK failure on new_length->IsSmi()

In ElementsAccessorBase::SetLengthImpl for a dictionary array, we try to
optimize setting array length if the new length is a smi. However, we
refuse to set an array length to less than the index of the highest
non-configurable array element. This index may be outside of smi range.

Handle this case accordingly.

BUG=350887
LOG=N
R=dslomov@chromium.org

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

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

10 years agoTypes: cache lub bitset to avoid heap access
rossberg@chromium.org [Tue, 11 Mar 2014 10:28:38 +0000 (10:28 +0000)]
Types: cache lub bitset to avoid heap access

R=verwaest@chromium.org
BUG=

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

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

10 years agoFix compilation on win after r19784
jochen@chromium.org [Tue, 11 Mar 2014 09:35:24 +0000 (09:35 +0000)]
Fix compilation on win after r19784

TBR=dcarney@chromium.org
BUG=

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

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

10 years agoUse a per-isolate cache for the date object JS bits
jochen@chromium.org [Tue, 11 Mar 2014 09:04:14 +0000 (09:04 +0000)]
Use a per-isolate cache for the date object JS bits

The old per-context cache made it difficult for the embedder to notify
v8 of date/time configuration changes. The embedder had to enter all
contexts for the isolate and notify v8 for each context.

With the new per-isolate cache, the embedder only needs to notify v8
once per isolate.

BUG=348856
LOG=y
R=dcarney@chromium.org, ulan@chromium.org
TEST=cctest/test-date

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

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

10 years agoAdd MacroAssembler::Move(reg, immediate) on IA32.
titzer@chromium.org [Tue, 11 Mar 2014 08:52:48 +0000 (08:52 +0000)]
Add MacroAssembler::Move(reg, immediate) on IA32.

BUG=
R=mstarzinger@chromium.org

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

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

10 years agoReally skip dead blocks in GVN
bmeurer@chromium.org [Tue, 11 Mar 2014 08:14:38 +0000 (08:14 +0000)]
Really skip dead blocks in GVN

R=svenpanne@chromium.org

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

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

10 years agoPrepare push to trunk. Now working on version 3.25.8.
machenbach@chromium.org [Tue, 11 Mar 2014 07:52:05 +0000 (07:52 +0000)]
Prepare push to trunk.  Now working on version 3.25.8.

R=dslomov@chromium.org
TBR=dslomov@chromium.org

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

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

10 years agoRefactor lithium operand declaration a little bit.
haitao.feng@intel.com [Tue, 11 Mar 2014 02:55:06 +0000 (02:55 +0000)]
Refactor lithium operand declaration a little bit.

R=verwaest@chromium.org

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

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

10 years agoMIPS: Reland "Handle non-power-of-2 divisors in division-like operations".
plind44@gmail.com [Mon, 10 Mar 2014 19:50:36 +0000 (19:50 +0000)]
MIPS: Reland "Handle non-power-of-2 divisors in division-like operations".

Port r19749 (4880ed9)

Original commit message:
Fixed the flooring div bug and added a test case.

BUG=
R=plind44@gmail.com

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

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

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

10 years agoDifferentate between code target pointers and heap pointers in constant pools.
rmcilroy@chromium.org [Mon, 10 Mar 2014 19:05:43 +0000 (19:05 +0000)]
Differentate between code target pointers and heap pointers in constant pools.

Separate out code target pointers from normal heap pointer entries in constant
pool arrays so that the GC can correctly relocate these pointers using the
appropriate mechanism.

R=mstarzinger@chromium.org

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

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

10 years agoSpecial case the recording of constant pool entries in the slot buffer.
rmcilroy@chromium.org [Mon, 10 Mar 2014 18:47:57 +0000 (18:47 +0000)]
Special case the recording of constant pool entries in the slot buffer.

This CL enables RelocInfo pointers which live in the constant pool to be treated
as normal pointers by the slot buffer, avoiding the requirement of creating fake
RelocInfo objects during UpdateSlots() in order to update these slots.  This
is possible because constant pool entries are just pointers and don't require
the RelocInfo machinary to be updated.

EmbeddedObject constant pool entries can be added untyped to the slot buffer,
while code targets are still typed in order to correctly update the target
address based on the relocated code object.

Note: this is required in order to enable OOL constant pool support on Arm, but
should be benifitial for the current inline constant pool used by Arm code.

R=mstarzinger@chromium.org

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

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

10 years agoDeal with filler object map pointers in the ool constant pool correctly.
rmcilroy@chromium.org [Mon, 10 Mar 2014 18:44:19 +0000 (18:44 +0000)]
Deal with filler object map pointers in the ool constant pool correctly.

This CL updates
StoreBuffer::FindPointersToNewSpaceOnPage such that it skips  constant pool array objects.  Constant Pool Arrays should never have pointers to the new space and might contain pointers to the FreeSpace map (e.g., due to code
being generated which needs to do a map-check on a FreeSpace object) which would incorrectly treated as a filler object if processed by FindPointersToNewSpaceOnPage().

R=hpayer@chromium.org

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

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

10 years agoA64: Use a scope utility to allocate scratch registers.
jacob.bramley@arm.com [Mon, 10 Mar 2014 16:25:15 +0000 (16:25 +0000)]
A64: Use a scope utility to allocate scratch registers.

This replaces Tmp0() and Tmp1() with a more flexible scratch register
pool. A scope-based utility can temporarily acquire registers from this
pool as needed.

We no longer have to worry about whether to use Tmp0(), Tmp1() or
something else; the scope can just get the next available scratch
register.

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

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

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

10 years agoMIPS: Allowed keyed store callbacks ic generation.
plind44@gmail.com [Mon, 10 Mar 2014 16:22:39 +0000 (16:22 +0000)]
MIPS: Allowed keyed store callbacks ic generation.

Port r19744 (b05fa4a)

BUG=
R=plind44@gmail.com

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

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

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

10 years agoRevert "Check and clear date cache in DateCurrentTime, DateLocalTimezone and getTimez...
dslomov@chromium.org [Mon, 10 Mar 2014 16:05:29 +0000 (16:05 +0000)]
Revert "Check and clear date cache in DateCurrentTime, DateLocalTimezone and getTimezoneOffset."

This reverts commit r19711 for breaking WebKit tests.
http://build.chromium.org/p/tryserver.chromium/builders/win_rel/builds/278551/steps/content_browsertests/logs/AccessibilityMessagesQueueWhileSwappedOut

TBR=ulan@chromium.org

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

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

10 years agoFix assertion in RegExp parser to correctly expect stack overflow.
yangguo@chromium.org [Mon, 10 Mar 2014 15:52:10 +0000 (15:52 +0000)]
Fix assertion in RegExp parser to correctly expect stack overflow.

Advance() always checks for stack overflow. If stack indeed overflowed,
current() would hold the kEndMarker. ParseOctalLiteral does not expect
this in the assertion, which causes assertion failure.

R=mvstanton@chromium.org
BUG=350865
LOG=N

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

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

10 years agoParser & preparser unification: make the ParseFunctionLiteral APIs the same.
marja@chromium.org [Mon, 10 Mar 2014 15:19:20 +0000 (15:19 +0000)]
Parser & preparser unification: make the ParseFunctionLiteral APIs the same.

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoFix constant folding of %_IsMinusZero.
yangguo@chromium.org [Mon, 10 Mar 2014 15:06:54 +0000 (15:06 +0000)]
Fix constant folding of %_IsMinusZero.

R=jkummerow@chromium.org

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

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

10 years agoSet svn:ignore for new test262 file path.
machenbach@chromium.org [Mon, 10 Mar 2014 15:00:55 +0000 (15:00 +0000)]
Set svn:ignore for new test262 file path.

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

10 years agoMark mjsunit/string-case as flaky.
dslomov@chromium.org [Mon, 10 Mar 2014 14:52:05 +0000 (14:52 +0000)]
Mark mjsunit/string-case as flaky.

BUG=v8:3208
LOG=N
R=machenbach@chromium.org

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

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

10 years agoImplement KnownSuccessor method to some control instructions.
yangguo@chromium.org [Mon, 10 Mar 2014 14:50:01 +0000 (14:50 +0000)]
Implement KnownSuccessor method to some control instructions.

R=jkummerow@chromium.org
BUG=v8:3118
LOG=N

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

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

10 years agoARM: cleanning of InstanceOfKnownGlobal
m.m.capewell@googlemail.com [Mon, 10 Mar 2014 13:23:28 +0000 (13:23 +0000)]
ARM: cleanning of InstanceOfKnownGlobal

BUG=
R=bmeurer@chromium.org

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

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

10 years agoImport Blink layout tests for Promises.
rossberg@chromium.org [Mon, 10 Mar 2014 12:30:47 +0000 (12:30 +0000)]
Import Blink layout tests for Promises.

Import Blink layout tests for Promises.
We omitted some tests (for example workers tests).
We fixed some wrong test expectations.

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

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

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

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

10 years agoReland and fix "Allow ICs to be generated for own global proxy."
verwaest@chromium.org [Mon, 10 Mar 2014 12:23:05 +0000 (12:23 +0000)]
Reland and fix "Allow ICs to be generated for own global proxy."

BUG=
R=mvstanton@chromium.org

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

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

10 years agoFix assertion failure caused by external strings.
yangguo@chromium.org [Mon, 10 Mar 2014 12:08:17 +0000 (12:08 +0000)]
Fix assertion failure caused by external strings.

This fixes two issues:
- Update externalize-string-extension to the behavior of the API (see r18285)
- Convert cons strings in old pointer space to short external strings as
  expected by Heap::AllowedToBeMigrated, regardless of alignment.

R=mstarzinger@chromium.org

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

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

10 years agoPromise.all and Promise.race should reject non-array parameter.
rossberg@chromium.org [Mon, 10 Mar 2014 12:01:06 +0000 (12:01 +0000)]
Promise.all and Promise.race should reject non-array parameter.

Promise.all and Promise.race should reject the returned Promise if an
invalid parameter is given.
Since they don't support iterable now, they should reject the Promise
if a non-array parameter is given.

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

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

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

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

10 years agoRefactor script compilation / running & use of helper funcs in test-api.cc.
marja@chromium.org [Mon, 10 Mar 2014 11:58:56 +0000 (11:58 +0000)]
Refactor script compilation / running & use of helper funcs in test-api.cc.

The tests were using different kind of constructs for achieving the same
thing. This makes refactoring the compilation API more difficult than it should
be.

cctest.h already contained helpers for compiling and running scripts, but they
were not used consistently.

For example, all these were used for running scripts:

v8::Script::Compile(v8_str("foo"))->Run();
v8::Script::Compile(v8::String::NewFromUtf8(isolate, "foo))->Run();
CompileRun(v8_str("foo"));
CompileRun(v8::String::NewFromUtf8(some_way_to_get_isolate(), "foo"));
v8::Local<v8::Script> script = any_of_the_above; script->Run();

Most of the tests just want to run a script (which is in const char*) and don't
care about how the v8::String is constructed or passed to the compiler API. Using
the helpers makes the test more readable and reduces boilerplate code which is
unrelated to what the test is testing.

R=dcarney@chromium.org
BUG=

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

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

10 years agoPromise.all and Promise race should use "then" rather than "chain".
rossberg@chromium.org [Mon, 10 Mar 2014 11:52:13 +0000 (11:52 +0000)]
Promise.all and Promise race should use "then" rather than "chain".

As specified, they should unwrap resolution values recursively.

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

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

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

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

10 years agoMerge the "Compute Minus Zero Checks" phase into the range analysis.
bmeurer@chromium.org [Mon, 10 Mar 2014 11:49:29 +0000 (11:49 +0000)]
Merge the "Compute Minus Zero Checks" phase into the range analysis.

It is not safe to access the range for an SSA value
after range analysis.

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

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

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

10 years agoUnify (Pre)Parser::ParseObjectLiteral and add tests.
marja@chromium.org [Mon, 10 Mar 2014 11:42:17 +0000 (11:42 +0000)]
Unify (Pre)Parser::ParseObjectLiteral and add tests.

Notes:
- The regexp in the ParseObjectLiteralComment was wrong, made it less wrong (
it's still wrong since trailing commas are not required / allowed).
- Change in logic: In case we have "get somekeyword() { }", the "somekeyword"
was not logged as a symbol by PreParser and not expected in the preparser data
by Parser. This is unnecessary complication; in other contexts where keywords
are allowed as identifiers, they are logged as symbols (see
ParseIdentifierName).

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

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

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

10 years agoReland "Handle non-power-of-2 divisors in division-like operations".
bmeurer@chromium.org [Mon, 10 Mar 2014 10:39:17 +0000 (10:39 +0000)]
Reland "Handle non-power-of-2 divisors in division-like operations".

Fixed the flooring div bug and added a test case.

R=svenpanne@chromium.org

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

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

10 years agoPrepare push to trunk. Now working on version 3.25.7.
machenbach@chromium.org [Mon, 10 Mar 2014 10:02:49 +0000 (10:02 +0000)]
Prepare push to trunk.  Now working on version 3.25.7.

R=dslomov@chromium.org
TBR=dslomov@chromium.org

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

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

10 years agoAdd support for allowing an embedder to get the V8 profile timer event logs.
yangguo@chromium.org [Mon, 10 Mar 2014 08:56:48 +0000 (08:56 +0000)]
Add support for allowing an embedder to get the V8 profile timer event logs.

Contributed by fmeawad@chromium.org

R=yangguo@chromium.org

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

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

10 years agoallowed keyed store callbacks ic generation
dcarney@chromium.org [Mon, 10 Mar 2014 08:40:03 +0000 (08:40 +0000)]
allowed keyed store callbacks ic generation

R=verwaest@chromium.org

BUG=

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

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

10 years agoHandlify JSObject::CanSetCallback.
yangguo@chromium.org [Mon, 10 Mar 2014 08:28:59 +0000 (08:28 +0000)]
Handlify JSObject::CanSetCallback.

Also use temporary wrapper functions where possible to mark progress.

R=ishell@chromium.org

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

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

10 years agoHarmony: implement Math.cbrt in Javascript.
yangguo@chromium.org [Mon, 10 Mar 2014 08:21:18 +0000 (08:21 +0000)]
Harmony: implement Math.cbrt in Javascript.

R=jarin@chromium.org

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

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

10 years agoinitialize v8::Private with v8::String
dcarney@chromium.org [Mon, 10 Mar 2014 08:20:56 +0000 (08:20 +0000)]
initialize v8::Private with v8::String

R=rossberg@chromium.org

BUG=

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

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

10 years agoAllow Object::InternalFieldCount and Object::GetAlignedPointerFromInternalField to...
dcarney@chromium.org [Mon, 10 Mar 2014 08:18:57 +0000 (08:18 +0000)]
Allow Object::InternalFieldCount and Object::GetAlignedPointerFromInternalField to be called from Persistent classes

R=svenpanne@chromium.org

BUG=

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

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

10 years agoSkip unreachable blocks when looking for next emitted block.
yangguo@chromium.org [Mon, 10 Mar 2014 07:42:09 +0000 (07:42 +0000)]
Skip unreachable blocks when looking for next emitted block.

Goto does not emit a jump if the target is the next emitted block.
However, if there is an unreachable block between Goto and the jump
target, we still emit a jump even though the unreachable block is
not actually emitted. That jump is unnecessary.

R=jkummerow@chromium.org

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

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

10 years agoAtomic ops: Sync with Chromium and add unit test.
jarin@chromium.org [Mon, 10 Mar 2014 06:43:21 +0000 (06:43 +0000)]
Atomic ops: Sync with Chromium and add unit test.

R=jarin@chromium.org

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

Patch from Cosmin Truta <ctruta@gmail.com>.

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

10 years agoReplace the recursion in PropagateMinusZeroChecks() with a loop and a worklist.
bmeurer@chromium.org [Mon, 10 Mar 2014 05:52:03 +0000 (05:52 +0000)]
Replace the recursion in PropagateMinusZeroChecks() with a loop and a worklist.

Also refactor the related code in preparation for fixing the
range analysis.

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

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

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

10 years agoReland "Enable Object.observe by default"
rafaelw@chromium.org [Sat, 8 Mar 2014 04:41:06 +0000 (04:41 +0000)]
Reland "Enable Object.observe by default"

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

TBR=rossberg
BUG=v8:2409
LOG=Y

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

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

10 years agoRevert "Enable Object.observe by default"
rafaelw@chromium.org [Sat, 8 Mar 2014 03:54:42 +0000 (03:54 +0000)]
Revert "Enable Object.observe by default"

TBR=rossberg
BUG=

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

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

10 years agoEnable Object.observe by default
rafaelw@chromium.org [Sat, 8 Mar 2014 02:47:53 +0000 (02:47 +0000)]
Enable Object.observe by default

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

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

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

10 years agoMIPS: Consistenly handle power-of-2 divisors in division-like operations.
plind44@gmail.com [Fri, 7 Mar 2014 22:11:52 +0000 (22:11 +0000)]
MIPS: Consistenly handle power-of-2 divisors in division-like operations.

Port r19715 (0d6d244)

Original commit message:
Lithium currently supports 3 division-like operations on integral
operands: "Normal" division (rounding towards zero), flooring division
(rounding towards -Infinity) and modulus calculation (the counterpart
for the "normal" division). For divisors which are a power of 2, one can
efficiently use some bit fiddling to avoid the actual division for such
operations. This CL cleanly splits off these operations into separate
Lithium instructions, making the code much more maintainable and more
consistent across platforms.

There are 2 basic variations of these bit fiddling algorithms: One
involving branches and a seemingly more clever one without branches.
Choosing between the two is not as easy as it seems: Benchmarks (and
probably real-world) programs seem to favor positive dividends,
registers and shifting units are sometimes scarce resources, and branch
prediction is quite good in modern processors. Therefore only the
"normal" division by a power of 2 is implemented in a branch-free
manner, this seems to be the best approach in practice. If this turns
out to be wrong, we can easily and locally change this.

BUG=
R=plind44@gmail.com

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

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

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

10 years agoMIPS: Introduce intrinsics for double values in Javascript.
palfia@homejinni.com [Fri, 7 Mar 2014 22:08:20 +0000 (22:08 +0000)]
MIPS: Introduce intrinsics for double values in Javascript.

Port r19704 (120500a)

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

BUG=
R=plind44@gmail.com

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

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

10 years agoFix compiler warning on Win64
yurys@chromium.org [Fri, 7 Mar 2014 17:20:03 +0000 (17:20 +0000)]
Fix compiler warning on Win64

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

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

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

10 years agoA64: Improve constraints on StoreKeyed instructions
m.m.capewell@googlemail.com [Fri, 7 Mar 2014 17:12:47 +0000 (17:12 +0000)]
A64: Improve constraints on StoreKeyed instructions

BUG=
R=ulan@chromium.org

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

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

10 years agoFix compilation on 32-bit platforms after r19728
yurys@chromium.org [Fri, 7 Mar 2014 16:34:10 +0000 (16:34 +0000)]
Fix compilation on 32-bit platforms after r19728

BUG=None
TBR=mstarzinger@chromium.org

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

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

10 years agoAllocationTracker now maintains a map from address range to stack trace that allocate...
yurys@chromium.org [Fri, 7 Mar 2014 16:13:22 +0000 (16:13 +0000)]
AllocationTracker now maintains a map from address range to stack trace that allocated the range. When snapshot is generated the map is used to find construction stack trace for an object using its address.

BUG=chromium:277984
LOG=Y
R=alph@chromium.org, mstarzinger@chromium.org

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

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

10 years agoA64: tidy up the disassembler
rodolph.perfetta@arm.com [Fri, 7 Mar 2014 16:11:50 +0000 (16:11 +0000)]
A64: tidy up the disassembler

R=ulan@chromium.org

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

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

10 years agoMIPS: Symbols for type cells.
plind44@gmail.com [Fri, 7 Mar 2014 15:48:50 +0000 (15:48 +0000)]
MIPS: Symbols for type cells.

Port r19706 (81fd8dd)

Original commit message:
We can make more efficient code to check against type cells in the future if we use symbols, guaranteed not to conflict with user code. Currently, the "symbols" are the hole and undefined. Undefined may come in from the outside.

BUG=
R=mvstanton@chromium.org

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

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

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

10 years agoA64: Clean and improve ArgumentsAdaptorTrampoline.
alexandre.rames@arm.com [Fri, 7 Mar 2014 15:25:28 +0000 (15:25 +0000)]
A64: Clean and improve ArgumentsAdaptorTrampoline.

This patch:
 - uses named registers
 - reserves all the stack space in one go to avoid operations on csp
 - uses LDP/STP to copy the arguments

R=jochen@chromium.org

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

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

10 years agoA64: Handle a few TODOs.
alexandre.rames@arm.com [Fri, 7 Mar 2014 15:20:32 +0000 (15:20 +0000)]
A64: Handle a few TODOs.

Notes about a few TODOs handled in this patch:

* In ProfileEntryHookStub::Generate:
    Stubs are always called with relocation.

* In CreateArrayDispatchOneArgument:
    The branches to registers can't be conditional. We could use a jump table, but
    there are only 6 different kinds so it is likely not worth it.

* In Builtins::Generate_StringConstructCode:
    Rename the argc register (x0) after its meaning changes.
    Remove a TODO: using a macro would not make the code clearer.

* In Generate_JSEntryTrampolineHelper:
    Remove the TODO and raise an internal issue to investigate this.

* In Disassembler::SubstituteBranchTargetField:
    Print the target address, but we don't have more info on the target.

R=ulan@chromium.org

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

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

10 years agoReland "Introduce intrinsics for double values in Javascript."
yangguo@chromium.org [Fri, 7 Mar 2014 14:58:41 +0000 (14:58 +0000)]
Reland "Introduce intrinsics for double values in Javascript."

This relands r19704 with a fix to the test case.

R=svenpanne@chromium.org

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

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

10 years agoRevert "Handle non-power-of-2 divisors in division-like operations", "A64 tweaks...
svenpanne@chromium.org [Fri, 7 Mar 2014 13:11:56 +0000 (13:11 +0000)]
Revert "Handle non-power-of-2 divisors in division-like operations", "A64 tweaks for division-like operations." and "Windows build fix.".

This reverts commit 19719, 19720 and 19721 because
mozilla/ecma/Date/15.9.3.1-1 fails (in release mode only?).

TBR=bmeurer@chromium.org

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

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

10 years agoWindows build fix.
svenpanne@chromium.org [Fri, 7 Mar 2014 12:12:50 +0000 (12:12 +0000)]
Windows build fix.

TBR=ulan@chromium.org

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

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

10 years agoA64 tweaks for division-like operations.
svenpanne@chromium.org [Fri, 7 Mar 2014 12:02:52 +0000 (12:02 +0000)]
A64 tweaks for division-like operations.

R=bmeurer@chromium.org

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

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

10 years agoHandle non-power-of-2 divisors in division-like operations
svenpanne@chromium.org [Fri, 7 Mar 2014 11:44:04 +0000 (11:44 +0000)]
Handle non-power-of-2 divisors in division-like operations

R=bmeurer@chromium.org

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

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

10 years agoAllocation tracker: add separate entry for allocations via V8 API
yurys@chromium.org [Fri, 7 Mar 2014 11:32:01 +0000 (11:32 +0000)]
Allocation tracker: add separate entry for allocations via V8 API

When object is creating via native V8 API calls JS callstack is empty and the allocation is indistinguishable from say compiler allocations. This change adds a separate entry for such allocations.

Since FunctionInfo not necessarily corresponds to a heap object they are now referred to using their index in the list of all FunctionInfos.

BUG=chromium:277984
LOG=N
R=loislo@chromium.org, mstarzinger@chromium.org

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

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

10 years agoIntroduce Runtime_GetAllScopesDetails to get all scopes at once for a frame.
ulan@chromium.org [Fri, 7 Mar 2014 11:03:35 +0000 (11:03 +0000)]
Introduce Runtime_GetAllScopesDetails to get all scopes at once for a frame.

This will reduce heavy ScopeIterator instantiations.
Once incorporated into chromium, will give 30% speed boost.

BUG=chromium:340285
LOG=Y
R=ulan@chromium.org, Yang, rossberg, ulan

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

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

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

10 years agoTest FeedbackVectorPreservedAcrossRecompiles needs crankshaft
mvstanton@chromium.org [Fri, 7 Mar 2014 11:01:03 +0000 (11:01 +0000)]
Test FeedbackVectorPreservedAcrossRecompiles needs crankshaft

The new test didn't recognize that non-sse2 builds on ia32 would
disable crankshaft.

R=yangguo@chromium.org

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

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

10 years agoConsistenly handle power-of-2 divisors in division-like operations
svenpanne@chromium.org [Fri, 7 Mar 2014 10:36:28 +0000 (10:36 +0000)]
Consistenly handle power-of-2 divisors in division-like operations

Lithium currently supports 3 division-like operations on integral operands: "Normal" division (rounding towards zero), flooring division (rounding towards -Infinity) and modulus calculation (the counterpart for the "normal" division). For divisors which are a power of 2, one can efficiently use some bit fiddling to avoid the actual division for such operations. This CL cleanly splits off these operations into separate Lithium instructions, making the code much more maintainable and more consistent across platforms.

There are 2 basic variations of these bit fiddling algorithms: One involving branches and a seemingly more clever one without branches. Choosing between the two is not as easy as it seems: Benchmarks (and probably real-world) programs seem to favor positive dividends, registers and shifting units are sometimes scarce resources, and branch prediction is quite good in modern processors. Therefore only the "normal" division by a power of 2 is implemented in a branch-free manner, this seems to be the best approach in practice. If this turns out to be wrong, we can easily and locally change this.

R=bmeurer@chromium.org

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

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

10 years agoReduce heavy runtime calls from debug mirrors.
ulan@chromium.org [Fri, 7 Mar 2014 10:25:53 +0000 (10:25 +0000)]
Reduce heavy runtime calls from debug mirrors.

Cache results of some heavy calls into C++.
This alone will boost the speed up to 18% on some real world scenarios.

BUG=chromium:340285
LOG=Y
R=ulan@chromium.org, yangguo@chromium.org, Yang, rossberg, ulan, yurys

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

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

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

10 years agoTrack global cells as special side effects in GVN.
bmeurer@chromium.org [Fri, 7 Mar 2014 10:14:03 +0000 (10:14 +0000)]
Track global cells as special side effects in GVN.

R=mstarzinger@chromium.org

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

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

10 years agoMoved type feedback vector to SharedFunctionInfo.
mvstanton@chromium.org [Fri, 7 Mar 2014 10:12:17 +0000 (10:12 +0000)]
Moved type feedback vector to SharedFunctionInfo.

Type Vector followup: the type vector currently lives off the code object. This CL moves it to the SharedFunctionInfo, facilitating re-use and continued use in crankshafted code if desired.

R=bmeurer@chromium.org

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

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

10 years agoCheck and clear date cache in DateCurrentTime, DateLocalTimezone and getTimezoneOffset.
ulan@chromium.org [Fri, 7 Mar 2014 10:01:00 +0000 (10:01 +0000)]
Check and clear date cache in DateCurrentTime, DateLocalTimezone and getTimezoneOffset.

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

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

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

10 years agoRevert "Introduce intrinsics for double values in Javascript."
yangguo@chromium.org [Fri, 7 Mar 2014 09:49:28 +0000 (09:49 +0000)]
Revert "Introduce intrinsics for double values in Javascript."

This reverts r19704.

R=mvstanton@chromium.org

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

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

10 years agoRevert "Use Representation::Integer32() for smi types on 32-bit-tagged systems."
verwaest@chromium.org [Fri, 7 Mar 2014 09:29:07 +0000 (09:29 +0000)]
Revert "Use Representation::Integer32() for smi types on 32-bit-tagged systems."

Due to performance regression.

BUG=
R=jkummerow@chromium.org

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

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

10 years agoA64: Minor improvement in FullCodeGenerator::VisitObjectLiteral.
baptiste.afsa@arm.com [Fri, 7 Mar 2014 09:19:51 +0000 (09:19 +0000)]
A64: Minor improvement in FullCodeGenerator::VisitObjectLiteral.

This patch avoid to push some values on the stack when it's not needed.

R=ulan@chromium.org

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

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