platform/upstream/v8.git
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

10 years agoRevert "Moved type feedback vector to SharedFunctionInfo."
hpayer@chromium.org [Thu, 13 Mar 2014 17:47:12 +0000 (17:47 +0000)]
Revert "Moved type feedback vector to SharedFunctionInfo."

This reverts commit 828f1d563a3f0972135886888fd26526e04da07f.

Conflicts:
src/compiler.cc
test/cctest/test-compiler.cc

BUG=
R=titzer@chromium.org

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

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

10 years agoMIPS: Remove uses of CanBeNegative() in HMod.
plind44@gmail.com [Thu, 13 Mar 2014 17:38:40 +0000 (17:38 +0000)]
MIPS: Remove uses of CanBeNegative() in HMod.

Port r19878 (74a9002)

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

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

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

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

10 years agoRevert "Move ParseAssignmentExpression to ParserBase."
marja@chromium.org [Thu, 13 Mar 2014 16:11:26 +0000 (16:11 +0000)]
Revert "Move ParseAssignmentExpression to ParserBase."

This reverts revision 19908.

Reason: clang doesn't like it.

BUG=

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

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

10 years agoMove ParseAssignmentExpression to ParserBase.
marja@chromium.org [Thu, 13 Mar 2014 16:06:08 +0000 (16:06 +0000)]
Move ParseAssignmentExpression to ParserBase.

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

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

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

10 years agoFix test-parsing/TooManyArguments.
marja@chromium.org [Thu, 13 Mar 2014 15:55:38 +0000 (15:55 +0000)]
Fix test-parsing/TooManyArguments.

(Asan.)

R=machenbach@chromium.org
BUG=

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

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

10 years agoA64: Remove temporary sxtw instructions
m.m.capewell@googlemail.com [Thu, 13 Mar 2014 15:53:08 +0000 (15:53 +0000)]
A64: Remove temporary sxtw instructions

BUG=v8:3149
LOG=
R=ulan@chromium.org

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

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

10 years agoRevert "Maintain change log file directly on trunk branch in push-to-trunk." and...
machenbach@chromium.org [Thu, 13 Mar 2014 15:48:24 +0000 (15:48 +0000)]
Revert "Maintain change log file directly on trunk branch in push-to-trunk." and related changes.

This reverts r19876, r19902 and r19903. The changes made git diff' in push-to-trunk unusable.

TBR=jarin@chromium.org

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

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

10 years agoMIPS: Remove uses of RangeCanInclude() in flooring division by power of 2.
plind44@gmail.com [Thu, 13 Mar 2014 15:16:20 +0000 (15:16 +0000)]
MIPS: Remove uses of RangeCanInclude() in flooring division by power of 2.

Port r19877 (17029d3)

Original commit message:
Drive-By-Fix: Improve ARM code generation for flooring division by
power of 2.

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

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

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

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

10 years agoPrepare push to trunk. Now working on version 3.25.11.
machenbach@chromium.org [Thu, 13 Mar 2014 15:14:28 +0000 (15:14 +0000)]
Prepare push to trunk.  Now working on version 3.25.11.

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

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

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

10 years agoMaintain change log file directly on trunk branch in push-to-trunk.
machenbach@chromium.org [Thu, 13 Mar 2014 15:12:18 +0000 (15:12 +0000)]
Maintain change log file directly on trunk branch in push-to-trunk.

This is another step for deprecating the change log file on bleeding edge.

BUG=
R=jarin@chromium.org

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

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

10 years agoRevert r19897, r19898 for breaking mac-64 debug.
ulan@chromium.org [Thu, 13 Mar 2014 15:10:35 +0000 (15:10 +0000)]
Revert r19897, r19898 for breaking mac-64 debug.

TBR=dslomov@chromium.org

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

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

10 years agoA64: Relax the register constraints for LSeqStringGetChar.
baptiste.afsa@arm.com [Thu, 13 Mar 2014 14:56:57 +0000 (14:56 +0000)]
A64: Relax the register constraints for LSeqStringGetChar.

R=ulan@chromium.org

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

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

10 years agoMIPS: Fix uses of range analysis results in HChange.
plind44@gmail.com [Thu, 13 Mar 2014 14:56:25 +0000 (14:56 +0000)]
MIPS: Fix uses of range analysis results in HChange.

Port r19872 (6d8679b)

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

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

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

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

10 years agoFix windows build after r19897.
ulan@chromium.org [Thu, 13 Mar 2014 14:24:00 +0000 (14:24 +0000)]
Fix windows build after r19897.

TBR=dslomov@chromium.org

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

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

10 years agoFix memory leak caused by treating Code::next_code_link as strong in marker.
ulan@chromium.org [Thu, 13 Mar 2014 14:09:18 +0000 (14:09 +0000)]
Fix memory leak caused by treating Code::next_code_link as strong in marker.

BUG=
TEST=test/cctest/NextCodeLinkIsWeak
R=mstarzinger@chromium.org

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

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

10 years agoCorrectly retain argument value when deopting from Math.round on x64.
yangguo@chromium.org [Thu, 13 Mar 2014 13:57:21 +0000 (13:57 +0000)]
Correctly retain argument value when deopting from Math.round on x64.

R=jkummerow@chromium.org
BUG=351624
LOG=N

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

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

10 years agoA64: Implement and use FillFields
m.m.capewell@googlemail.com [Thu, 13 Mar 2014 13:18:48 +0000 (13:18 +0000)]
A64: Implement and use FillFields

BUG=
R=ulan@chromium.org

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

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

10 years agoSimplify GetEnumPropertyKeys and avoid trimming fixed arrays in large object space.
ulan@chromium.org [Thu, 13 Mar 2014 12:45:12 +0000 (12:45 +0000)]
Simplify GetEnumPropertyKeys and avoid trimming fixed arrays in large object space.

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

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

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

10 years agoPerf regression: changes in KeyedStoreIC introduced polymorphism.
mvstanton@chromium.org [Thu, 13 Mar 2014 12:17:43 +0000 (12:17 +0000)]
Perf regression: changes in KeyedStoreIC introduced polymorphism.

When fixing bug 350884, I introduced an error that meant we went
polymorphic in KeyedStoreIC where we stayed monomorphic before. This
CL addresses the error, while preserving the bug fix for 350884.

R=verwaest@chromium.org

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

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

10 years agoOnly call to LogSymbol when needed.
dcarney@chromium.org [Thu, 13 Mar 2014 11:56:13 +0000 (11:56 +0000)]
Only call to LogSymbol when needed.

R=marja@chromium.org

BUG=

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

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

10 years agoHandlify PropertyAttribute lookups.
yangguo@chromium.org [Thu, 13 Mar 2014 11:55:31 +0000 (11:55 +0000)]
Handlify PropertyAttribute lookups.

R=ishell@chromium.org

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

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

10 years agoCheck that constant is an integer before getting its value in HGraphBuilder::MatchRot...
ulan@chromium.org [Thu, 13 Mar 2014 11:50:50 +0000 (11:50 +0000)]
Check that constant is an integer before getting its value in HGraphBuilder::MatchRotateRight.

BUG=351263
LOG=N
TEST=mjsunit/regress/regress-351263
R=svenpanne@chromium.org

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

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

10 years agoTurn StringLengthStub (used by string wrappers only) into a hydrogen stub.
verwaest@chromium.org [Thu, 13 Mar 2014 10:57:07 +0000 (10:57 +0000)]
Turn StringLengthStub (used by string wrappers only) into a hydrogen stub.

BUG=
R=yangguo@chromium.org

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

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

10 years agoAdd ASAN option to stand-alone gyp config.
machenbach@chromium.org [Thu, 13 Mar 2014 10:36:55 +0000 (10:36 +0000)]
Add ASAN option to stand-alone gyp config.

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

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

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

10 years agoA64: Remove an invalid assertion about the position of the reloc_info_writer.
alexandre.rames@arm.com [Thu, 13 Mar 2014 10:28:53 +0000 (10:28 +0000)]
A64: Remove an invalid assertion about the position of the reloc_info_writer.

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

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

10 years agoHarmony: move math features to es-staging.
yangguo@chromium.org [Thu, 13 Mar 2014 09:51:59 +0000 (09:51 +0000)]
Harmony: move math features to es-staging.

R=rossberg@chromium.org

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

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

10 years agoA64: Fix Fmov with signalling NaN literals.
jacob.bramley@arm.com [Thu, 13 Mar 2014 09:45:02 +0000 (09:45 +0000)]
A64: Fix Fmov with signalling NaN literals.

BUG=
R=ulan@chromium.org

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

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

10 years agoMake translation of modulus operation '--stress-opt'-proof.
svenpanne@chromium.org [Thu, 13 Mar 2014 09:37:16 +0000 (09:37 +0000)]
Make translation of modulus operation '--stress-opt'-proof.

Note that we unconditionally deopt later, anyway, but our compilation
pipeline has to survive long enough to reach that place. :-/

LOG=y
BUG=352059
R=bmeurer@chromium.org

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

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

10 years agoConvert scanner buffers to use standard character types.
dcarney@chromium.org [Thu, 13 Mar 2014 09:15:14 +0000 (09:15 +0000)]
Convert scanner buffers to use standard character types.

R=marja@chromium.org

BUG=

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

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

10 years agoRevert "New Compilation API, part 1"
marja@chromium.org [Thu, 13 Mar 2014 09:14:16 +0000 (09:14 +0000)]
Revert "New Compilation API, part 1"

This reverts revision 19881.

Reason: WebKit build failure (will commit a fixed version shortly).

BUG=

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

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

10 years agoNew Compilation API, part 1
marja@chromium.org [Thu, 13 Mar 2014 08:54:11 +0000 (08:54 +0000)]
New Compilation API, part 1

- 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.)

BUG=
R=dcarney@chromium.org

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

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

10 years agomove remaining uses of scanner literals into scanner
dcarney@chromium.org [Thu, 13 Mar 2014 08:29:31 +0000 (08:29 +0000)]
move remaining uses of scanner literals into scanner

R=marja@chromium.org

BUG=

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

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

10 years agoRemove uses of CanBeNegative() in HMod.
bmeurer@chromium.org [Thu, 13 Mar 2014 08:17:44 +0000 (08:17 +0000)]
Remove uses of CanBeNegative() in HMod.

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

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

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

10 years agoRemove uses of RangeCanInclude() in flooring division by power of 2.
bmeurer@chromium.org [Thu, 13 Mar 2014 07:58:58 +0000 (07:58 +0000)]
Remove uses of RangeCanInclude() in flooring division by power of 2.

Drive-By-Fix: Improve ARM code generation for flooring division by
power of 2.

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

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

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

10 years agoAdd file exclusion to trunk patch creation in push-to-trunk.
machenbach@chromium.org [Thu, 13 Mar 2014 07:57:07 +0000 (07:57 +0000)]
Add file exclusion to trunk patch creation in push-to-trunk.

This is another step towards getting rid of the bleeding edge change log file. Now it can be omitted in a follow up CL.

R=jarin@chromium.org

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

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

10 years agoRemove SnapshotFillerInterface
yurys@chromium.org [Thu, 13 Mar 2014 07:48:42 +0000 (07:48 +0000)]
Remove SnapshotFillerInterface

There used to be additional pass in the heap profiler that estimated memory required for the snapshot and it used special implementation of the interface. Now that we dropped that step it doesn't makes sense to keep the interface with single implementation.

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

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

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

10 years agoFix of argument materialization of captured heap numbers.
jarin@chromium.org [Thu, 13 Mar 2014 07:17:37 +0000 (07:17 +0000)]
Fix of argument materialization of captured heap numbers.

The escape analysis calculates the number of slots in an object as
no-of-slots = object-size / pointer-size.  This gives 3 slots for
heap numbers on 32-bit architectures (one slot for the map, two for
the double value); however, my argument materialization code assumed
just two slots (map + value). Since Hydrogen allocates heap numbers
quite rarely, it is hard to produce a more meaningful repro than the
one provided by Clusterfuzz. Any suggestions are welcome.

The fix is simple - we just read out all extra slots (beyond the map
and the double) for heap numbers.

R=mstarzinger@chromium.org
BUG=351315
LOG=N

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

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

10 years agoImplement PersistentValueMap, a map that stores UniquePersistent values.
dcarney@chromium.org [Thu, 13 Mar 2014 07:10:59 +0000 (07:10 +0000)]
Implement PersistentValueMap, a map that stores UniquePersistent values.
This is preparatory work to get rid of UnsafePersistent in blink.

The previous version had to be reverted due to timeouts in win32/Debug: https://codereview.chromium.org/197173002/

The timeouts happened because the STL version on that platform contains sanity checking code which opens a 'debug window' in the GUI, patiently waiting for the user to click ok/cancel/somethirdoption. It turns out, the cause for that debug window was totally valid and the test had a use-after-free issue.

The 1st patch set is the code as before. The 2nd patch set contains the fix.

Related blink changes are here: https://codereview.chromium.org/180363004/

This patch is largely based on https://codereview.chromium.org/175503003/, with some methods added to support the blink change mentioned above.

BUG=
R=dcarney@chromium.org

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

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

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

10 years agoFix uses of range analysis results in HChange.
bmeurer@chromium.org [Thu, 13 Mar 2014 06:11:52 +0000 (06:11 +0000)]
Fix uses of range analysis results in HChange.

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

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

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

10 years agoPrepare push to trunk. Now working on version 3.25.10.
machenbach@chromium.org [Thu, 13 Mar 2014 03:04:38 +0000 (03:04 +0000)]
Prepare push to trunk.  Now working on version 3.25.10.

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

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

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

10 years agoReland "Enable Object.observe by default" again
adamk@chromium.org [Thu, 13 Mar 2014 00:20:06 +0000 (00:20 +0000)]
Reland "Enable Object.observe by default" again

This re-re-re-lands enabling Object.observe. The Chromium tests that
failed last time this was rolled into Chromium have been disabled in
https://src.chromium.org/viewvc/chrome?view=revision&revision=256706

This patch should be safe to merge once that lands.

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

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

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

10 years agoMIPS: Reland "Pass a Code object to Assembler::(set_)target_address_at for use by...
plind44@gmail.com [Wed, 12 Mar 2014 22:09:17 +0000 (22:09 +0000)]
MIPS: Reland "Pass a Code object to Assembler::(set_)target_address_at for use by ool constant pool."

Port r19856 (0546217)

Original commit message:
The ool constant pool will require a pointer to the code's constant pool when
updating or reading target addresses using set_target_address_at()
and target_address_at().

BUG=
R=plind44@gmail.com

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

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

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

10 years agoUse intrinsics for builtin ArrayBuffer property accesses
jkummerow@chromium.org [Wed, 12 Mar 2014 19:25:40 +0000 (19:25 +0000)]
Use intrinsics for builtin ArrayBuffer property accesses

BUG=chromium:351787
LOG=y
R=yangguo@chromium.org

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

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

10 years agoParser / PreParser unification: Add docs.
marja@chromium.org [Wed, 12 Mar 2014 19:15:17 +0000 (19:15 +0000)]
Parser / PreParser unification: Add docs.

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

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

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

10 years agoEnsure that relocinfo's host code object is correctly reset on GC in TypeFeedbackOrac...
rmcilroy@chromium.org [Wed, 12 Mar 2014 17:18:49 +0000 (17:18 +0000)]
Ensure that relocinfo's host code object is correctly reset on GC in TypeFeedbackOracle::RelocateRelocInfos

TBR=ulan@chromium.org

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

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

10 years agoA64: removed unused debugger file.
rodolph.perfetta@arm.com [Wed, 12 Mar 2014 16:05:20 +0000 (16:05 +0000)]
A64: removed unused debugger file.

BUG=
R=jochen@chromium.org

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

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

10 years agoIntroduce FrameAndConstantPoolScope and ConstantPoolUnavailableScope.
rmcilroy@chromium.org [Wed, 12 Mar 2014 15:56:16 +0000 (15:56 +0000)]
Introduce FrameAndConstantPoolScope and ConstantPoolUnavailableScope.

Adds FrameAndConstantPoolScope and ConstantPoolUnavailableScope to enable
scoped management of constant pool availability.  Also load constant pool
pointer when entering an internal frame scope.

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

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

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

10 years agoA64: Record the size of veneer pools for code offset mapping.
alexandre.rames@arm.com [Wed, 12 Mar 2014 15:40:41 +0000 (15:40 +0000)]
A64: Record the size of veneer pools for code offset mapping.

Mapping the code offsets between code with and without debug break slots
requires information about the size of the veneer pools and constant pools.

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

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

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

10 years agoReland "Pass a Code object to Assembler::(set_)target_address_at for use by ool const...
rmcilroy@chromium.org [Wed, 12 Mar 2014 15:23:54 +0000 (15:23 +0000)]
Reland "Pass a Code object to Assembler::(set_)target_address_at for use by ool constant pool."

The ool constant pool will require a pointer to the code's constant pool when
updating or reading target addresses using set_target_address_at()
and target_address_at().

Original Review URL: https://codereview.chromium.org/183803022

R=ulan@chromium.org

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

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

10 years agoA64: Rename k<Y>RegSize to k<Y>RegSizeInBits, and k<Y>RegSizeInBytes to k<Y>RegSize.
alexandre.rames@arm.com [Wed, 12 Mar 2014 15:18:40 +0000 (15:18 +0000)]
A64: Rename k<Y>RegSize to k<Y>RegSizeInBits, and k<Y>RegSizeInBytes to k<Y>RegSize.

R=ulan@chromium.org

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

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

10 years agoFix for bug 351257: type feedback vector initialization issue.
mvstanton@chromium.org [Wed, 12 Mar 2014 15:18:17 +0000 (15:18 +0000)]
Fix for bug 351257: type feedback vector initialization issue.

The feedback vector is stored in the shared function info, and there
is an effort to reuse it when re-running full code generation as a
prelude to creating optimized code. However we shouldn't reuse the
vector for lazily compiled methods on first compile, as scoping analysis
can change the allocation of vector slots.

BUG=351257
LOG=N
R=danno@chromium.org, bmeuer@chromium.org

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

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

10 years agoRefactoring: Use explicit mock expectations for testing push and merge scripts.
machenbach@chromium.org [Wed, 12 Mar 2014 14:39:04 +0000 (14:39 +0000)]
Refactoring: Use explicit mock expectations for testing push and merge scripts.

- Up to now, mock expectations were simple lists of arguments + return value
- These expectations are now modeled explicitly including the name of the mock (e.g. git or readline)
- The optional test callback function is now explicitly named
- This will allow merging all mock expectation types (e.g. git and readline) into a single list per test case (follow up CL)

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

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

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

10 years agoDisable special handling of flooring division by constant until it is fixed for real.
svenpanne@chromium.org [Wed, 12 Mar 2014 14:28:59 +0000 (14:28 +0000)]
Disable special handling of flooring division by constant until it is fixed for real.

Added a test to check the various division-like operations more exhaustively.

R=bmeurer@chromium.org, ulan@chromium.org

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

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

10 years agoFollow-up to r19845 which suppresses syntax errors in presence of a stack overflow.
marja@chromium.org [Wed, 12 Mar 2014 14:15:13 +0000 (14:15 +0000)]
Follow-up to r19845 which suppresses syntax errors in presence of a stack overflow.

ReportUnexpectedToken already calls Traits::ReportMessageAt. If we're in Parser,
that already suppresses the syntax error. If we're in PreParser, we don't need
to suppress the syntax error (preparser errors don't go through Isolate, and
having both stack overflow and a syntax error present is handled correctly by
PreParserApi::PreParse).

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoHandle flooring division in LCodeGen::DoDivByConstI on ARM, too.
svenpanne@chromium.org [Wed, 12 Mar 2014 14:06:26 +0000 (14:06 +0000)]
Handle flooring division in LCodeGen::DoDivByConstI on ARM, too.

We should really split up the Lithium instruction, but this will be
done in some future cleanup CL.

Removed some "const"s for local variables on the way, they don't really
help us much and just clutter up the code.

R=ulan@chromium.org

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

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

10 years agoMove most scanner buffer accesses into scanner.
dcarney@chromium.org [Wed, 12 Mar 2014 14:03:25 +0000 (14:03 +0000)]
Move most scanner buffer accesses into scanner.

R=marja@chromium.org

BUG=

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

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

10 years agoDon't fast RemoveArrayHoles in case of arguments arrays.
verwaest@chromium.org [Wed, 12 Mar 2014 13:42:18 +0000 (13:42 +0000)]
Don't fast RemoveArrayHoles in case of arguments arrays.

BUG=351645
LOG=n
R=mstarzinger@chromium.org

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

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

10 years ago350884: KeyedStoreIC miss didn't handle a transitioning case.
mvstanton@chromium.org [Wed, 12 Mar 2014 13:35:40 +0000 (13:35 +0000)]
350884: KeyedStoreIC miss didn't handle a transitioning case.

It's possible to get a transitioned map with no links to the origin
map if it's a shared map. Code in KeyedStoreIC::StoreElementStub
assumes it can check if two maps are in the same family by
traversing the transition array. Long term, the "family" relationship
should be recognized with the Normalized Map Cache. For now, allow
the IC to remain monomorphic in this case if the receiver map and
the previous receiver map are the same.

Filed V8 issue 3210 (https://code.google.com/p/v8/issues/detail?id=3210)
to track the issue with the Normalized Map Cache.

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

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

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

10 years agoFastNewClosureStub failed to load the cached literals array.
mvstanton@chromium.org [Wed, 12 Mar 2014 13:29:42 +0000 (13:29 +0000)]
FastNewClosureStub failed to load the cached literals array.

Also, less efficient code was generated because of negative keyed load
offsets. I changed this to benefit from HLoadKeyed dehoisting.

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

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

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

10 years agoParser: fix confusion when there are multiple errors to report.
marja@chromium.org [Wed, 12 Mar 2014 13:27:32 +0000 (13:27 +0000)]
Parser: fix confusion when there are multiple errors to report.

(For more details, see bug.)

The problem occurs when a parsing function hits a stack overflow, but still
manages to return something meaningful. This happens because the call to
ParserBase::Next() which hits the stack overflow will still return a valid token
(the last token which we had already read), and only the next call after the
stack overflow will return INVALID. So for example ParseIdentifier will still
return a valid identifier even if we've hit a stack overflow.

In this case, some upper recursion level might detect and report a valid syntax
error, and then we bail out of the recursive descent because of the syntax
error. So we end up having both stack overflow and a syntax error present. When
we try to report the stack overflow after parsing (e.g., end of ParseLazy), the
isolate already has the syntax error as a pending exception, and a CHECK fails.

This fix suppresses the syntax errors in when a stack overflow has been
detected.

BUG=351335
LOG=N
R=mstarzinger@chromium.org

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

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

10 years agoUse MigrateToMap instead of set_map to update the map of a JSObject.
verwaest@chromium.org [Wed, 12 Mar 2014 13:18:27 +0000 (13:18 +0000)]
Use MigrateToMap instead of set_map to update the map of a JSObject.
This is necessary to guarantee correct representation usage.
Some unhandlified code still needs to be handlified before we can push this
through fully.

BUG=
R=ishell@chromium.org

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

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

10 years agoFix nosnap serialization tests
jkummerow@chromium.org [Wed, 12 Mar 2014 13:13:13 +0000 (13:13 +0000)]
Fix nosnap serialization tests

R=dslomov@google.com

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

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

10 years agoPrepare push to trunk. Now working on version 3.25.9.
dslomov@chromium.org [Wed, 12 Mar 2014 13:09:00 +0000 (13:09 +0000)]
Prepare push to trunk.  Now working on version 3.25.9.

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

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

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

10 years agoRevert "Implement PersistentValueMap, a map that stores UniquePersistent values."
dslomov@chromium.org [Wed, 12 Mar 2014 11:40:40 +0000 (11:40 +0000)]
Revert "Implement PersistentValueMap, a map that stores UniquePersistent values."
and "Win64 fix for r19833."

This reverts commits r19833 and r19837 for breaking Windows tests
(test-api/PersistentValueMap).

TBR=vogelheim@chromium.org,dcarney@chromium.org

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

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

10 years agoSuppress error handling for test coverage in push and merge scripts.
machenbach@chromium.org [Wed, 12 Mar 2014 10:45:23 +0000 (10:45 +0000)]
Suppress error handling for test coverage in push and merge scripts.

- This adds a suppression of lines concerning error handling for the test coverage analysis
- Fixes also calling push-to-trunk from auto-roll

TEST=tools/push-to-trunk/script_test.py
TBR=ulan@chromium.org

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

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

10 years agoWin64 fix for r19833.
dcarney@chromium.org [Wed, 12 Mar 2014 10:33:40 +0000 (10:33 +0000)]
Win64 fix for r19833.

R=dcarney@chromium.org
BUG=

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

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

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

10 years agoFix HIsSmiAndBranch::KnownSuccessorBlock() by deleting it
jkummerow@chromium.org [Wed, 12 Mar 2014 10:14:29 +0000 (10:14 +0000)]
Fix HIsSmiAndBranch::KnownSuccessorBlock() by deleting it

Constants can still change their representation, so we cannot determine reachability of blocks based on their Smi-ness

BUG=chromium:351320
LOG=y
R=yangguo@chromium.org

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

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

10 years agoFix handling of polymorphic array accesses with constant index
danno@chromium.org [Wed, 12 Mar 2014 10:11:38 +0000 (10:11 +0000)]
Fix handling of polymorphic array accesses with constant index

R=jkummerow@chromium.org
BUG=chromium:351319
LOG=Y

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

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

10 years agoFix lazy deopt after tagged binary ops
jkummerow@chromium.org [Wed, 12 Mar 2014 09:59:36 +0000 (09:59 +0000)]
Fix lazy deopt after tagged binary ops

Also add policing code to ensure that optimized frames can in fact lazily deopt
at their respective current PC when we patch them for lazy bailout.

BUG=chromium:350434
LOG=y
R=jarin@chromium.org

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

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

10 years agoImplement PersistentValueMap, a map that stores UniquePersistent values.
dcarney@chromium.org [Wed, 12 Mar 2014 09:11:25 +0000 (09:11 +0000)]
Implement PersistentValueMap, a map that stores UniquePersistent values.
This is preparatory work to get rid of UnsafePersistent in blink.

Related blink changes are here: https://codereview.chromium.org/180363004/

This patch is largely based on https://codereview.chromium.org/175503003/, with some methods added to support the blink change mentioned above.

BUG=
R=dcarney@chromium.org, svenpanne@chromium.org

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

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

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