if (! mDocument)
if (mIsBuilding || mUpdateBatchNest != 0)
nsXULTemplateBuilder::OnUnassert(nsIRDFResource* aSource,                                 nsIRDFResource* aProperty,                                 nsIRDFNode* aTarget){    // Just silently fail, because this can happen "normally" as part    // of tear-down code. (Bug 9098)    if (! mDocument)        return NS_OK;    // Ignore re-entrant updates while we're building content.    if (mIsBuilding)        return NS_OK;    nsresult rv;	if (mCache)	{		mCache->Unassert(aSource, aProperty, aTarget);	}    LOG("onunassert", aSource, aProperty, aTarget);    rv = Retract(aSource, aProperty, aTarget);    if (NS_FAILED(rv)) return rv;    rv = SynchronizeAll(aSource, aProperty, aTarget, nsnull);    if (NS_FAILED(rv)) return rv;        return NS_OK;}