' I don’t see that in the Ecma spec.'

yeah, it was fun working on this. (irony) . When things were not clear, I
always used swf behavior as the 'spec'.



On Fri, Nov 29, 2019 at 7:25 AM Harbs <harbs.li...@gmail.com> wrote:

> Yeah. I see it’s supposed to wrap the elements. Weird. I don’t see that in
> the Ecma spec.
>
> I see what I messed up. I’ll revert that bit.
>
> > On Nov 28, 2019, at 8:20 PM, Greg Dove <greg.d...@gmail.com> wrote:
> >
> > You mean this (hopefully the xml angle brackets won't be mangled in your
> > view of this)?
> >
> > var xml:XML = <root/>;
> > xml.appendChild("test1");
> > xml.appendChild("test2");
> > xml.appendChild(<element/>);
> > xml.appendChild("test3");
> > xml.appendChild("test4");
> >
> >
> > trace(xml.toXMLString())
> > output in swf:
> > <root>
> >  test1
> >  test2
> >  <element/>
> >  <element>test3</element>
> >  <element>test4</element>
> > </root>
> >
> >
> >
> > On Fri, Nov 29, 2019 at 7:12 AM Harbs <harbs.li...@gmail.com> wrote:
> >
> >> I can’t imagine where <element>test3</element> comes from when you
> append
> >> “test3”...
> >>
> >> It should be a text node. No?
> >>
> >>> On Nov 28, 2019, at 8:09 PM, Greg Dove <greg.d...@gmail.com> wrote:
> >>>
> >>> OK, I will check it now.
> >>>
> >>> On Fri, Nov 29, 2019 at 7:08 AM Harbs <harbs.li...@gmail.com> wrote:
> >>>
> >>>> I’m getting two test failures on the XML tests.
> >>>>
> >>>> testXMLNormalize is failing, but the test looks wrong to me. Could you
> >>>> take a look?
> >>>>
> >>>>> On Nov 28, 2019, at 7:32 PM, Greg Dove <greg.d...@gmail.com> wrote:
> >>>>>
> >>>>> Oh - just saw this. Thanks.
> >>>>> Please ignore my comments in the other thread :).
> >>>>>
> >>>>>
> >>>>> On Fri, Nov 29, 2019 at 6:12 AM Harbs <harbs.li...@gmail.com> wrote:
> >>>>>
> >>>>>> I finally got the nerve together to update my local environment.
> >>>>>>
> >>>>>> The changes look pretty good.
> >>>>>>
> >>>>>> I made a couple of small changes.
> >>>>>>
> >>>>>> One fixes hasAttribute which somehow broke with your changes.
> >>>>>>
> >>>>>> The second is a small tweak to the memory optimizations. The memory
> >>>>>> footprint seems to be a bit smaller than what it used to be.
> >>>>>>
> >>>>>> Good work. :-)
> >>>>>>
> >>>>>> Harbs
> >>>>>>
> >>>>>>> On Oct 2, 2019, at 11:29 AM, Greg Dove <greg.d...@gmail.com>
> wrote:
> >>>>>>>
> >>>>>>> @harbs
> >>>>>>>
> >>>>>>> FYI in addition to some other stuff, I am close to pushing my
> updates
> >>>> to
> >>>>>>> XML. This should be in the next hour or so.
> >>>>>>>
> >>>>>>> I kept the QName caching pretty close to how you had it, with only
> >> some
> >>>>>>> minor changes.
> >>>>>>> I tried to do some extra memory optimization, and in theory it
> should
> >>>>>>> provide better results, but to be honest I don't have a good way to
> >>>>>> measure
> >>>>>>> this in the browser. I tried the Chrome performance.memory
> extensions
> >>>>>> but I
> >>>>>>> don't have much confidence in that given how much it varies between
> >>>>>> reloads
> >>>>>>> without changing anything else. The extra code changes I made were
> to
> >>>>>> make
> >>>>>>> the '_nodeKind' strings into String object references, so they only
> >>>> refer
> >>>>>>> to a single reference to a string instead of multiple copies of
> >>>>>> primitives.
> >>>>>>> That change is isolated to a single commit so can easily be
> reversed
> >> if
> >>>>>>> there is something not good about it... but all my local tests
> >> continue
> >>>>>> to
> >>>>>>> pass. I will get the new tests into RoyaleUnit in the coming days.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> On Thu, Sep 5, 2019 at 7:39 AM Greg Dove <greg.d...@gmail.com>
> >> wrote:
> >>>>>>>
> >>>>>>>> Yeah, I saw that ;) Don't worry, I am aware of it.
> >>>>>>>>
> >>>>>>>> My first goal is to make sure it works like it should, because
> that
> >>>>>> comes
> >>>>>>>> first, and then to optimize. I'll check the memory side of things
> >> and
> >>>>>> make
> >>>>>>>> sure it's at least the same as before. If you can point me to some
> >>>>>>>> publicly accessible large test cases that would be really
> helpful. I
> >>>>>> will
> >>>>>>>> work through that before I push anything.
> >>>>>>>>
> >>>>>>>> On Thu, Sep 5, 2019 at 7:26 AM Harbs <harbs.li...@gmail.com>
> wrote:
> >>>>>>>>
> >>>>>>>>> Heads up:
> >>>>>>>>>
> >>>>>>>>> I did some (on first blush) odd things in XML related to QNames.
> >>>> QNames
> >>>>>>>>> are pooled and many XML properties are not initialized by
> default.
> >>>> The
> >>>>>>>>> reason I did this was it avoided many MB of memory waste for
> >> complex
> >>>>>> XML.
> >>>>>>>>> Please don’t mess that up.
> >>>>>>>>>
> >>>>>>>>> Thanks,
> >>>>>>>>> Harbs
> >>>>>>>>>
> >>>>>>>>>> On Sep 4, 2019, at 1:02 PM, Greg Dove <greg.d...@gmail.com>
> >> wrote:
> >>>>>>>>>>
> >>>>>>>>>> This is particularly for Harbs and Yishay, as I think you are
> both
> >>>> (or
> >>>>>>>>> both
> >>>>>>>>>> have been) using XML quite a bit. I have quite a few  fixes
> >> coming.
> >>>>>> All
> >>>>>>>>>> with tests that match on swf and js.
> >>>>>>>>>>
> >>>>>>>>>> I am currently working to demonstrate proof of concept to a
> >>>>>> prospective
> >>>>>>>>>> client for migration of a Flex app. The app makes extensive use
> of
> >>>> e4x
> >>>>>>>>> and
> >>>>>>>>>> uses a bunch of features that I expect had not received
> attention
> >>>>>>>>>> previously, because they were originally either not working with
> >> the
> >>>>>>>>>> codebase I am porting, or i think some even caused errors in the
> >>>>>>>>> javascript
> >>>>>>>>>> output.
> >>>>>>>>>>
> >>>>>>>>>> So I have spent the last several days almost full time figuring
> >>>> things
> >>>>>>>>> out
> >>>>>>>>>> and working on fixes, between the compiler and emulation
> classes.
> >>>>>>>>>> All the previous XML tests continue to pass, but I have many
> more
> >>>> unit
> >>>>>>>>>> tests and fixes lined up for the following:
> >>>>>>>>>>
> >>>>>>>>>> namespace directives
> >>>>>>>>>> default xml namespace
> >>>>>>>>>> use namespace (multiple)
> >>>>>>>>>>
> >>>>>>>>>> a number of fixes for xml filtering, including:
> >>>>>>>>>> -'this' resolves correctly in filters that include external
> >>>> references
> >>>>>>>>> from
> >>>>>>>>>> the fitler expression to the 'this' scope
> >>>>>>>>>> -handles alternate ordering of comparisons between XML 'getters'
> >> and
> >>>>>>>>>> literals
> >>>>>>>>>> e.g. something.(name() = "cat")  or something.("cat" = name())
> >>>> (these
> >>>>>>>>> are
> >>>>>>>>>> the same)
> >>>>>>>>>> -it (will) now handle XML e4x references in nested function
> calls
> >>>>>> inside
> >>>>>>>>>> the filter, e.g. things like:
> >>>>>>>>>> e.g.
> >>>>>>>>>> var people:XML = <people>
> >>>>>>>>>>            <person>
> >>>>>>>>>>                <name>Bob</name>
> >>>>>>>>>>                <age>32</age>
> >>>>>>>>>>            </person>
> >>>>>>>>>>            <person>
> >>>>>>>>>>                <name>Joe</name>
> >>>>>>>>>>                <age>46</age>
> >>>>>>>>>>            </person>
> >>>>>>>>>>        </people>;
> >>>>>>>>>> var findJoeByAge:Function = function (i:int):Boolean {
> >>>>>>>>>>            return i > 40;
> >>>>>>>>>>        };
> >>>>>>>>>> people.person.(findJoeByAge(parseInt(age))).name
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> I have lots more granular tests in QName, Namespace, and XML
> with
> >>>>>>>>> tuning to
> >>>>>>>>>> improve reliability.
> >>>>>>>>>> toXMLString XML node output also matches flash more correctly in
> >>>> what
> >>>>>> I
> >>>>>>>>>> have coming.
> >>>>>>>>>>
> >>>>>>>>>> One thing that I am trying to figure out, which I would
> appreciate
> >>>>>>>>> input on
> >>>>>>>>>> if someone has an answer:
> >>>>>>>>>> For the example:
> >>>>>>>>>>
> >>>>>>>>>> var feed:XML = new XML(
> >>>>>>>>>>                '<feed xmlns:atom="http://www.w3.org/2005/Atom";
> >>>>>>>>>> xmlns:m="nothing">\n' +
> >>>>>>>>>>                '  <link rel="no_namespace"
> >>>>>>>>>> href="blah/12321/domain/"/>\n' +
> >>>>>>>>>>                '</feed>\n');
> >>>>>>>>>> var atomSpace:Namespace = new Namespace('
> >>>> http://www.w3.org/2005/Atom'
> >>>>>> );
> >>>>>>>>>>
> >>>>>>>>>> Can anyone explain why this (in SWF, as a reference
> >> implementation):
> >>>>>>>>>> trace(feed.atomSpace::link.length())
> >>>>>>>>>> trace(feed.atomSpace::link.toXMLString())
> >>>>>>>>>> //output:
> >>>>>>>>>> 0
> >>>>>>>>>> {empty string}
> >>>>>>>>>> is different to:
> >>>>>>>>>> trace(feed.child(new QName(atomSpace,'link')).length())
> >>>>>>>>>> trace(feed.child(new QName(atomSpace,'link')).toXMLString())
> >>>>>>>>>> //output:
> >>>>>>>>>> 1
> >>>>>>>>>> <link rel="no_namespace" href="blah/12321/domain/" xmlns:atom="
> >>>>>>>>>> http://www.w3.org/2005/Atom"; xmlns:m="nothing"/>
> >>>>>>>>>>
> >>>>>>>>>> I had assumed the above cases would be the same, but the second
> >> one
> >>>> is
> >>>>>>>>>> behaving as if it has the default namespace included with the
> >>>>>> specified
> >>>>>>>>>> namespace in the QName matching (it does correctly match the
> >>>> namespace
> >>>>>>>>>> specifically as well -with e.g. <atom:link nodes where the
> prefix
> >>>> atom
> >>>>>>>>> is
> >>>>>>>>>> bound to the uri, but also seems to include link nodes with the
> >>>>>> default
> >>>>>>>>>> namespace, whether or not it is declared). I can accommodate
> this
> >>>>>>>>>> difference to make them behave the same, I just would like to
> >>>>>> understand
> >>>>>>>>>> the basis for the actual rules if anyone knows....
> >>>>>>>>>>
> >>>>>>>>>> I should be in a position to push the updates this coming
> weekend
> >> I
> >>>>>>>>> think.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>
> >>>>>>
> >>>>
> >>>>
> >>
> >>
>
>

Reply via email to