avm2: Throw errors in theoretically unreachable scenario in XmlDocument

This commit is contained in:
Nathan Adams 2023-08-02 10:07:09 +02:00
parent 3834462abf
commit 020dc34b59
1 changed files with 3 additions and 15 deletions

View File

@ -33,10 +33,7 @@ import flash.xml.XMLNodeType;
clear();
var root = new XML("<xml>" + input + "</xml>");
for each (var child in root.children()) {
var node = _convertXmlNode(child);
if (node != null) {
appendChild(node);
}
appendChild(_convertXmlNode(child));
}
} finally {
XML.AS3::setSettings(oldSettings);
@ -45,16 +42,10 @@ import flash.xml.XMLNodeType;
private function _convertXmlNode(original: XML): XMLNode {
var nodeType = _convertXmlNodeType(original.nodeKind());
if (nodeType == 0) {
return null;
}
var nodeValue = nodeType == XMLNodeType.ELEMENT_NODE ? original.name() : original.toString();
var result = new XMLNode(nodeType, nodeValue);
for each (var originalChild in original.children()) {
var child = _convertXmlNode(originalChild);
if (child != null) {
result.appendChild(child);
}
result.appendChild(_convertXmlNode(originalChild));
}
var attributeList = original.attributes();
var attributes = {};
@ -72,13 +63,10 @@ import flash.xml.XMLNodeType;
if (kind == "comment") {
return XMLNodeType.COMMENT_NODE;
}
if (kind == "processing-instruction") {
return XMLNodeType.PROCESSING_INSTRUCTION_NODE;
}
if (kind == "element") {
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 {