diff --git a/core/src/avm2/globals/flash/xml/XMLNode.as b/core/src/avm2/globals/flash/xml/XMLNode.as
index 5f7cdf496..f47f48b4e 100644
--- a/core/src/avm2/globals/flash/xml/XMLNode.as
+++ b/core/src/avm2/globals/flash/xml/XMLNode.as
@@ -87,6 +87,14 @@ package flash.xml
}
}
+ public function get nodeValue(): String {
+ if (_xml.nodeKind() == "text") {
+ return _xml.toString();
+ }
+
+ return null;
+ }
+
public function appendChild(node: XMLNode): void {
stub_method("flash.xml.XMLNode", "appendChild");
}
diff --git a/tests/tests/swfs/avm2/flash_xml/Test.as b/tests/tests/swfs/avm2/flash_xml/Test.as
index eb9586c6c..e96f06f47 100644
--- a/tests/tests/swfs/avm2/flash_xml/Test.as
+++ b/tests/tests/swfs/avm2/flash_xml/Test.as
@@ -8,16 +8,20 @@ import flash.xml.XMLDocument;
var doc = new XMLDocument('bary');
trace("doc.nodeType: " + doc.nodeType);
trace("doc.nodeName: " + doc.nodeName);
+trace("doc.nodeValue: " + doc.nodeValue);
trace("doc.childNodes: " + doc.childNodes);
trace("doc.toString(): " + doc.toString());
trace("doc.firstChild.nodeType: " + doc.firstChild.nodeType);
trace("doc.firstChild.nodeName: " + doc.firstChild.nodeName);
+trace("doc.firstChild.nodeValue: " + doc.firstChild.nodeValue);
trace("doc.firstChild.toString(): " + doc.firstChild.toString());
trace("doc.firstChild.firstChild.nodeType: " + doc.firstChild.firstChild.nodeType);
trace("doc.firstChild.firstChild.nodeName: " + doc.firstChild.firstChild.nodeName);
+trace("doc.firstChild.firstChild.nodeValue: " + doc.firstChild.firstChild.nodeValue);
trace("doc.firstChild.firstChild.toString(): " + doc.firstChild.firstChild.toString());
trace("doc.firstChild.nextSibling: " + doc.firstChild.nextSibling);
trace("doc.firstChild.nextSibling.nodeName: " + doc.firstChild.nextSibling.nodeName);
+trace("doc.firstChild.nextSibling.nodeValue: " + doc.firstChild.nextSibling.nodeValue);
trace("///")
diff --git a/tests/tests/swfs/avm2/flash_xml/output.txt b/tests/tests/swfs/avm2/flash_xml/output.txt
index 147ca51e7..7eed9cc79 100644
--- a/tests/tests/swfs/avm2/flash_xml/output.txt
+++ b/tests/tests/swfs/avm2/flash_xml/output.txt
@@ -1,15 +1,19 @@
doc.nodeType: 1
doc.nodeName: null
+doc.nodeValue: null
doc.childNodes: bar,y
doc.toString(): bary
doc.firstChild.nodeType: 1
doc.firstChild.nodeName: foo
+doc.firstChild.nodeValue: null
doc.firstChild.toString(): bar
doc.firstChild.firstChild.nodeType: 3
doc.firstChild.firstChild.nodeName: null
+doc.firstChild.firstChild.nodeValue: bar
doc.firstChild.firstChild.toString(): bar
doc.firstChild.nextSibling: y
doc.firstChild.nextSibling.nodeName: x
+doc.firstChild.nextSibling.nodeValue: null
///
doc2.nodeType: 1
doc2.nodeName: null
diff --git a/tests/tests/swfs/avm2/flash_xml/test.swf b/tests/tests/swfs/avm2/flash_xml/test.swf
index 6befc43e8..fa31a2dc3 100644
Binary files a/tests/tests/swfs/avm2/flash_xml/test.swf and b/tests/tests/swfs/avm2/flash_xml/test.swf differ