Make new space iterable for --log-gc and --heap-stats options
R=hpayer@chromium.org BUG=370827 TEST=test/mjsunit/regress/regress-370827.js LOG=N Review URL: https://codereview.chromium.org/272503005 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
c02ad39c10
commit
3976ebef93
@ -3825,19 +3825,18 @@ bool HAllocate::HandleSideEffectDominator(GVNFlag side_effect,
|
||||
dominator_allocate);
|
||||
dominator_allocate->UpdateSize(new_dominator_size_constant);
|
||||
|
||||
bool keep_new_space_iterable = FLAG_log_gc || FLAG_heap_stats;
|
||||
#ifdef VERIFY_HEAP
|
||||
if (FLAG_verify_heap && dominator_allocate->IsNewSpaceAllocation()) {
|
||||
keep_new_space_iterable = keep_new_space_iterable || FLAG_verify_heap;
|
||||
#endif
|
||||
|
||||
if (keep_new_space_iterable && dominator_allocate->IsNewSpaceAllocation()) {
|
||||
dominator_allocate->MakePrefillWithFiller();
|
||||
} else {
|
||||
// TODO(hpayer): This is a short-term hack to make allocation mementos
|
||||
// work again in new space.
|
||||
dominator_allocate->ClearNextMapWord(original_object_size);
|
||||
}
|
||||
#else
|
||||
// TODO(hpayer): This is a short-term hack to make allocation mementos
|
||||
// work again in new space.
|
||||
dominator_allocate->ClearNextMapWord(original_object_size);
|
||||
#endif
|
||||
|
||||
dominator_allocate->UpdateClearNextMapWord(MustClearNextMapWord());
|
||||
|
||||
|
21
test/mjsunit/regress/regress-370827.js
Normal file
21
test/mjsunit/regress/regress-370827.js
Normal file
@ -0,0 +1,21 @@
|
||||
// Copyright 2014 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --expose-gc --heap-stats
|
||||
|
||||
function g(dummy, x) {
|
||||
var start = "";
|
||||
if (x) { start = x + " - "; }
|
||||
start = start + "array length";
|
||||
};
|
||||
|
||||
function f() {
|
||||
gc();
|
||||
g([0.1]);
|
||||
}
|
||||
|
||||
f();
|
||||
%OptimizeFunctionOnNextCall(f);
|
||||
f();
|
||||
f();
|
Loading…
Reference in New Issue
Block a user