rem: node.setAttributeNS("", "p3:l3", "v3"); 
add: node.setAttributeNS("", "l3", "v3"); 
context: function test4() {  // setAttributeNS tests  var doc = ParseXML('<root xmlns="ns1"/>');  var root = doc.documentElement;  root.setAttributeNS("ns1", "prefix:local", "val");  do_check_serialize(doc);  do_check_eq(SerializeXML(doc),              '<root xmlns="ns1" prefix:local="val" xmlns:prefix="ns1"/>');  doc = ParseXML('<prefix:root xmlns:prefix="ns1"/>');  root = doc.documentElement;  root.setAttributeNS("ns1", "local", "val");  do_check_serialize(doc);  do_check_eq(SerializeXML(doc),              '<prefix:root xmlns:prefix="ns1" prefix:local="val"/>');  doc = ParseXML('<root xmlns="ns1"/>');  root = doc.documentElement;  root.setAttributeNS("ns2", "local", "val");  do_check_serialize(doc);  do_check_eq(SerializeXML(doc),              '<root xmlns="ns1" a0:local="val" xmlns:a0="ns2"/>');  // Handling of prefix-generation for non-null-namespace attributes  // which have the same namespace as the current default namespace  // (bug 301260).  doc = ParseXML('<root xmlns="ns1"/>');  root = doc.documentElement;  root.setAttributeNS("ns1", "local", "val");  do_check_serialize(doc);  do_check_eq(SerializeXML(doc),                '<root xmlns="ns1" a0:local="val" xmlns:a0="ns1"/>');  // Tree-walking test  doc = ParseXML('<root xmlns="ns1" xmlns:a="ns2">'+                 '<child xmlns:b="ns2" xmlns:a="ns3">'+                 '<child2/></child></root>');  root = doc.documentElement;  // Have to QI here -- no classinfo flattening in xpcshell, apparently  var node = root.firstChild.firstChild.QueryInterface(nsIDOMElement);  node.setAttributeNS("ns4", "l1", "v1");  node.setAttributeNS("ns4", "p2:l2", "v2");  node.setAttributeNS("", "p3:l3", "v3");  node.setAttributeNS("ns3", "l4", "v4");  node.setAttributeNS("ns3", "p5:l5", "v5");  node.setAttributeNS("ns3", "a:l6", "v6");  node.setAttributeNS("ns2", "l7", "v7");  node.setAttributeNS("ns2", "p8:l8", "v8");  node.setAttributeNS("ns2", "b:l9", "v9");  node.setAttributeNS("ns2", "a:l10", "v10");  node.setAttributeNS("ns1", "a:l11", "v11");  node.setAttributeNS("ns1", "b:l12", "v12");  node.setAttributeNS("ns1", "l13", "v13");  do_check_serialize(doc);  //  Note: we end up with "a2" as the prefix on "l11" and "l12" because we use  //  "a1" earlier, and discard it in favor of something we get off the  //  namespace stack, apparently  do_check_eq(SerializeXML(doc),              '<root xmlns="ns1" xmlns:a="ns2">'+              '<child xmlns:b="ns2" xmlns:a="ns3">'+              '<child2 a0:l1="v1" xmlns:a0="ns4"' +              ' a0:l2="v2"' +              ' l3="v3"' +              ' a:l4="v4"' +              ' a:l5="v5"' +              ' a:l6="v6"' +              ' b:l7="v7"' +              ' b:l8="v8"' +              ' b:l9="v9"' +              ' b:l10="v10"' +              ' a2:l11="v11" xmlns:a2="ns1"' +              ' a2:l12="v12"' +              ' a2:l13="v13"/></child></root>');}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/be5b656c85ef3ecc112f3dba7f1de3bb2e0aa04d/test_xml_serializer.js/clean/content/test/unit/test_xml_serializer.js