Version 3.17.12
Unified kMaxArguments with number of bits used to encode it. (Chromium issue 211741)
Fixed detection of |handle_smi| case in HOptimizedGraphBuilder::HandlePolymorphicCallNamed. (Chromium issue 196583)
Performance and stability improvements on all platforms.
git-svn-id: http://v8.googlecode.com/svn/trunk@13971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/test/cctest/test-heap.cc b/test/cctest/test-heap.cc
index e1da9ef..a710385 100644
--- a/test/cctest/test-heap.cc
+++ b/test/cctest/test-heap.cc
@@ -3017,3 +3017,31 @@
heap->CollectAllGarbage(Heap::kNoGCFlags);
heap->CollectAllGarbage(Heap::kNoGCFlags);
}
+
+
+class DummyVisitor : public ObjectVisitor {
+ public:
+ void VisitPointers(Object** start, Object** end) { }
+};
+
+
+TEST(DeferredHandles) {
+ InitializeVM();
+ Isolate* isolate = Isolate::Current();
+ Heap* heap = isolate->heap();
+ v8::HandleScope scope;
+ v8::ImplementationUtilities::HandleScopeData* data =
+ isolate->handle_scope_data();
+ Handle<Object> init(heap->empty_string(), isolate);
+ while (data->next < data->limit) {
+ Handle<Object> obj(heap->empty_string(), isolate);
+ }
+ // An entire block of handles has been filled.
+ // Next handle would require a new block.
+ ASSERT(data->next == data->limit);
+
+ DeferredHandleScope deferred(isolate);
+ DummyVisitor visitor;
+ isolate->handle_scope_implementer()->Iterate(&visitor);
+ deferred.Detach();
+}