} else {
ASSERT_EQ(kFullGarbageCollection, type);
reinterpret_cast<i::Isolate*>(this)->heap()->CollectAllGarbage(
- i::Heap::kNoGCFlags, "Isolate::RequestGarbageCollection",
- kGCCallbackFlagForced);
+ i::Heap::kAbortIncrementalMarkingMask,
+ "Isolate::RequestGarbageCollection", kGCCallbackFlagForced);
}
}
void GCExtension::GC(const v8::FunctionCallbackInfo<v8::Value>& args) {
- i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
- if (args[0]->BooleanValue()) {
- isolate->heap()->CollectGarbage(
- NEW_SPACE, "gc extension", v8::kGCCallbackFlagForced);
- } else {
- isolate->heap()->CollectAllGarbage(Heap::kAbortIncrementalMarkingMask,
- "gc extension", v8::kGCCallbackFlagForced);
- }
+ args.GetIsolate()->RequestGarbageCollectionForTesting(
+ args[0]->BooleanValue() ? v8::Isolate::kMinorGarbageCollection
+ : v8::Isolate::kFullGarbageCollection);
}
} } // namespace v8::internal
THREADED_TEST(WeakReference) {
+ i::FLAG_expose_gc = true;
v8::Isolate* isolate = CcTest::isolate();
v8::HandleScope handle_scope(isolate);
v8::Handle<v8::ObjectTemplate> templ= v8::ObjectTemplate::New(isolate);
TEST(DontLeakGlobalObjects) {
// Regression test for issues 1139850 and 1174891.
+ i::FLAG_expose_gc = true;
v8::V8::Initialize();
for (int i = 0; i < 5; i++) {
// | JS |
// | C-to-JS |
TEST(C2JSFrames) {
+ FLAG_expose_gc = true;
v8::HandleScope scope(CcTest::isolate());
v8::Local<v8::Context> context =
CcTest::NewContext(PRINT_EXTENSION | GC_EXTENSION);