diff options
author | Trevor Norris <trev.norris@gmail.com> | 2014-09-09 14:03:08 -0700 |
---|---|---|
committer | Trevor Norris <trev.norris@gmail.com> | 2014-09-09 16:52:10 -0700 |
commit | f9ce97084cbaf90d0669c7cd829da34232b75bdb (patch) | |
tree | e9705d703811c1fd6a0133a66ad11deec148b631 /deps/v8/src/global-handles.cc | |
parent | bf5e2f246eff55dfc33318f0ffb4572a56f7645a (diff) | |
download | android-node-v8-f9ce97084cbaf90d0669c7cd829da34232b75bdb.tar.gz android-node-v8-f9ce97084cbaf90d0669c7cd829da34232b75bdb.tar.bz2 android-node-v8-f9ce97084cbaf90d0669c7cd829da34232b75bdb.zip |
v8: Upgrade 3.26.33 with 14 patches
V8 3.26.31 has received 14 patches since the upgrade to 3.26.33. Since
3.26.33 is technically a tag on the 3.27 branch, reverting back to
3.26.31 would remove now default functionality like WeakMaps. Because of
that the patches have simply been cherry-picked and squashed.
Here is a summary of all patches:
* Fix index register assignment in LoadFieldByIndex for arm, arm64, and
mips.
* Fix invalid attributes when generalizing because of incompatible map
change.
* Skip write barriers when updating the weak hash table.
* MIPS: Avoid HeapObject check in HStoreNamedField.
* Do GC if CodeRange fails to allocate a block.
* Array.concat: properly go to dictionary mode when required.
* Keep CodeRange::current_allocation_block_index_ in range.
* Grow heap slower if GC freed many global handles.
* Do not eliminate bounds checks for "<const> - x".
* Add missing map check to optimized f.apply(...).
* In GrowMode, force the value to the right representation to avoid
deopts between storing the length and storing the value.
* Reduce max executable size limit.
* Fix invalid condition in check elimination effects.
* Fix off-by-one error in Array.concat slow mode check.
For more information see: https://github.com/v8/v8/commits/3.26
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Diffstat (limited to 'deps/v8/src/global-handles.cc')
-rw-r--r-- | deps/v8/src/global-handles.cc | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/deps/v8/src/global-handles.cc b/deps/v8/src/global-handles.cc index d6cd479181..168a670d2b 100644 --- a/deps/v8/src/global-handles.cc +++ b/deps/v8/src/global-handles.cc @@ -610,21 +610,21 @@ bool GlobalHandles::IterateObjectGroups(ObjectVisitor* v, } -bool GlobalHandles::PostGarbageCollectionProcessing( +int GlobalHandles::PostGarbageCollectionProcessing( GarbageCollector collector, GCTracer* tracer) { // Process weak global handle callbacks. This must be done after the // GC is completely done, because the callbacks may invoke arbitrary // API functions. ASSERT(isolate_->heap()->gc_state() == Heap::NOT_IN_GC); const int initial_post_gc_processing_count = ++post_gc_processing_count_; - bool next_gc_likely_to_collect_more = false; + int freed_nodes = 0; if (collector == SCAVENGER) { for (int i = 0; i < new_space_nodes_.length(); ++i) { Node* node = new_space_nodes_[i]; ASSERT(node->is_in_new_space_list()); if (!node->IsRetainer()) { // Free nodes do not have weak callbacks. Do not use them to compute - // the next_gc_likely_to_collect_more. + // the freed_nodes. continue; } // Skip dependent handles. Their weak callbacks might expect to be @@ -640,29 +640,29 @@ bool GlobalHandles::PostGarbageCollectionProcessing( // PostGarbageCollection processing. The current node might // have been deleted in that round, so we need to bail out (or // restart the processing). - return next_gc_likely_to_collect_more; + return freed_nodes; } } if (!node->IsRetainer()) { - next_gc_likely_to_collect_more = true; + freed_nodes++; } } } else { for (NodeIterator it(this); !it.done(); it.Advance()) { if (!it.node()->IsRetainer()) { // Free nodes do not have weak callbacks. Do not use them to compute - // the next_gc_likely_to_collect_more. + // the freed_nodes. continue; } it.node()->clear_partially_dependent(); if (it.node()->PostGarbageCollectionProcessing(isolate_)) { if (initial_post_gc_processing_count != post_gc_processing_count_) { // See the comment above. - return next_gc_likely_to_collect_more; + return freed_nodes; } } if (!it.node()->IsRetainer()) { - next_gc_likely_to_collect_more = true; + freed_nodes++; } } } @@ -685,7 +685,7 @@ bool GlobalHandles::PostGarbageCollectionProcessing( } } new_space_nodes_.Rewind(last); - return next_gc_likely_to_collect_more; + return freed_nodes; } |