Fixed hasOwnProperty
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/93c980dd Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/93c980dd Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/93c980dd Branch: refs/heads/feature/amf Commit: 93c980ddf90deb1805ea9b69bf46c0602db46ce1 Parents: 96ee542 Author: Harbs <ha...@in-tools.com> Authored: Sun Jul 30 22:58:32 2017 +0300 Committer: Harbs <ha...@in-tools.com> Committed: Sun Jul 30 22:58:32 2017 +0300 ---------------------------------------------------------------------- frameworks/projects/XML/src/main/flex/XML.as | 26 ++++++++++++++--------- manualtests/XMLTest/src/MyInitialView.mxml | 3 +++ 2 files changed, 19 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/93c980dd/frameworks/projects/XML/src/main/flex/XML.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/XML/src/main/flex/XML.as b/frameworks/projects/XML/src/main/flex/XML.as index b075f2e..f09a018 100644 --- a/frameworks/projects/XML/src/main/flex/XML.as +++ b/frameworks/projects/XML/src/main/flex/XML.as @@ -1062,17 +1062,23 @@ package return p == "0"; var name:QName = toXMLName(p); var i:int; - for(i=0;i<_attributes.length;i++) + if(name.isAttribute) { - if(_attributes[i].name().matches(name)) - return true; + for(i=0;i<_attributes.length;i++) + { + if(_attributes[i].name().matches(name)) + return true; + } } - for(i=0;i<_children.length;i++) + else { - if(_children[i].nodeKind() != "element") - continue; - if(_children[i].name().matches(name)) - return true; + for(i=0;i<_children.length;i++) + { + if(_children[i].nodeKind() != "element") + continue; + if(_children[i].name().matches(name)) + return true; + } } return false; } @@ -2165,11 +2171,11 @@ package private function toAttributeName(name:*):QName { var qname:QName; - if(!name is QName) + if(!(name is QName)) { name = name.toString(); if(name.indexOf("@") > -1) - name = name.substring(name.indexOf("@")); + name = name.substring(name.indexOf("@") + 1); } qname = toXMLName(name); qname.isAttribute = true; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/93c980dd/manualtests/XMLTest/src/MyInitialView.mxml ---------------------------------------------------------------------- diff --git a/manualtests/XMLTest/src/MyInitialView.mxml b/manualtests/XMLTest/src/MyInitialView.mxml index efb4317..6b73d7f 100644 --- a/manualtests/XMLTest/src/MyInitialView.mxml +++ b/manualtests/XMLTest/src/MyInitialView.mxml @@ -97,6 +97,9 @@ limitations under the License. var list4:XMLList; var xml1:XML = <foo baz="true"/>; trace(xml1.toXMLString()); + trace("should be true: " + xml1.hasOwnProperty("@baz")); + trace("should be false: " + xml1.hasOwnProperty("@foo")); + trace("should be false: " + xml1.hasOwnProperty("baz")); trace(xml1.toXMLString() == '<foo baz="true"/>'); var baz:XMLList = xml1.@baz; trace("baz: " + xml1.@baz.toString() + " //true");