[
https://issues.apache.org/jira/browse/FLEX-35075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15237537#comment-15237537
]
Alex Harui commented on FLEX-35075:
-----------------------------------
Are you sure toString() isn't implied by "==" in JS?
> E4X filters need to be smarter
> ------------------------------
>
> Key: FLEX-35075
> URL: https://issues.apache.org/jira/browse/FLEX-35075
> Project: Apache Flex
> Issue Type: Bug
> Components: FalconJX
> Affects Versions: Apache FalconJX 0.6.0
> Reporter: Harbs
>
> The following expression:
> {code:actionscript}
> xmlSource.Set1.child.(year == "2015");
> {code}
> compiles into:
> {code:javascript}
> xmlSource.child('Set1').child('child').filter(function(node){return
> (node.year == "2015")});
> {code}
> This is all fine except for the filter expression.
> node.year means nothing in Javascript.
> I'm not sure the best way to compile this. The following will work, but it
> will probably get tricky covering all cases:
> {code:javascript}
> xmlSource.child('Set1').child('child').filter(function(node){return
> (node.child("year").toString() == "2015")});
> {code}
> What might make more sense might be to add some helper functions like:
> XML.isEqual(randomObject); (mapped to ==)
> XML.isNotEqual(randomObject); (mapped to !=)
> XML.greaterThan(randomObject); (mapped to >)
> XML.lessThan(randomObject); (mapped to <)
> XML.greaterThanOrEqualTo(randomObject);(mapped to >=)
> XML.lessThanOrEqualTo(randomObject);(mapped to <=)
> And the code will figure out the best way to handle these comparisons based
> on the type at runtime.
> In that case, this would compile like this:
> xmlSource.child('Set1').child('child').filter(function(node){return
> (node.child("year").isEqualTo("2015"))});
> Thoughts?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)