Index: third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp |
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp b/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp |
index c3b4cc8eb022f32066119c36b08e2de4fc941a77..ea600f8192463977fdd3d7c28f27ecc7408b08ca 100644 |
--- a/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp |
+++ b/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp |
@@ -112,6 +112,13 @@ public: |
return; |
} |
+ // MinorGC does not collect objects because it may be expensive to |
+ // update references during minorGC |
+ if (classId == WrapperTypeInfo::ObjectClassId) { |
+ v8::Persistent<v8::Object>::Cast(*value).MarkActive(); |
+ return; |
+ } |
+ |
v8::Local<v8::Object> wrapper = v8::Local<v8::Object>::New(m_isolate, v8::Persistent<v8::Object>::Cast(*value)); |
ASSERT(V8DOMWrapper::hasInternalFieldsSet(wrapper)); |
const WrapperTypeInfo* type = toWrapperTypeInfo(wrapper); |