Looks like there currently isn't any XML Literal handling for AS -> JS. For AS code like:
var foo:XML = <node><subnode attr="1">foo</subnode></node>; What do you want the output to be? Shouldn't we just pass the whole thing to the XML() function? var foo = new XML('<node><subnode attr="1">foo</subnode></node>'); Or do you want something else? For XMLList literals, can you just wrap it in a dummy node and let JS parse it? var bar:XMLList = new XMLList("<node attr='1' /><node attr='2' />"); Is that the same as: var bar:XMLList = new XML("<dummy><node attr='1' /><node attr='2' /></dummy>").children(); -Alex On 1/4/16, 8:00 AM, "Harbs" <harbs.li...@gmail.com> wrote: >Here’s an implementation question: > >Apparently, it’s possible to pass a string into an XMLList constructor to >create an XMLList of multiple XML objects. I’m not sure of the best way >to handle this. > >I can walk the contents of the string and split the string into multiple >XML strings and create separate XML objects from that, but I’m concerned >that it might be error-prone. Does anyone know of a cheap method of >parsing a string into multiple nodes in standard javascript? > >On Jan 4, 2016, at 5:06 PM, Harbs <harbs.li...@gmail.com> wrote: > >> Another issue: >> >> XML literals and angle brackets. >> >> Is the compiler handling xml literals at all now? I think angle bracket >>notation need to be converted to string concatenation as well. >> >> On Dec 31, 2015, at 5:21 PM, Alex Harui <aha...@adobe.com> wrote: >> >>> Sounds reasonable. Do you want to try to make the changes to the >>>compiler >>> yourself? >>> >>> I think you can just copy the pattern in this commit: >>> 22fa6defa3ed2896de4eba1a5a1b316e1e3c2b0f >>> In these files: BinaryOperatorEmitter.java and >>>TestFlexJSGlobalClasses.java >>> >>> -Alex >>> >>> On 12/31/15, 1:02 AM, "Harbs" <harbs.li...@gmail.com> wrote: >>> >>>> Another question: >>>> >>>> How should we handle equality? According to the E4X spec, if regular >>>> equality is used, it returns true if the structure of the XML matches >>>> even if the objects are different objects. So: >>>> >>>> var xml1 = <foo><baz /></foo>; >>>> var xml2 = <foo><baz/></foo>; >>>> xml1 == xml2 // true >>>> xml1 === xml2 // false >>>> xml1 === xml1 // true >>>> var xml1 = <foo><baz /></foo>; >>>> var xml2 = <foo><baz name="baz"/></foo>; >>>> xml1 == xml2 // false >>>> xml1 === xml2 // false >>>> xml1 === xml1 // true >>>> >>>> I’m thinking I should add an equals(xml) method which you’d map to the >>>> “==" operator. >>> >> >