Index: test/cctest/test-api.cc |
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
index a4dcc545b64f6a2874a8099c0843c273d5040592..b424247058b9c243632ef8dceb15ad051bb2e63a 100644 |
--- a/test/cctest/test-api.cc |
+++ b/test/cctest/test-api.cc |
@@ -16428,6 +16428,32 @@ TEST(PersistentHandleVisitor) { |
} |
+TEST(PersistentHandleInNewSpaceVisitor) { |
+ v8::HandleScope scope; |
+ LocalContext context; |
+ v8::Persistent<v8::Object> object1 = |
+ v8::Persistent<v8::Object>::New(v8::Object::New()); |
+ CHECK_EQ(0, object1.WrapperClassId()); |
+ object1.SetWrapperClassId(42); |
+ CHECK_EQ(42, object1.WrapperClassId()); |
+ |
+ HEAP->CollectAllGarbage(i::Heap::kNoGCFlags); |
+ |
+ v8::Persistent<v8::Object> object2 = |
+ v8::Persistent<v8::Object>::New(v8::Object::New()); |
+ CHECK_EQ(0, object2.WrapperClassId()); |
+ object2.SetWrapperClassId(42); |
+ CHECK_EQ(42, object2.WrapperClassId()); |
+ |
+ Visitor42 visitor(object2); |
+ v8::V8::VisitHandlesInNewSpaceWithClassIds(&visitor); |
+ CHECK_EQ(1, visitor.counter_); |
+ |
+ object1.Dispose(); |
+ object2.Dispose(); |
+} |
+ |
+ |
TEST(RegExp) { |
v8::HandleScope scope; |
LocalContext context; |