I'm surprised the ./js/src is hand written as it seems "almost" the same than what the cross-compile code looks like, if I cross-compile Corre, I get in IStrand:
org_apache_flex_core_IStrand.prototype.getBeadByType = function(classOrInterface) { }; in ./js/src: /** * getBeadByType() * * @expose * @param {Object} classOrInterface The type of bead to look for. * @return {org_apache_flex_core_IBead} The bead. */ org_apache_flex_core_IStrand.prototype.getBeadByType = function(classOrInterface) {}; Even with -keep-asdoc, I haven't the comments from .as reported, neither I have the @expose or the type annotation, but if I look at Application.js, for the strand property, they are the same comment, why ? /** * @protected * @type {org_apache_flex_core_IStrand} */ org_apache_flex_core_BeadViewBase.prototype._strand; and in js/src /** * @protected * @type {Object} */ org_apache_flex_core_BeadViewBase.prototype._strand = null; Another thing, in ClassFactory: org_apache_flex_core_ClassFactory = function(generator) { generator = typeof generator !== 'undefined' ? generator : null; this.generator = generator; }; in .js/src: org_apache_flex_core_ClassFactory = function(generator) { /** * @private * @type {Function} */ this.generator_ = generator; this.properties_ = null; }; Why to use generator_ and properties_, reserved word ? I did that as a test before I start other experiments with conditional compilation to check if I can trust the cross-compiled code. Frédéric THOMAS ---------------------------------------- > From: aha...@adobe.com > To: dev@flex.apache.org > Subject: Re: [FalconJX FlexJS] JQuery up and running, a nightmare but we now > have 1.9 in AS > Date: Wed, 24 Jun 2015 22:04:23 +0000 > > In these project directories, you should find: > > ./as - AS written against Flash (Sprite, TextField, etc) for SWF output > ./asjs - AS that is written against abstractions to be used in a SWF or > cross-compiled to js > ./js/src - JS that is handwritten to be used on the JS side. > ./js/out - JS that was cross-compiled from ./asjs > > The task is how to get rid of ./js/src and replace it with AS written > against js.swc. I only tried Network/HTTPService and decided that > conditional compiling would be better, but I haven’t figured out how to > deal with different base classes like HTMLElementWrapper in js/src but not > in as. IOW, UIBase has different base classes at some point (Sprite vs > HTMLElementWrapper). If conditional compilation works everywhere that’s > awesome, but if we need some other folder full of .as that only compiles > against js.swc that’s fine too. We won’t know until we really try it. I > wasn’t going to try right now so feel free if that’s what you want to work > on. > > What happens in the build script is that ./as and ./asjs are compiled into > a SWC with COMPC just to make sure it compiles cleanly since it runs > faster than COMPJSC so we find errors sooner. Then COMPJSC compiles > ./asjs into ./js/out. Then we run COMPC again to pack the ./js folder > into the SWC. Someday the COMPJSC probably need to be able to pack the js > directly into the SWC so we don’t have to run COMPC twice, or maybe we > should skip the first run of COMPC. > > Thanks, > -Alex > > > On 6/24/15, 1:35 PM, "Michael Schmalle" <teotigraphix...@gmail.com> wrote: > >>On Wed, Jun 24, 2015 at 4:33 PM, Frédéric THOMAS <webdoubl...@hotmail.com> >>wrote: >> >>> So, now, I guess those Core/js classes have been generated but how ? >>> what's the process ? >>> >>> >> >>What are you talking about? As far as I know all the Core/js were and >>written and need to be back ported to AS now. anything in an out directory >>was generated. >> >>Mike >> >> >> >>> >>> Frédéric THOMAS >>> >>> >>> ---------------------------------------- >>>> From: webdoubl...@hotmail.com >>>> To: dev@flex.apache.org >>>> Subject: RE: [FalconJX FlexJS] JQuery up and running, a nightmare but >>>we >>> now have 1.9 in AS >>>> Date: Wed, 24 Jun 2015 21:21:46 +0100 >>>> >>>> Ok, sorry, I got it !! >>>> >>>> Frédéric THOMAS >>>> >>>> >>>> ---------------------------------------- >>>>> From: webdoubl...@hotmail.com >>>>> To: dev@flex.apache.org >>>>> Subject: RE: [FalconJX FlexJS] JQuery up and running, a nightmare but >>> we now have 1.9 in AS >>>>> Date: Wed, 24 Jun 2015 21:03:17 +0100 >>>>> >>>>>> Try the -keep-asdoc flag on MXMLJSC. >>>>> >>>>> Actually, it is what I did, I tried to compile the asjs project >>>Core/as >>> to js hoping to get the same result than what I can see in Core/js >>>>> >>>>> What it doesn't compiler the same ? >>>>> >>>>> Frédéric THOMAS >>>>> >>>>> >>>>> ---------------------------------------- >>>>>> From: aha...@adobe.com >>>>>> To: dev@flex.apache.org >>>>>> Subject: Re: [FalconJX FlexJS] JQuery up and running, a nightmare >>>but >>> we now have 1.9 in AS >>>>>> Date: Wed, 24 Jun 2015 17:53:56 +0000 >>>>>> >>>>>> Try the -keep-asdoc flag on MXMLJSC. But the deal is that none of >>>these >>>>>> .as or .js files factor into the final app since they are all >>>externs >>> so >>>>>> <inject_html> won’t be seen. >>>>>> >>>>>> So yes, folks can use conditional compile to add stuff, but >>>requiring a >>>>>> base class may be easier for the developers. Anyway, we’ll find out >>> when >>>>>> more people use it. >>>>>> >>>>>> -Alex >>>>>> >>>>>> On 6/24/15, 10:12 AM, "Frédéric THOMAS" <webdoubl...@hotmail.com> >>> wrote: >>>>>> >>>>>>>> I’m not opposed to it. IMO, injecting Jquery’s scripts should be >>>>>>>> automatic. It is in the FlexJS Jquery.swc because you subclass >>>>>>>> org.apache.flex.jquery.Application and that automatically results >>>in >>> the >>>>>>>> script being added to the head. >>>>>>>> >>>>>>>> This externs-based swc concept is too new to know what is right or >>>>>>>>wrong. >>>>>>>> Just keep on coding and we’ll see repeating patterns emerge and >>>>>>>> encapsulate them. Folks will try it and like it or not. No need to >>> guess >>>>>>>> up front. Thanks for figuring it out. >>>>>>> >>>>>>> >>>>>>>This is true it is a bit edge case, only for externs based >>>applications >>>>>>>at the moment, it could become less true if want to use conditional >>>>>>>compilation for framework components too IMO and let the creator >>>build >>> it >>>>>>>in one shot, in 2 shots, he could still modify the generated JS to >>>>>>>include the <inject_html> though. >>>>>>> >>>>>>>Btw, >>>>>>> I had a look at the Closure Compiler Externs Extractor [1] but the >>>>>>>result of the extracted lib [2] doesn't show any type annotations, I >>>>>>>guess this is normal but I wonder how those google externs like this >>> one >>>>>>>[3] have been built ? >>>>>>> >>>>>>>Another thing, why when I cross compile IStand, I don't have the >>> comments >>>>>>>generated like: >>>>>>> >>>>>>>/** >>>>>>> * addBead() >>>>>>> * >>>>>>> * @expose >>>>>>> * @param {org_apache_flex_core_IBead} bead The bead to add. >>>>>>> */ >>>>>>> >>>>>>>I've got that only: >>>>>>> >>>>>>>/** >>>>>>> * org.apache.flex.core.IStrand >>>>>>> * >>>>>>> * @fileoverview >>>>>>> * >>>>>>> * @suppress {checkTypes} >>>>>>> */ >>>>>>> >>>>>>>goog.provide('org_apache_flex_core_IStrand'); >>>>>>> >>>>>>>/** >>>>>>> * @interface >>>>>>> */ >>>>>>>org_apache_flex_core_IStrand = function() { >>>>>>>}; >>>>>>>org_apache_flex_core_IStrand.prototype.addBead = function(bead) { >>>>>>>}; >>>>>>>org_apache_flex_core_IStrand.prototype.getBeadByType = >>>>>>>function(classOrInterface) { >>>>>>>}; >>>>>>>org_apache_flex_core_IStrand.prototype.removeBead = function(bead) { >>>>>>>}; >>>>>>> >>>>>>> >>>>>>>/** >>>>>>> * Metadata >>>>>>> * >>>>>>> * @type {Object.<string, Array.<Object>>} >>>>>>> */ >>>>>>>org_apache_flex_core_IStrand.prototype.FLEXJS_CLASS_INFO = { names: >>>[{ >>>>>>>name: 'IStrand', qName: 'org_apache_flex_core_IStrand'}] }; >>>>>>> >>>>>>>Thanks >>>>>>>Frédéric THOMAS >>>>>>> >>>>>>>[1] http://www.dotnetwise.com/Code/Externs/ >>>>>>>[2] http://code.jquery.com/jquery-2.1.4.js >>>>>>>[3] >>>>>>> >>> >>>https://raw.githubusercontent.com/google/closure-compiler/master/contrib/ >>>e >>>>>>>xterns/angular-1.3.js >>>>>>> >>>>>>> >>>>>>>---------------------------------------- >>>>>>>> From: aha...@adobe.com >>>>>>>> To: dev@flex.apache.org >>>>>>>> Subject: Re: [FalconJX FlexJS] JQuery up and running, a nightmare >>>but >>>>>>>>we now have 1.9 in AS >>>>>>>> Date: Wed, 24 Jun 2015 05:59:45 +0000 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 6/23/15, 10:03 PM, "Frédéric THOMAS" <webdoubl...@hotmail.com> >>> wrote: >>>>>>>> >>>>>>>>>Yes, it's cool, it simplified my life as well as being able to >>>modify >>>>>>>>>the >>>>>>>>>html head from AS, for example here with the dynamic loading of >>>the >>>>>>>>>jQuery lib but it seems I'm the only one happy with that :-) >>>>>>>>> >>>>>>>>>No interests to add such feature to the framework though ? >>>>>>>> >>>>>>>> I’m not opposed to it. IMO, injecting Jquery’s scripts should be >>>>>>>> automatic. It is in the FlexJS Jquery.swc because you subclass >>>>>>>> org.apache.flex.jquery.Application and that automatically results >>>in >>> the >>>>>>>> script being added to the head. >>>>>>>> >>>>>>>> This externs-based swc concept is too new to know what is right or >>>>>>>>wrong. >>>>>>>> Just keep on coding and we’ll see repeating patterns emerge and >>>>>>>> encapsulate them. Folks will try it and like it or not. No need to >>> guess >>>>>>>> up front. Thanks for figuring it out. >>>>>>>> >>>>>>>> -Alex >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >>> >