// Create object groups for DOM tree nodes. void V8GCController::gcPrologue() { v8::HandleScope scope; #ifndef NDEBUG DOMObjectVisitor domObjectVisitor; visitDOMObjectsInCurrentThread(&domObjectVisitor); #endif // Run through all objects with possible pending activity making their // wrappers non weak if there is pending activity. GCPrologueVisitor prologueVisitor; visitActiveDOMObjectsInCurrentThread(&prologueVisitor); // Create object groups. GrouperVisitor grouperVisitor; visitDOMNodesInCurrentThread(&grouperVisitor); visitDOMObjectsInCurrentThread(&grouperVisitor); grouperVisitor.applyGrouping(); // Clean single element cache for string conversions. //SAMSUNG_WEB_WORKER_CHANGES >> /*lastStringImpl = 0; lastV8String.Clear();*/ V8BindingPerIsolateData* data = V8BindingPerIsolateData::current(); data->stringCache()->clearOnGC(); //SAMSUNG_WEB_WORKER_CHANGES << }
void V8GCController::gcEpilogue() { v8::HandleScope scope; // Run through all objects with pending activity making their wrappers weak // again. GCEpilogueVisitor epilogueVisitor; visitActiveDOMObjectsInCurrentThread(&epilogueVisitor); workingSetEstimateMB = getActualMemoryUsageInMB(); #if 0 //ndef NDEBUG // Check all survivals are weak. DOMObjectVisitor domObjectVisitor; visitDOMObjectsInCurrentThread(&domObjectVisitor); EnsureWeakDOMNodeVisitor weakDOMNodeVisitor; visitDOMNodesInCurrentThread(&weakDOMNodeVisitor); enumerateGlobalHandles(); #endif }
// Create object groups for DOM tree nodes. void V8GCController::gcPrologue() { v8::HandleScope scope; #if 0 //crash_in_debug ndef NDEBUG DOMObjectVisitor domObjectVisitor; visitDOMObjectsInCurrentThread(&domObjectVisitor); #endif // Run through all objects with possible pending activity making their // wrappers non weak if there is pending activity. GCPrologueVisitor prologueVisitor; visitActiveDOMObjectsInCurrentThread(&prologueVisitor); // Create object groups. GrouperVisitor grouperVisitor; visitDOMNodesInCurrentThread(&grouperVisitor); //visitDOMObjectsInCurrentThread(&grouperVisitor); //crash grouperVisitor.applyGrouping(); // Clean single element cache for string conversions. lastStringImpl = 0; lastV8String.Clear(); }