You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2020/05/06 11:55:50 UTC
[royale-asjs] 07/07: Fix another XMLList assignment scenario using
empty list (has the effect of 'erasing' the assign-to named nodes)
This is an automated email from the ASF dual-hosted git repository.
harbs pushed a commit to branch release/0.9.7
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 529116cba62a07aa81d15789f7716ba869dc1bf1
Author: greg-dove <gr...@gmail.com>
AuthorDate: Wed May 6 20:33:56 2020 +1200
Fix another XMLList assignment scenario using empty list (has the effect of 'erasing' the assign-to named nodes)
---
frameworks/projects/XML/src/main/royale/XML.as | 24 ++++++++++++----------
.../flexUnitTests/xml/XMLTesterGeneralTest.as | 9 ++++++++
2 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/frameworks/projects/XML/src/main/royale/XML.as b/frameworks/projects/XML/src/main/royale/XML.as
index 290a296..b854bc8 100644
--- a/frameworks/projects/XML/src/main/royale/XML.as
+++ b/frameworks/projects/XML/src/main/royale/XML.as
@@ -2381,20 +2381,22 @@ package
else if(v is XMLList)
{
len = (v as XMLList).length();
- if (!len) return;
//6.
if(_children[idx])
_children[idx]._parent = null;
-
- v[0].setParent(this);
- _children[idx] = v[0];
- var listIdx:int = 1;
- var chld:XML = v[0];
- while(listIdx < len)
- {
- chld = v[listIdx];
- insertChildAt(chld,idx+listIdx);
- listIdx++;
+ if (len) {
+ v[0].setParent(this);
+ _children[idx] = v[0];
+ var listIdx:int = 1;
+ var chld:XML = v[0];
+ while(listIdx < len)
+ {
+ chld = v[listIdx];
+ insertChildAt(chld,idx+listIdx);
+ listIdx++;
+ }
+ } else {
+ _children.splice(idx,1);
}
}
else
diff --git a/frameworks/projects/XML/src/test/royale/flexUnitTests/xml/XMLTesterGeneralTest.as b/frameworks/projects/XML/src/test/royale/flexUnitTests/xml/XMLTesterGeneralTest.as
index 219b651..0e07414 100644
--- a/frameworks/projects/XML/src/test/royale/flexUnitTests/xml/XMLTesterGeneralTest.as
+++ b/frameworks/projects/XML/src/test/royale/flexUnitTests/xml/XMLTesterGeneralTest.as
@@ -1319,6 +1319,15 @@ package flexUnitTests.xml
' <foo/>\n' +
' <foo/>\n' +
'</root>', 'unexpected XMLList assignment');
+
+
+ xmlList = new XMLList();
+ xml.foobazzer = xmlList;
+ assertEquals(xml.toXMLString(), '<root>\n' +
+ ' <foo/>\n' +
+ ' <foo/>\n' +
+ ' <foo/>\n' +
+ '</root>', 'unexpected XMLList assignment')
}
//@todo - Passes in Swf, fails in browser: