From 020dc34b598e7724e56e0a6fa4707c7190016701 Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Wed, 2 Aug 2023 10:07:09 +0200 Subject: [PATCH] avm2: Throw errors in theoretically unreachable scenario in XmlDocument --- core/src/avm2/globals/flash/xml/XMLDocument.as | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/core/src/avm2/globals/flash/xml/XMLDocument.as b/core/src/avm2/globals/flash/xml/XMLDocument.as index b3a374910..527fe50a2 100644 --- a/core/src/avm2/globals/flash/xml/XMLDocument.as +++ b/core/src/avm2/globals/flash/xml/XMLDocument.as @@ -33,10 +33,7 @@ import flash.xml.XMLNodeType; clear(); var root = new XML("" + input + ""); 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 {