danno@chromium.org
57525ef893
Store transitioned JSArray maps in global context
...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9073007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-26 21:47:57 +00:00
erik.corry@gmail.com
448b6bbc41
Flush number string cache on GC (bug 1605). Also start with a small
...
number string cache and only grow it if needed, which will be useful
for saving boot time memory use.
This is a second try for https://chromiumcodereview.appspot.com/923502
after fixing an unrelated stack overflow issue.
Review URL: https://chromiumcodereview.appspot.com/9169080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-26 11:32:01 +00:00
erik.corry@gmail.com
248adeb110
Revert 10502 (smaller number string cache) due to test failures.
...
Review URL: https://chromiumcodereview.appspot.com/9113060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 15:17:26 +00:00
vegorov@chromium.org
67d72eab45
When preparing heap for breakpoints make sure not to flush away non-optimized code for inlined functions.
...
Debug::PrepareForBreakPoints was not fully populating active_functions list.
R=erik.corry@gmail.com
TEST=test/mjsunit/regress/regress-debug-code-recompilation.js
Review URL: https://chromiumcodereview.appspot.com/9290013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 15:11:59 +00:00
erik.corry@gmail.com
a49c8a19ee
Flush number string cache on GC (bug 1605). Also start with a small
...
number string cache and only grow it if needed, which will be useful
for saving boot time memory use.
Review URL: https://chromiumcodereview.appspot.com/9235029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 14:27:58 +00:00
mstarzinger@chromium.org
4b913965a9
Fix responsiveness of high promotion mode heuristics.
...
This changes the heuristics for the high promotion mode to be checked
on all GCs (including scavenges), so that changes in the applications
behavior are recognized earlier. It also fixes miscalculations in the
survival counter and rate which caused heuristics to fail completely.
R=vegorov@chromium.org
BUG=v8:1899
Review URL: https://chromiumcodereview.appspot.com/9196003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 13:46:42 +00:00
erik.corry@gmail.com
83b439a0f9
Further robustify the keyed lookup cache against unlucky hash
...
seeds. This change is performance neutral on most snapshot
VM builds, but provides a big improvement on string-fasta
on around 5% of builds.
Review URL: https://chromiumcodereview.appspot.com/9193015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-23 16:18:10 +00:00
vegorov@chromium.org
8c776261c2
Limit number of loop iterations in Heap::ReserveSpace.
...
This allows to avoid infinite loops in pathalogical cases e.g. when OS refuses to give new pages to V8.
R=erik.corry@gmail.com
BUG=99027
Review URL: https://chromiumcodereview.appspot.com/8286020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-20 17:21:26 +00:00
erik.corry@gmail.com
9672a04de2
Fix keyed lookup cache to have 2 entried per bucket instead
...
of one in order to reduce collisions.
Review URL: https://chromiumcodereview.appspot.com/9269004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-20 13:43:21 +00:00
jkummerow@chromium.org
3a4bed8a7e
Only clear monomorphic ICs on GC after Context exit
...
Review URL: https://chromiumcodereview.appspot.com/9255014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-18 16:16:11 +00:00
vegorov@chromium.org
3fd6ba109e
When adjusting page's live bytes counter from the mutator adjust owners unswept free bytes counter.
...
R=mstarzinger@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9178021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-18 09:21:07 +00:00
yangguo@chromium.org
6d0d6a5695
Recursion limit for one-char string replace and retire String::kMinNonFlatLength.
...
TEST=mjsunit/string-replace-one-char.js
Review URL: https://chromiumcodereview.appspot.com/9231017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-17 14:29:17 +00:00
erik.corry@gmail.com
a02dbe4258
Revert 10413-10416 initial memory use reduction due to
...
test failures.
Review URL: http://codereview.chromium.org/9178014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-17 13:13:55 +00:00
erik.corry@gmail.com
3403e76682
Reduce boot-up memory use of V8.
...
Reduce signal sender thread stack size to 32k.
Commit partial old-space pages to reduce minimum memory use.
This is a rebase of http://codereview.chromium.org/9017009/
Review URL: http://codereview.chromium.org/9179012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-17 11:38:25 +00:00
yangguo@chromium.org
a97cebe292
Fast path for string.replace that replaces a single character by a string.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/9213002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-16 15:21:38 +00:00
erik.corry@gmail.com
70da367f6b
More spelling changes.
...
Review URL: http://codereview.chromium.org/9231009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-16 12:38:59 +00:00
erik.corry@gmail.com
40a433c9e0
Split NumberDictionary into a randomly seeded and an unseeded
...
version. We don't want to randomize the stub cache.
Review URL: http://codereview.chromium.org/9174023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-16 09:44:35 +00:00
yurys@chromium.org
ebb75c23a1
Provide a way for iterating through all external strings referenced from the JS heap
...
Review URL: http://codereview.chromium.org/9139018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-13 15:14:45 +00:00
erik.corry@gmail.com
b3e0761e38
Cosmetic changes ("set up" is a verb, "setup" is a noun).
...
Review URL: http://codereview.chromium.org/9139051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-13 13:09:52 +00:00
svenpanne@chromium.org
73f2f5db68
Use a separate new type AccessorPair for JavaScript callbacks instead of a FixedArray of length 2
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 16:11:33 +00:00
erik.corry@gmail.com
dc9910f4a4
Minor cleanups of numeric seeded hashing patch.
...
Review URL: http://codereview.chromium.org/9155010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 13:24:18 +00:00
erik.corry@gmail.com
81a0271004
Randomize the seed used for string hashing. This helps guard against
...
CPU-eating DOS attacks against node.js servers. Based on code from
Bert Belder. This version only solves the issue for those that compile
V8 themselves or those that do not use snapshots. A snapshot-based
precompiled V8 will still have predictable string hash codes.
Review URL: http://codereview.chromium.org/9086006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-04 15:12:15 +00:00
ulan@chromium.org
c2109cdd1e
Uncommit free pages in all spaces on low memory notification.
...
BUG=v8:1669
TEST=
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/8969017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-21 08:51:59 +00:00
ulan@chromium.org
76b48da7ef
Guard against undefined fields in global context.
...
BUG=v8:1860
TEST=
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/8917014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-13 14:20:03 +00:00
ricow@chromium.org
ec66c36fbf
Reland 10216 - Optimize the equality check case of ICCompare stubs.
...
Now with arm and x64 support. Additionally, added default unreachable case to switch statement in CompareIC::TargetState to make win and mac compilers happy.
Reviewer guide:
This is an exact copy of 10216 except:
src/arm/*
src/x64/*
src/ic.cc (added default case to swith in CompareIC::TargetState)
Review URL: http://codereview.chromium.org/8872060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-09 09:26:14 +00:00
ricow@chromium.org
174532d23f
Revert 10216 Optimize the equality check case of ICCompare stubs.
...
Missing arm and x64 implementations
Review URL: http://codereview.chromium.org/8883023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-08 17:28:44 +00:00
ricow@chromium.org
1028cf2631
Optimize the equality check case of ICCompare stubs.
...
This includes specialcasing the generation when we know that the maps
of the two objects are the same. In addition, a new specialized
compare ic known objects cache is created.
The reason for the cache is that we need to have access to the stub
code from the roots; if we do not, the GC will collect the stub. In
this specialized case we use the map pointer as key in the cache, and
we always do a lookup before generating code. Actually hitting
something in the cache will happen very rarely, but we could
potentially overwrite an existing stub, which again will lead to the
GC collecting this old stub (even if it is referenced from other code
objects)
Review URL: http://codereview.chromium.org/8520006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-08 17:17:21 +00:00
erik.corry@gmail.com
c5c32e18ad
More removal of write barriers and a rename to a less scary name.
...
Review URL: http://codereview.chromium.org/8816020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-07 08:43:18 +00:00
mikhail.naganov@gmail.com
dae713f0ad
Reapply r10158: Distinguish weak references in heap snapshots, group GC roots.
...
[Fixed the bug revealed by the Win32 bot]
Several changes to better organize snapshot data:
1. Provide information about weak references.
2. Group (GC roots) children.
3. Prettify debug snapshot printing.
BUG=v8:1832
TEST=cctest/test-heap-profiler/*Weak*
TBR=vitalyr@chromium.org
Initial CL: http://codereview.chromium.org/8716009
Review URL: http://codereview.chromium.org/8822019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-06 17:41:47 +00:00
ulan@chromium.org
cda5b1a53f
Use the old handler for low frequency idle notifications.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/8818005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-06 14:30:21 +00:00
mikhail.naganov@gmail.com
a0c8ea00db
Revert r10158 "Distinguish weak references in heap snapshots, group GC roots."
...
Heap profiler tests fail on Win32, need to investigate.
This reverts commit b5374ebd92c11ac4aae16b4e31e54166d406e490.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-05 17:21:55 +00:00
mikhail.naganov@gmail.com
857aa09772
Distinguish weak references in heap snapshots, group GC roots.
...
Several changes to better organize snapshot data:
1. Provide information about weak references.
2. Group (GC roots) children.
3. Prettify debug snapshot printing.
BUG=v8:1832
TEST=cctest/test-heap-profiler/*Weak*
Review URL: http://codereview.chromium.org/8716009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-05 16:35:57 +00:00
erik.corry@gmail.com
090be8bf15
Reduce minimum memory use on 64 bit to one page per semispace.
...
Review URL: http://codereview.chromium.org/8774045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-02 14:19:53 +00:00
erik.corry@gmail.com
0d7380da55
Let store buffer start out small for a 1Mbyte saving in boot
...
memory use (2Mbyte on x64).
Review URL: http://codereview.chromium.org/8776032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-02 14:08:12 +00:00
ulan@chromium.org
fbef117203
Use the old idle notification handler when context is disposed.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/8770003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-01 12:17:19 +00:00
ulan@chromium.org
59897dbe44
Fix compile errors on Windows and Mac introduced by r10093.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/8746021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-30 16:55:55 +00:00
ulan@chromium.org
8dc728126e
Start incremental marking on idle notification.
...
BUG=v8:1458
TEST=cctest/test-api/IdleNotification*
Review URL: http://codereview.chromium.org/8519002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-30 11:13:36 +00:00
erik.corry@gmail.com
9c18742dd6
Only sweep one page eagerly unless we are running out of space.
...
Limit the number of pages that are compacted in a given GC.
Review URL: http://codereview.chromium.org/8692002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-29 11:56:14 +00:00
vegorov@chromium.org
23c15e495c
When scavenging update source slot before migrating object it points to.
...
Source slot might belong to a dead old object and we might allocate a new object over it when evacuating a new space object this slot points to. In this case if we update slot after migrating object we will write into migrated object.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/8698022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-29 10:02:38 +00:00
mstarzinger@chromium.org
c501fd9c45
Implement high promotion mode for new space.
...
This mode drastically decreases pause times by limiting maximum capacity
of the young generation when mutators generate many long-lived objects.
It shrinks new space back to the initial capacity and keeps it at that
capacity until survival rate decreases again.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/8702006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-25 14:41:38 +00:00
keuchel@chromium.org
1e9a7267ab
Introduce extended mode.
...
This CL introduces a third mode next to the non-strict
(henceforth called 'classic mode') and 'strict mode'
which is called 'extended mode' as in the current
ES.next specification drafts. The extended mode is based on
the 'strict mode' and adds new functionality to it. This
means that most of the semantics of these two modes
coincide.
The 'extended mode' is entered instead of the 'strict mode'
during parsing when using the 'strict mode' directive
"use strict" and when the the harmony-scoping flag is
active. This should be changed once it is fully specified how the 'extended mode' is entered.
This change introduces a new 3 valued enum LanguageMode
(see globals.h) corresponding to the modes which is mostly
used by the frontend code. This includes the following
components:
* (Pre)Parser
* Compiler
* SharedFunctionInfo, Scope and ScopeInfo
* runtime functions: StoreContextSlot,
ResolvePossiblyDirectEval, InitializeVarGlobal,
DeclareGlobals
The old enum StrictModeFlag is still used in the backend
when the distinction between the 'strict mode' and the 'extended mode' does not matter. This includes:
* SetProperty runtime function, Delete builtin
* StoreIC and KeyedStoreIC
* StubCache
Review URL: http://codereview.chromium.org/8417035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-24 15:17:04 +00:00
yangguo@chromium.org
c2514c8c8e
Refactor Heap::SymbolMapForString to use switch/case.
...
Review URL: http://codereview.chromium.org/8683001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-23 13:31:26 +00:00
yangguo@chromium.org
2055f4195e
Recommit introducing short external strings.
...
Review URL: http://codereview.chromium.org/8677006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-23 13:08:28 +00:00
yangguo@chromium.org
922aee5a02
Rolling back r10049 due to webkit failures.
...
Review URL: http://codereview.chromium.org/8681007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-23 10:41:12 +00:00
yangguo@chromium.org
21edc7c30b
Introduce short external strings without pointer cache.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/8635011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-23 09:58:58 +00:00
yangguo@chromium.org
5a82d78948
Add pointer cache field to external string for access in generated code.
...
TEST=test/mjsunit/string-externalize.js
Review URL: http://codereview.chromium.org/8513010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-17 17:05:12 +00:00
ricow@chromium.org
22db7b1eaf
Use safe version (i.e. using write barrier) of set_map in ReinitializeJSReceiver.
...
We pass in the object that we set the map on.
Review URL: http://codereview.chromium.org/8486005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-16 10:40:50 +00:00
erik.corry@gmail.com
2792e9ed79
Elide superfluous write barriers.
...
Review URL: http://codereview.chromium.org/8468005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-15 14:01:02 +00:00
kmillikin@chromium.org
e49d533b50
Reapply "Add a level of indirection to exception handler addresses."
...
Original commit message:
Add a level of indirection to exception handler addresses.
To support deoptimization of exception handlers, the handler address in the
stack is converted to a pair of code object and an index into a separate
table of code offsets. The index part is invariant under deoptimization.
The index is packed into the handler state field so that handler size does
not change.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8538011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-11 13:48:14 +00:00
kmillikin@chromium.org
66ff8828a0
Revert "Add a level of indirection to exception handler addresses."
...
This reverts r9975. This change broke (at least) snapshots on x64.
TBR=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8540005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-11 13:13:35 +00:00
kmillikin@chromium.org
1635117db9
Add a level of indirection to exception handler addresses.
...
To support deoptimization of exception handlers, the handler address in the
stack is converted to a pair of code object and an index into a separate
table of code offsets. The index part is invariant under deoptimization.
The index is packed into the handler state field so that handler size does
not change.
R=vegorov@chromium.org ,fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8462010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-11 12:51:42 +00:00
mstarzinger@chromium.org
95eda367f1
Fix mistake in comment for last revision.
...
TBR=vegorov@chromium.org
Review URL: http://codereview.chromium.org/8536011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-11 11:50:05 +00:00
mstarzinger@chromium.org
9dcf002f31
Fix filtering of store buffer for large object pages.
...
Our Heap::FreeQueuedChunks generates fake inner chunks in large object
pages queued for freeing, so that StoreBuffer::Filter can recognize them
as pages to be freed. This also relies on MemoryChunk::Contains to work
properly, which is why the size field needs to be initialized as well.
R=vegorov@chromium.org
BUG=v8:1817
TEST=mozilla/js1_5/Regress/regress-360969-05
Review URL: http://codereview.chromium.org/8536009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-11 09:45:12 +00:00
vegorov@chromium.org
b8dc77ab9a
Fix Heap::Shrink to ensure that it does not free pages that are still in use.
...
Heap::Shrink is called from EnsureFromSpaceIsCommitted at the very start of the GC. At this moment live bytes counts on pages are in inconsistent states. Some pages might have been already swept but have not been yet reached by an incremental marker (or incremental marker is not in progress) and have live bytes count set to 0. Thus we can't rely only on LiveBytes to determine which pages can be released to the OS.
R=mstarzinger@chromium.org
BUG=100414
Review URL: http://codereview.chromium.org/8507038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-10 13:24:00 +00:00
vegorov@chromium.org
3bb1da0ff0
Fix Win64 compilation problems introduced by r9932.
...
R=yangguo@chromium.org
Review URL: http://codereview.chromium.org/8505019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-09 15:40:08 +00:00
vegorov@chromium.org
9f50147031
Ensure that promotion queue does not overlap with objects relocated to ToSpace.
...
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/8477030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-09 13:48:43 +00:00
ulan@chromium.org
0d536dec26
Shrink the new space and uncommit marking deque on low memory notification.
...
BUG=v8:1669
TEST=cctest/test-heap/CollectingAllAvailableGarbageShrinksNewSpace
Review URL: http://codereview.chromium.org/8065003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-08 12:42:02 +00:00
mstarzinger@chromium.org
79cadcc947
Fix Harmony sets and maps to allow null as key.
...
This changes the internal convention for marking deleted entries in hash
tables from null_value to the_hole_value, which is consistent with other
usages of the_hole.
R=rossberg@chromium.org ,kmillikin@chromium.org
BUG=v8:1622
TEST=mjsunit/harmony/collections
Review URL: http://codereview.chromium.org/8343056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 14:17:05 +00:00
keuchel@chromium.org
7385fef2ca
Cleanup ScopeInfo and SerializedScopeInfo.
...
Both classes have been merged into a single ScopeInfo
class that implements the functionality from both.
This CL does not adapt the broken gdb-jit interface.
Review URL: http://codereview.chromium.org/8352039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 10:36:55 +00:00
kmillikin@chromium.org
0df252b38b
Handlify the remaining CallStubCompiler functions.
...
Also, handlify functions for loading with interceptors and callbacks.
Remove some unneeded code. Rename Foreign::address() because it
confusingly shadows HeapObject::address() which does something quite
different.
R=vegorov@chromium.org ,ulan@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8391045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-28 12:37:29 +00:00
erik.corry@gmail.com
f6fef24118
Move some heap verification code in under the --verify-heap flag to speed
...
up debug mode tests.
Review URL: http://codereview.chromium.org/8381040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 13:27:46 +00:00
mstarzinger@chromium.org
f193d87ec4
Fix initialization of allocation timeout value.
...
The allocation timeout value should not be initialized to 0, that
triggers a collection at the first allocation which breaks assumptions
for some test cases.
R=ricow@chromium.org
TEST=cctest/test-heap/Iteration
Review URL: http://codereview.chromium.org/8275032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 08:59:34 +00:00
vegorov@chromium.org
af876ee474
Avoid incremental marking write-barrier when constructing descriptor arrays.
...
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/8360004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 10:32:38 +00:00
vegorov@chromium.org
5d72dde98a
Switch UnreachableObjectsFilter to use Marking instead of InstrusiveMarking.
...
GcSafeFindCodeForInnerPointer does not work with intrusive marking now and it is used when roots are iterated.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/8342037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 11:40:16 +00:00
ricow@chromium.org
1c21a9dc6a
Don't allow large object space to grow over the max oldspace limit (fixes issue 1717)
...
Review URL: http://codereview.chromium.org/8345040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 10:15:09 +00:00
lrn@chromium.org
5152d2e0da
Reimplement Function.prototype.bind.
...
Make instanceof work correctly.
BUG=v8:893
Review URL: http://codereview.chromium.org/8199004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 12:44:16 +00:00
erik.corry@gmail.com
1959359ab2
Speed up cloning objects by avoiding a write barrier check.
...
Review URL: http://codereview.chromium.org/8274032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-14 09:20:19 +00:00
erik.corry@gmail.com
1cca5468aa
Remove some asserts to speed up debug mode.
...
Review URL: http://codereview.chromium.org/8256012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 11:50:00 +00:00
kmillikin@chromium.org
fa18fdb206
Add a regression test for an already fixed issue.
...
Add a regression test for Chromium issue 99167.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8222002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 10:46:27 +00:00
vegorov@chromium.org
48ba97a410
Disable short-circuiting of cons-strings when compaction is pending.
...
Otherwise fast path of scavenger gets a bit too complicated and heavy.
R=mstarzinger@chromium.org
Review URL: http://codereview.chromium.org/8217002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 10:35:08 +00:00
fschneider@chromium.org
313f9505b4
Make accessors for oddball objects return Oddball* instead of Object*.
...
Fix a use of the hole value and the undefined value before initialization when
initializing V8. Before we just read a NULL value from them.
Review URL: http://codereview.chromium.org/8130002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 09:21:48 +00:00
lrn@chromium.org
ebc0f85e40
Revert "Added ability to lock strings to prevent their representation or encoding from changing."
...
This reverts r9424.
Review URL: http://codereview.chromium.org/8143018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-05 11:09:34 +00:00
rossberg@chromium.org
2c975d6ae2
Make 'Become' safe for retries.
...
R=ricow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8138003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-05 09:41:54 +00:00
mstarzinger@chromium.org
279356b4b3
Implement shrinking of paged spaces during sweeping.
...
For each paged space we release all but one of the unused pages after
marking (when we know the number of live bytes) but before actually
sweeping it. This is not yet done for lazy swept pages.
R=erik.corry@gmail.com
BUG=v8:1614
Review URL: http://codereview.chromium.org/7891010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-29 12:27:31 +00:00
vegorov@chromium.org
2c1b5c0a9a
Adjust assertion in Heap::IdleNotification.
...
R=mstarzinger@chromium.org
BUG=v8:1715
Review URL: http://codereview.chromium.org/8038045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 12:55:34 +00:00
erik.corry@gmail.com
07ba7ad073
Move the is_pregenerated flag so it does not overlap other flags.
...
Remove the before-or-after InstanceOf stub rule, which was too
subtle and lacked checking ssertions.
Unify the way the CEntry stub is pregenerated so that it is done
in the same way.
Review URL: http://codereview.chromium.org/8065006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 12:23:40 +00:00
lrn@chromium.org
172c27a6ba
Added ability to lock strings to prevent their representation or encoding from changing.
...
Use string locking to ensure consistent representation of source string during JSON parsing.
Review URL: http://codereview.chromium.org/7977001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 11:14:41 +00:00
whesse@chromium.org
2e40bc244a
Add dynamic stack frame alignment to optimized functions with untagged doubles on the stack.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/7976024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-23 13:28:17 +00:00
svenpanne@chromium.org
1311b8f0e2
Improve Hydrogen code for accessing undefined/null/Infinity.
...
In some special (but probably very common) cases we can do better than loading
from a global cell for these global properties by emitting the corresponding
constant directly. This opens up opportunities for further improvements, coming
in a separate CL...
Review URL: http://codereview.chromium.org/7992002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-23 08:00:06 +00:00
ricow@chromium.org
e4c90dc958
GC Cleanup + Set max old generation size to 700MB on ia32 and max executable size to 128 MB (on ia32)
...
Review URL: http://codereview.chromium.org/7993003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 17:10:40 +00:00
rossberg@chromium.org
d938560d59
Implement identity hashes for proxies.
...
R=mstarzinger@chromium.org
BUG=v8:1543,v8:1565
TEST=
Review URL: http://codereview.chromium.org/7754015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 13:54:53 +00:00
fschneider@chromium.org
c6a3422c04
Give each function prototype a fresh copy of the object function map.
...
This avoid unwanted sharing between different function prototypes and in
general should help inlining because constant function properties on one
prototype don't affect other prototypes anymore.
BUG=v8:1716
Review URL: http://codereview.chromium.org/7994001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 12:57:54 +00:00
danno@chromium.org
f48c9f6557
Basic support for tracking smi-only arrays on ia32.
...
Activated by the flag --smi-only-arrays
Currently not crankshaft support, using flag on non-ia32 platforms will lead to write barrier misses and crashes.
BUG=none
TEST=elements_kind.js
Review URL: http://codereview.chromium.org/7901016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 11:30:04 +00:00
rossberg@chromium.org
e04d0b23a8
Make integer indexed properties ("elements") work for proxies.
...
Rehome some Object/JSReceiver/JSObject methods.
R=ricow@chromium.org ,kmillikin@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/7795055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 10:45:37 +00:00
fschneider@chromium.org
fdaadb78d6
Landing for miket@chromium.org: Add an optional source length field to the Extension constructor.
...
Original code review: http://codereview.chromium.org/7889046/
Review URL: http://codereview.chromium.org/7978028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 13:28:09 +00:00
erik.corry@gmail.com
2f1f203bff
Fix pc to code cache so it can cope with a pointer to the start of the code
...
object. Rename it to be the inner pointer to code cache.
Review URL: http://codereview.chromium.org/7969013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 10:08:39 +00:00
yangguo@chromium.org
fdffe67205
Initialize pre-allocated fields of JSObject with undefined.
...
BUG=94873
Review URL: http://codereview.chromium.org/7929001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 10:06:23 +00:00
erik.corry@gmail.com
00eaa669ad
Speed up finding code objects from addresses in asserts. With
...
the new large pages it takes too long to iterate from the start
of the page to find a code object.
Review URL: http://codereview.chromium.org/7974007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 08:32:48 +00:00
vegorov@chromium.org
ac36cb4504
Merge experimental/gc branch to the bleeding_edge.
...
Review URL: http://codereview.chromium.org/7945009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-19 18:36:47 +00:00
rossberg@chromium.org
07469fa5ae
Make function proxies work as constructors.
...
R=kmillikin@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/7628021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-16 12:26:29 +00:00
erik.corry@gmail.com
ab30559fee
Fix some stub calling asserts on x64.
...
Review URL: http://codereview.chromium.org/7922008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-16 11:29:13 +00:00
yangguo@chromium.org
327eb48ce6
Enable slices of external strings (in the tentative implementation).
...
TEST=cctest test-strings/SliceFromExternal, mjsunit/string-slices.js
Review URL: http://codereview.chromium.org/7832002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-15 11:10:01 +00:00
rossberg@chromium.org
e645597aa7
Implement function proxies (except for their use as constructors).
...
Introduce new %Apply native.
Extend Execution::Call to optionally handle receiver rewriting (needed for %Apply).
Fix Function.prototype.bind for functions that have .apply modified.
R=kmillikin@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/7623011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-13 11:42:57 +00:00
danno@chromium.org
9b2de409f9
Mechanical refactor to move ElementsKind type out of JSObject.
...
R=svenpanne@chromium.org
BUG=none
TEST=all
Review URL: http://codereview.chromium.org/7849017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-09 09:35:57 +00:00
lrn@chromium.org
689f3cb314
Rename scanner.* to scanner-character-streams.*. and scanner-base.* to scanner.*
...
R=lrn@chromium.org
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Review URL: http://codereview.chromium.org/7739020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-08 13:06:44 +00:00
erik.corry@gmail.com
1e83d2f92e
Fix missing setting of array to copy-on-write in
...
optimized string split.
Review URL: http://codereview.chromium.org/7849012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-08 09:24:32 +00:00
erik.corry@gmail.com
5eb11917dc
Fix 64 bit build on Windows.
...
Review URL: http://codereview.chromium.org/7841035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-07 13:44:42 +00:00
erik.corry@gmail.com
c49d400347
Fix assert on Mozilla test after String split optimization.
...
Review URL: http://codereview.chromium.org/7837026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-07 13:17:25 +00:00
erik.corry@gmail.com
e9cc1804bd
Make one-character strings into symbols more agressively.
...
Review URL: http://codereview.chromium.org/7840029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-07 13:13:56 +00:00
erik.corry@gmail.com
a6864a4dd8
Fix presubmit
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-07 11:49:12 +00:00