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