if (name == nsSVGAtoms::pattern) return NS_NewSVGPatternElement(aResult, aNodeInfo);
NS_NewSVGElement(nsIContent** aResult, nsINodeInfo *aNodeInfo){  NS_PRECONDITION(nsSVGUtils::SVGEnabled(),                  "creating an SVG element while SVG disabled");  static const char kSVGStyleSheetURI[] = "resource://gre/res/svg.css";  // this bit of code is to load svg.css on demand  nsIDocument* doc = nsContentUtils::GetDocument(aNodeInfo);  if (doc)    doc->EnsureCatalogStyleSheet(kSVGStyleSheetURI);  nsIAtom *name = aNodeInfo->NameAtom();    if (name == nsSVGAtoms::polyline)    return NS_NewSVGPolylineElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::polygon)    return NS_NewSVGPolygonElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::circle)    return NS_NewSVGCircleElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::ellipse)    return NS_NewSVGEllipseElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::line)    return NS_NewSVGLineElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::rect)    return NS_NewSVGRectElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::svg)    return NS_NewSVGSVGElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::g)    return NS_NewSVGGElement(aResult, aNodeInfo);#ifdef MOZ_SVG_FOREIGNOBJECT  if (name == nsSVGAtoms::foreignObject)    return NS_NewSVGForeignObjectElement(aResult, aNodeInfo);#endif  if (name == nsSVGAtoms::path)    return NS_NewSVGPathElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::text)    return NS_NewSVGTextElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::tspan)    return NS_NewSVGTSpanElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::image)    return NS_NewSVGImageElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::style)    return NS_NewSVGStyleElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::linearGradient)    return NS_NewSVGLinearGradientElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::metadata)    return NS_NewSVGMetadataElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::radialGradient)    return NS_NewSVGRadialGradientElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::stop)    return NS_NewSVGStopElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::defs)    return NS_NewSVGDefsElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::desc)    return NS_NewSVGDescElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::script)    return NS_NewSVGScriptElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::use)    return NS_NewSVGUseElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::symbol)    return NS_NewSVGSymbolElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::marker)    return NS_NewSVGMarkerElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::title)    return NS_NewSVGTitleElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::clipPath)    return NS_NewSVGClipPathElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::textPath)    return NS_NewSVGTextPathElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::filter)    return NS_NewSVGFilterElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::feGaussianBlur)    return NS_NewSVGFEGaussianBlurElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::feComponentTransfer)    return NS_NewSVGFEComponentTransferElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::feFuncR)    return NS_NewSVGFEFuncRElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::feFuncG)    return NS_NewSVGFEFuncGElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::feFuncB)    return NS_NewSVGFEFuncBElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::feFuncA)    return NS_NewSVGFEFuncAElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::feMerge)    return NS_NewSVGFEMergeElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::feMergeNode)    return NS_NewSVGFEMergeNodeElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::feOffset)    return NS_NewSVGFEOffsetElement(aResult, aNodeInfo);  if (name == nsSVGAtoms::feBlend            ||      name == nsSVGAtoms::feColorMatrix      ||      name == nsSVGAtoms::feComposite        ||      name == nsSVGAtoms::feConvolveMatrix   ||      name == nsSVGAtoms::feDiffuseLighting  ||      name == nsSVGAtoms::feDisplacementMap  ||      name == nsSVGAtoms::feFlood            ||      name == nsSVGAtoms::feImage            ||      name == nsSVGAtoms::feMorphology       ||      name == nsSVGAtoms::feSpecularLighting ||      name == nsSVGAtoms::feTile             ||      name == nsSVGAtoms::feTurbulence)    return NS_NewSVGFEUnimplementedMOZElement(aResult, aNodeInfo);  // if we don't know what to create, just create a standard xml element:  return NS_NewXMLElement(aResult, aNodeInfo);}