avm2: Throw errors in theoretically unreachable scenario in XmlDocument
This commit is contained in:
parent
3834462abf
commit
020dc34b59
|
@ -33,10 +33,7 @@ import flash.xml.XMLNodeType;
|
||||||
clear();
|
clear();
|
||||||
var root = new XML("<xml>" + input + "</xml>");
|
var root = new XML("<xml>" + input + "</xml>");
|
||||||
for each (var child in root.children()) {
|
for each (var child in root.children()) {
|
||||||
var node = _convertXmlNode(child);
|
appendChild(_convertXmlNode(child));
|
||||||
if (node != null) {
|
|
||||||
appendChild(node);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
XML.AS3::setSettings(oldSettings);
|
XML.AS3::setSettings(oldSettings);
|
||||||
|
@ -45,16 +42,10 @@ import flash.xml.XMLNodeType;
|
||||||
|
|
||||||
private function _convertXmlNode(original: XML): XMLNode {
|
private function _convertXmlNode(original: XML): XMLNode {
|
||||||
var nodeType = _convertXmlNodeType(original.nodeKind());
|
var nodeType = _convertXmlNodeType(original.nodeKind());
|
||||||
if (nodeType == 0) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
var nodeValue = nodeType == XMLNodeType.ELEMENT_NODE ? original.name() : original.toString();
|
var nodeValue = nodeType == XMLNodeType.ELEMENT_NODE ? original.name() : original.toString();
|
||||||
var result = new XMLNode(nodeType, nodeValue);
|
var result = new XMLNode(nodeType, nodeValue);
|
||||||
for each (var originalChild in original.children()) {
|
for each (var originalChild in original.children()) {
|
||||||
var child = _convertXmlNode(originalChild);
|
result.appendChild(_convertXmlNode(originalChild));
|
||||||
if (child != null) {
|
|
||||||
result.appendChild(child);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
var attributeList = original.attributes();
|
var attributeList = original.attributes();
|
||||||
var attributes = {};
|
var attributes = {};
|
||||||
|
@ -72,13 +63,10 @@ import flash.xml.XMLNodeType;
|
||||||
if (kind == "comment") {
|
if (kind == "comment") {
|
||||||
return XMLNodeType.COMMENT_NODE;
|
return XMLNodeType.COMMENT_NODE;
|
||||||
}
|
}
|
||||||
if (kind == "processing-instruction") {
|
|
||||||
return XMLNodeType.PROCESSING_INSTRUCTION_NODE;
|
|
||||||
}
|
|
||||||
if (kind == "element") {
|
if (kind == "element") {
|
||||||
return XMLNodeType.ELEMENT_NODE;
|
return XMLNodeType.ELEMENT_NODE;
|
||||||
}
|
}
|
||||||
return 0;
|
throw new Error("Invalid XML Node kind '" + kind + "' found whilst constructing (legacy) XMLDocument");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createElement(name:String): XMLNode {
|
public function createElement(name:String): XMLNode {
|
||||||
|
|
Loading…
Reference in New Issue