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
machenbach@chromium.org [Wed, 12 Mar 2014 07:39:56 +0000 (07:39 +0000)]
Don't use a temp file for changelog in push-to-trunk.
This is part of getting rid of the ChangeLog on bleeding_edge and directly modifying it on trunk.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
195183003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19832
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 12 Mar 2014 06:49:28 +0000 (06:49 +0000)]
Fixed range analysis for HMathFloorOfDiv.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
195133002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19831
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 12 Mar 2014 06:46:55 +0000 (06:46 +0000)]
Revert "Don't need a temp register for StoreKeyed double"
This reverts commit r19829 for breaking the mozilla tests.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
196343003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19830
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
haitao.feng@intel.com [Wed, 12 Mar 2014 02:21:03 +0000 (02:21 +0000)]
Don't need a temp register for StoreKeyed double
save a gap move
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
174693002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19829
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Tue, 11 Mar 2014 22:16:56 +0000 (22:16 +0000)]
MIPS: Eliminate extended mode, and other modes clean-up
Port r19800 (4402a23)
Original commit message:
- Merge LanguageMode and StrictModeFlag enums
- Make harmony-scoping depend only on strict mode
- Free some bits on the way
- Plus additional clean-up and renaming
BUG=
Review URL: https://codereview.chromium.org/
195693002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19828
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Tue, 11 Mar 2014 21:46:26 +0000 (21:46 +0000)]
Revert "Pass a Code object to Assembler::(set_)target_address_at for use by ool constant pool."
This reverts r19825 for breaking ia32.debug checks.
Original Review URL: https://codereview.chromium.org/
183803022
Update serializer to be able to deal with ool constant pool.
TBR=ulan@chromium.org
Review URL: https://codereview.chromium.org/
195373004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19827
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Tue, 11 Mar 2014 20:52:00 +0000 (20:52 +0000)]
Update serializer to be able to deal with ool constant pool.
This CL depends on CL https://codereview.chromium.org/
179813005/ landing first.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
190883002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19826
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Tue, 11 Mar 2014 20:31:23 +0000 (20:31 +0000)]
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().
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
183803022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19825
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Tue, 11 Mar 2014 20:28:28 +0000 (20:28 +0000)]
MIPS: Mode clean-up pt 1: rename classic/non-strict mode to sloppy mode.
Port r19799 (8fb4c93)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
194613005
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19824
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Tue, 11 Mar 2014 20:17:02 +0000 (20:17 +0000)]
Clean up ARM mov 32bit immediate code in preparation for out of line constant pool.
R=rodolph.perfetta@arm.com, ulan@chromium.org
Review URL: https://codereview.chromium.org/
138503002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19823
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Tue, 11 Mar 2014 19:04:14 +0000 (19:04 +0000)]
MIPS: Cleanup some of the range uses in ModI/DivI.
Port r19796 (2b8ff32)
BUG=v8:3204
LOG=y
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
194863004
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19822
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 11 Mar 2014 18:36:15 +0000 (18:36 +0000)]
Revert "Reland "Enable Object.observe by default""
This reverts commit r19736 for breaking browser_tests on ChromiumOS.
TBR=rossberg@chromium.org,rafaelw@chromium.org
Review URL: https://codereview.chromium.org/
195603002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19819
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 11 Mar 2014 18:15:44 +0000 (18:15 +0000)]
Revert "Enable Object.observe by default"
This reverts commit r19734 for breeaking ChromiumOS browser tests.
'OpenSpecialTypes/FileManagerBrowserTest.Test/3' started to time out,
bisecting the roll led to this change.
http://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%282%29/builds/22224
TBR=rafaelw@chromium.org,rossberg@chromium.org
BUG=v8:2409
LOG=Y
Review URL: https://codereview.chromium.org/
195123005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19816
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
baptiste.afsa@arm.com [Tue, 11 Mar 2014 17:31:40 +0000 (17:31 +0000)]
A64: Tidy up a few TODOs.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
195363003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19815
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
m.m.capewell@googlemail.com [Tue, 11 Mar 2014 17:12:34 +0000 (17:12 +0000)]
A64: UseRegisterAtStart for rhs of LMulS
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
191283002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19814
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 11 Mar 2014 16:46:35 +0000 (16:46 +0000)]
Fix issue with getOwnPropertySymbols and hidden properties
When getting the symbols of an object we need to ignore the hidden
properties of the prototype object since the hidden properties are
represented by a single string key and we will not include that hidden
string in the found names.
BUG=350864
LOG=Y
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
192883005
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19813
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Tue, 11 Mar 2014 16:30:47 +0000 (16:30 +0000)]
Move ParseArguments to ParserBase and add tests.
Notes:
- PreParser didn't produce "too_many_arguments"; now it does.
- The argument count in the error message was wrong; fixed it.
BUG=v8:3126
LOG=N
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
194503004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19812
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 11 Mar 2014 16:17:20 +0000 (16:17 +0000)]
API support for promises
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
194663003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19811
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 11 Mar 2014 15:50:41 +0000 (15:50 +0000)]
Fix kraken/oscillator performance regression after r19635.
Evict previously optimized code after new optimization.
BUG=v8:3202
LOG=N
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
189263009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19810
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
baptiste.afsa@arm.com [Tue, 11 Mar 2014 15:50:01 +0000 (15:50 +0000)]
A64: Tidy up a couple of TODOs.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
189883006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19809
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 11 Mar 2014 15:46:56 +0000 (15:46 +0000)]
Invalidate OS-specific datetime cache on configuration change notification
When V8 is informed that the system's date time configuration has changed,
it should also drop its OS-specific caches of time zone information
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
193933002
Patch from James Robinson <jamesr@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19808
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
m.m.capewell@googlemail.com [Tue, 11 Mar 2014 15:46:31 +0000 (15:46 +0000)]
A64: Improve constraints for StoreNamedField
Improve register constraints for cases that don't need write barriers, and
remove TODOs.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
189373006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19807
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
baptiste.afsa@arm.com [Tue, 11 Mar 2014 15:41:27 +0000 (15:41 +0000)]
A64: Debug code should assert on unexpected situation.
R=jochen@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
184533002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19806
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Tue, 11 Mar 2014 15:40:41 +0000 (15:40 +0000)]
Move ParseObjectLiteral to ParserBase.
BUG=v8:3126
LOG=N
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
192993002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19805
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Tue, 11 Mar 2014 15:12:47 +0000 (15:12 +0000)]
fix bad access check check
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
195163002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19804
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
baptiste.afsa@arm.com [Tue, 11 Mar 2014 15:03:36 +0000 (15:03 +0000)]
A64: Add and use a double register which holds the 0.0 value.
This patch also modify the crankshaft allocatable double registers because
we need this register to be callee saved to be efficient.
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/
190663009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19803
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 11 Mar 2014 14:59:19 +0000 (14:59 +0000)]
Revert "Enable concurrent sweeping."
This reverts commit r19792 for breaking ARM tests.
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
194553003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19802
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 11 Mar 2014 14:56:42 +0000 (14:56 +0000)]
Work around Windows name clobbering
TBR=dslomov@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
194753006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19801
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 11 Mar 2014 14:41:22 +0000 (14:41 +0000)]
Eliminate extended mode, and other modes clean-up
- Merge LanguageMode and StrictModeFlag enums
- Make harmony-scoping depend only on strict mode
- Free some bits on the way
- Plus additional clean-up and renaming
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
181543002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19800
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 11 Mar 2014 14:39:08 +0000 (14:39 +0000)]
Mode clean-up pt 1: rename classic/non-strict mode to sloppy mode
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
177683002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19799
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 11 Mar 2014 13:34:01 +0000 (13:34 +0000)]
Fix bug in constant folding object comparisons.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
195063002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19798
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 11 Mar 2014 11:57:27 +0000 (11:57 +0000)]
Cleanup some of the range uses in ModI/DivI.
BUG=v8:3204
LOG=y
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
191293013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19796
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 11 Mar 2014 11:56:04 +0000 (11:56 +0000)]
Updated constants.
No idea when they got out-of-sync...
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
194953002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19795
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 11 Mar 2014 11:53:40 +0000 (11:53 +0000)]
Do not run AddInstructionChangesNewSpacePromotion test in release mode.
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
194663004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19794
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 11 Mar 2014 11:38:53 +0000 (11:38 +0000)]
Revert "Mark mjsunit/string-case as flaky."
This reverts r19760 since the issue has been fixed in r19755.
R=dslomov@google.com, dslomov@chromium.org
BUG=v8:3208
LOG=N
Review URL: https://codereview.chromium.org/
194823002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19793
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 11 Mar 2014 11:37:53 +0000 (11:37 +0000)]
Enable concurrent sweeping.
BUG=
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/
166683002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19792
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 11 Mar 2014 11:37:02 +0000 (11:37 +0000)]
Do not overwrite already optimized code.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
189603006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19791
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 11 Mar 2014 11:36:55 +0000 (11:36 +0000)]
Make sure tagged binary op instructions change new space promotion.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
194883003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19790
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 11 Mar 2014 10:53:13 +0000 (10:53 +0000)]
Silence Win warnings
TBR=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
194893002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19789
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 11 Mar 2014 10:41:18 +0000 (10:41 +0000)]
PromiseCoerce should ignore primitive values.
PromiseCource(x) should return "not a thenable" if Type(x) is not Object
even if x.then exists.
BUG=347095
LOG=Y
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
194403002
Patch from Yutaka Hirano <yhirano@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19788
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Tue, 11 Mar 2014 10:30:10 +0000 (10:30 +0000)]
Fix for 350887: CHECK failure on new_length->IsSmi()
In ElementsAccessorBase::SetLengthImpl for a dictionary array, we try to
optimize setting array length if the new length is a smi. However, we
refuse to set an array length to less than the index of the highest
non-configurable array element. This index may be outside of smi range.
Handle this case accordingly.
BUG=350887
LOG=N
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
194803002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19787
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 11 Mar 2014 10:28:38 +0000 (10:28 +0000)]
Types: cache lub bitset to avoid heap access
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
186743002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19786
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Tue, 11 Mar 2014 09:35:24 +0000 (09:35 +0000)]
Fix compilation on win after r19784
TBR=dcarney@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
194703002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19785
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Tue, 11 Mar 2014 09:04:14 +0000 (09:04 +0000)]
Use a per-isolate cache for the date object JS bits
The old per-context cache made it difficult for the embedder to notify
v8 of date/time configuration changes. The embedder had to enter all
contexts for the isolate and notify v8 for each context.
With the new per-isolate cache, the embedder only needs to notify v8
once per isolate.
BUG=348856
LOG=y
R=dcarney@chromium.org, ulan@chromium.org
TEST=cctest/test-date
Review URL: https://codereview.chromium.org/
189913023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19784
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Tue, 11 Mar 2014 08:52:48 +0000 (08:52 +0000)]
Add MacroAssembler::Move(reg, immediate) on IA32.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
188463003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19780
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 11 Mar 2014 08:14:38 +0000 (08:14 +0000)]
Really skip dead blocks in GVN
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
194413002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19779
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 11 Mar 2014 07:52:05 +0000 (07:52 +0000)]
Prepare push to trunk. Now working on version 3.25.8.
R=dslomov@chromium.org
TBR=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
194493002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19776
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
haitao.feng@intel.com [Tue, 11 Mar 2014 02:55:06 +0000 (02:55 +0000)]
Refactor lithium operand declaration a little bit.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
186543002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19775
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Mon, 10 Mar 2014 19:50:36 +0000 (19:50 +0000)]
MIPS: Reland "Handle non-power-of-2 divisors in division-like operations".
Port r19749 (4880ed9)
Original commit message:
Fixed the flooring div bug and added a test case.
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
192743006
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19774
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Mon, 10 Mar 2014 19:05:43 +0000 (19:05 +0000)]
Differentate between code target pointers and heap pointers in constant pools.
Separate out code target pointers from normal heap pointer entries in constant
pool arrays so that the GC can correctly relocate these pointers using the
appropriate mechanism.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
183883011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19773
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Mon, 10 Mar 2014 18:47:57 +0000 (18:47 +0000)]
Special case the recording of constant pool entries in the slot buffer.
This CL enables RelocInfo pointers which live in the constant pool to be treated
as normal pointers by the slot buffer, avoiding the requirement of creating fake
RelocInfo objects during UpdateSlots() in order to update these slots. This
is possible because constant pool entries are just pointers and don't require
the RelocInfo machinary to be updated.
EmbeddedObject constant pool entries can be added untyped to the slot buffer,
while code targets are still typed in order to correctly update the target
address based on the relocated code object.
Note: this is required in order to enable OOL constant pool support on Arm, but
should be benifitial for the current inline constant pool used by Arm code.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
179813005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19772
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Mon, 10 Mar 2014 18:44:19 +0000 (18:44 +0000)]
Deal with filler object map pointers in the ool constant pool correctly.
This CL updates
StoreBuffer::FindPointersToNewSpaceOnPage such that it skips constant pool array objects. Constant Pool Arrays should never have pointers to the new space and might contain pointers to the FreeSpace map (e.g., due to code
being generated which needs to do a map-check on a FreeSpace object) which would incorrectly treated as a filler object if processed by FindPointersToNewSpaceOnPage().
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
183553003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19771
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jacob.bramley@arm.com [Mon, 10 Mar 2014 16:25:15 +0000 (16:25 +0000)]
A64: Use a scope utility to allocate scratch registers.
This replaces Tmp0() and Tmp1() with a more flexible scratch register
pool. A scope-based utility can temporarily acquire registers from this
pool as needed.
We no longer have to worry about whether to use Tmp0(), Tmp1() or
something else; the scope can just get the next available scratch
register.
BUG=
R=jochen@chromium.org, rmcilroy@chromium.org
Review URL: https://codereview.chromium.org/
164793003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19768
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Mon, 10 Mar 2014 16:22:39 +0000 (16:22 +0000)]
MIPS: Allowed keyed store callbacks ic generation.
Port r19744 (b05fa4a)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
191443007
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19767
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Mon, 10 Mar 2014 16:05:29 +0000 (16:05 +0000)]
Revert "Check and clear date cache in DateCurrentTime, DateLocalTimezone and getTimezoneOffset."
This reverts commit r19711 for breaking WebKit tests.
http://build.chromium.org/p/tryserver.chromium/builders/win_rel/builds/278551/steps/content_browsertests/logs/AccessibilityMessagesQueueWhileSwappedOut
TBR=ulan@chromium.org
Review URL: https://codereview.chromium.org/
192903002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19765
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 10 Mar 2014 15:52:10 +0000 (15:52 +0000)]
Fix assertion in RegExp parser to correctly expect stack overflow.
Advance() always checks for stack overflow. If stack indeed overflowed,
current() would hold the kEndMarker. ParseOctalLiteral does not expect
this in the assertion, which causes assertion failure.
R=mvstanton@chromium.org
BUG=350865
LOG=N
Review URL: https://codereview.chromium.org/
192773002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19764
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Mon, 10 Mar 2014 15:19:20 +0000 (15:19 +0000)]
Parser & preparser unification: make the ParseFunctionLiteral APIs the same.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
190853011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19763
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00