nsClusterKeySet newkeys;
ClusterKeySet newkeys;
nsXULTemplateBuilder::OnAssert(nsIRDFDataSource* aDataSource,                               nsIRDFResource* aSource,                               nsIRDFResource* aProperty,                               nsIRDFNode* aTarget){    // Ignore re-entrant updates while we're building content.    if (mIsBuilding || mUpdateBatchNest != 0)        return(NS_OK);    AutoLatch latch(&mIsBuilding);    nsresult rv;	if (mCache)        mCache->Assert(aSource, aProperty, aTarget, PR_TRUE /* XXX should be value passed in */);    LOG("onassert", aSource, aProperty, aTarget);    nsClusterKeySet newkeys;    rv = Propogate(aSource, aProperty, aTarget, newkeys);    if (NS_FAILED(rv)) return rv;    rv = FireNewlyMatchedRules(newkeys);    if (NS_FAILED(rv)) return rv;    rv = SynchronizeAll(aSource, aProperty, nsnull, aTarget);    if (NS_FAILED(rv)) return rv;    return NS_OK;}