| Index: Source/WebCore/bindings/v8/V8GCController.cpp | 
| =================================================================== | 
| --- Source/WebCore/bindings/v8/V8GCController.cpp	(revision 93494) | 
| +++ Source/WebCore/bindings/v8/V8GCController.cpp	(working copy) | 
| @@ -286,40 +286,6 @@ | 
| return GroupId(root); | 
| } | 
|  | 
| -static GroupId calculateGroupId(StyleBase* styleBase) | 
| -{ | 
| -    ASSERT(styleBase); | 
| -    StyleBase* current = styleBase; | 
| -    StyleSheet* styleSheet = 0; | 
| -    while (true) { | 
| -        // Special case: CSSStyleDeclarations might be either inline and in this case | 
| -        // we need to group them with their node or regular ones. | 
| -        if (current->isMutableStyleDeclaration()) { | 
| -            CSSMutableStyleDeclaration* cssMutableStyleDeclaration = static_cast<CSSMutableStyleDeclaration*>(current); | 
| -            if (cssMutableStyleDeclaration->isInlineStyleDeclaration()) | 
| -                return calculateGroupId(cssMutableStyleDeclaration->node()); | 
| -            // Either we have no parent, or this parent is a CSSRule. | 
| -            ASSERT(cssMutableStyleDeclaration->parent() == cssMutableStyleDeclaration->parentRule()); | 
| -        } | 
| - | 
| -        if (current->isStyleSheet()) | 
| -            styleSheet = static_cast<StyleSheet*>(current); | 
| - | 
| -        StyleBase* parent = current->parent(); | 
| -        if (!parent) | 
| -            break; | 
| -        current = parent; | 
| -    } | 
| - | 
| -    if (styleSheet) { | 
| -        if (Node* ownerNode = styleSheet->ownerNode()) | 
| -            return calculateGroupId(ownerNode); | 
| -        return GroupId(styleSheet); | 
| -    } | 
| - | 
| -    return GroupId(current); | 
| -} | 
| - | 
| class GrouperVisitor : public DOMWrapperMap<Node>::Visitor, public DOMWrapperMap<void>::Visitor { | 
| public: | 
| void visitDOMWrapper(DOMDataStore* store, Node* node, v8::Persistent<v8::Object> wrapper) | 
| @@ -347,49 +313,6 @@ | 
|  | 
| void visitDOMWrapper(DOMDataStore* store, void* object, v8::Persistent<v8::Object> wrapper) | 
| { | 
| -        WrapperTypeInfo* typeInfo = V8DOMWrapper::domWrapperType(wrapper); | 
| - | 
| -        if (typeInfo->isSubclass(&V8StyleSheetList::info)) { | 
| -            StyleSheetList* styleSheetList = static_cast<StyleSheetList*>(object); | 
| -            GroupId groupId(styleSheetList); | 
| -            if (Document* document = styleSheetList->document()) | 
| -                groupId = GroupId(document); | 
| -            m_grouper.append(GrouperItem(groupId, wrapper)); | 
| - | 
| -        } else if (typeInfo->isSubclass(&V8DOMImplementation::info)) { | 
| -            DOMImplementation* domImplementation = static_cast<DOMImplementation*>(object); | 
| -            GroupId groupId(domImplementation); | 
| -            if (Document* document = domImplementation->document()) | 
| -                groupId = GroupId(document); | 
| -            m_grouper.append(GrouperItem(groupId, wrapper)); | 
| - | 
| -        } else if (typeInfo->isSubclass(&V8StyleSheet::info) || typeInfo->isSubclass(&V8CSSRule::info)) { | 
| -            m_grouper.append(GrouperItem(calculateGroupId(static_cast<StyleBase*>(object)), wrapper)); | 
| - | 
| -        } else if (typeInfo->isSubclass(&V8CSSStyleDeclaration::info)) { | 
| -            CSSStyleDeclaration* cssStyleDeclaration = static_cast<CSSStyleDeclaration*>(object); | 
| - | 
| -            GroupId groupId = calculateGroupId(cssStyleDeclaration); | 
| -            m_grouper.append(GrouperItem(groupId, wrapper)); | 
| - | 
| -            // Keep alive "dirty" primitive values (i.e. the ones that | 
| -            // have user-added properties) by creating implicit | 
| -            // references between the style declaration and the values | 
| -            // in it. | 
| -            if (cssStyleDeclaration->isMutableStyleDeclaration()) { | 
| -                CSSMutableStyleDeclaration* cssMutableStyleDeclaration = static_cast<CSSMutableStyleDeclaration*>(cssStyleDeclaration); | 
| -                Vector<v8::Persistent<v8::Value> > values; | 
| -                values.reserveCapacity(cssMutableStyleDeclaration->length()); | 
| -                CSSMutableStyleDeclaration::const_iterator end = cssMutableStyleDeclaration->end(); | 
| -                for (CSSMutableStyleDeclaration::const_iterator it = cssMutableStyleDeclaration->begin(); it != end; ++it) { | 
| -                    v8::Persistent<v8::Object> value = store->domObjectMap().get(it->value()); | 
| -                    if (!value.IsEmpty() && value->IsDirty()) | 
| -                        values.append(value); | 
| -                } | 
| -                if (!values.isEmpty()) | 
| -                    v8::V8::AddImplicitReferences(wrapper, values.data(), values.size()); | 
| -            } | 
| -        } | 
| } | 
|  | 
| void applyGrouping() | 
|  |