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.
>>> 
>> 
>

Reply via email to