I just found that http://stackoverflow.com/questions/881515/how-do-i-declare-a-namespace-in-javascript
There are I guess all the ways to create them. Frédéric THOMAS ---------------------------------------- > Date: Sun, 28 Jun 2015 15:51:45 -0400 > Subject: Re: [Externs] jasmine-2.0.js > From: teotigraphix...@gmail.com > To: dev@flex.apache.org > > On Sun, Jun 28, 2015 at 3:49 PM, Frédéric THOMAS <webdoubl...@hotmail.com> > wrote: > >>> My intuition is telling me I am not handling them correctly for most >> cases, >>> things work right now but it would be better if we had some test .js >> files >>> that had all types of package/namespace creation structures. >> >> Like what ? >> >> > Well if I had complete tests I could tell you. ;-) > > Mike > > > >> Frédéric THOMAS >> >> >> ---------------------------------------- >>> Date: Sun, 28 Jun 2015 15:33:42 -0400 >>> Subject: Re: [Externs] jasmine-2.0.js >>> From: teotigraphix...@gmail.com >>> To: dev@flex.apache.org >>> >>> And... haha packages are really sketchy. We need more package type test >>> from the externs that use them. >>> >>> My intuition is telling me I am not handling them correctly for most >> cases, >>> things work right now but it would be better if we had some test .js >> files >>> that had all types of package/namespace creation structures. >>> >>> Mike >>> >>> On Sun, Jun 28, 2015 at 3:28 PM, Michael Schmalle < >> teotigraphix...@gmail.com >>>> wrote: >>> >>>> Fred, what I plan on doing since you are going to be working with the >> code >>>> is start to test all the base externs we have and find bugs or non >>>> implemented things. I will probably just add the things I find in JIRA >>>> throughout the week during my little free time. >>>> >>>> I'm not going to change any code, just add unit tests. One other thing >>>> that I havn't got to is type unit tests. I really just hacked the type >>>> resolving, yeah it works but I see ways in the future of doing some >> stuff >>>> with maybe function callbacks and if I get the type tests down well, I >> will >>>> feel more comfortable trying to parse the harder externs out there. >>>> >>>> Also, we should allow a way to parse those generated externs just for >>>> stubs but, they have nested {} object creation which the parser ignores >>>> right now, so that is another thing that can be tested and implemented. >>>> >>>> Mike >>>> >>>> >>>> >>>> On Sun, Jun 28, 2015 at 3:21 PM, Frédéric THOMAS < >> webdoubl...@hotmail.com> >>>> wrote: >>>> >>>>> Thanks ! >>>>> >>>>> Frédéric THOMAS >>>>> >>>>> >>>>> ---------------------------------------- >>>>>> Date: Sun, 28 Jun 2015 15:11:20 -0400 >>>>>> Subject: Re: [Externs] jasmine-2.0.js >>>>>> From: teotigraphix...@gmail.com >>>>>> To: dev@flex.apache.org >>>>>> >>>>>> Yeah I know, sent to your hotmail. >>>>>> >>>>>> Mike >>>>>> >>>>>> On Sun, Jun 28, 2015 at 3:10 PM, Frédéric THOMAS < >>>>> webdoubl...@hotmail.com> >>>>>> wrote: >>>>>> >>>>>>>> What you can do is to send me your eclipse formatter property file. >>>>>>>> I will use it in IJ. >>>>>>> >>>>>>> I meant export your formatter profiles in xml >>>>>>> >>>>>>> Thanks, >>>>>>> Frédéric THOMAS >>>>>>> >>>>>>> >>>>>>> ---------------------------------------- >>>>>>>> From: webdoubl...@hotmail.com >>>>>>>> To: dev@flex.apache.org >>>>>>>> Subject: RE: [Externs] jasmine-2.0.js >>>>>>>> Date: Sun, 28 Jun 2015 20:06:19 +0100 >>>>>>>> >>>>>>>>> BTW, what should we do about code formatting, it seems my >> formatting >>>>> is >>>>>>>>> different then yours. I am using Eclipse right now since I don't >>>>> have IJ >>>>>>>>> setup for Falcon dev. >>>>>>>> >>>>>>>> I was wrong when I thought I had setup IJ correctly for Falcon, they >>>>> are >>>>>>> still >>>>>>>> things it doesn't know how to do, for instance, share the generated >>>>>>> classes >>>>>>>> thru modules, therefore, it is not yet suitable for all parts of >>>>> Falcon, >>>>>>> at the >>>>>>>> moment, I use tricks to be able to code with. >>>>>>>> >>>>>>>> What you can do is to send me your eclipse formatter property file. >>>>>>>> I will use it in IJ. >>>>>>>> >>>>>>>> Frédéric THOMAS >>>>>>>> >>>>>>>> >>>>>>>> ---------------------------------------- >>>>>>>>> Date: Sun, 28 Jun 2015 14:57:50 -0400 >>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js >>>>>>>>> From: teotigraphix...@gmail.com >>>>>>>>> To: dev@flex.apache.org >>>>>>>>> >>>>>>>>> BTW, what should we do about code formatting, it seems my >> formatting >>>>> is >>>>>>>>> different then yours. I am using Eclipse right now since I don't >>>>> have IJ >>>>>>>>> setup for Falcon dev. >>>>>>>>> >>>>>>>>> Mike >>>>>>>>> >>>>>>>>> On Sun, Jun 28, 2015 at 2:55 PM, Michael Schmalle < >>>>>>> teotigraphix...@gmail.com >>>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Yeah, I didn't want to go crazy with subclasses. Ideally class, >>>>>>> function >>>>>>>>>> and constant could share a "TopLevelReference" subclass of >>>>>>> BaseReference >>>>>>>>>> and you could put import logic there if you wanted to. >>>>>>>>>> >>>>>>>>>> Mike >>>>>>>>>> >>>>>>>>>> On Sun, Jun 28, 2015 at 2:51 PM, Frédéric THOMAS < >>>>>>> webdoubl...@hotmail.com> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>>> Once you find instances of imports that need to be saves, your >>>>>>> current >>>>>>>>>>>> context is already the ClassReference, so call >>>>> classRef.addImport(). >>>>>>> :) >>>>>>>>>>> >>>>>>>>>>> Btw, I will probably need to have a addImport() FunctionReference >>>>> too, >>>>>>>>>>> right ? >>>>>>>>>>> >>>>>>>>>>> Frédéric THOMAS >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> ---------------------------------------- >>>>>>>>>>>> Date: Sun, 28 Jun 2015 14:23:57 -0400 >>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js >>>>>>>>>>>> From: teotigraphix...@gmail.com >>>>>>>>>>>> To: dev@flex.apache.org >>>>>>>>>>>> >>>>>>>>>>>> Kewl. >>>>>>>>>>>> >>>>>>>>>>>> I am going to be busy most of the week remodeling my mother in >>>>> laws >>>>>>>>>>>> bathroom starting tomorrow. So if you want to try a new custom >>>>> pass >>>>>>> like >>>>>>>>>>>> ResolveImportPass, go for it, I will just stay out of the way. I >>>>>>> think >>>>>>>>>>> it >>>>>>>>>>>> would be good for you. :) If not, no worries, you gave me the >>>>> idea. >>>>>>> haha >>>>>>>>>>>> >>>>>>>>>>>> If you did, look at it like this, since all imports and logic >>>>> therin >>>>>>> are >>>>>>>>>>>> totally dependent on what the compiler actual saves into the >>>>> model, >>>>>>>>>>> logic >>>>>>>>>>>> says this needs to be the last or one of the last passes, from >> my >>>>>>>>>>>> perspective, it needs to be the last. >>>>>>>>>>>> >>>>>>>>>>>> If you make it the last, then this pass is not coupled to us >>>>> fixing >>>>>>> bugs >>>>>>>>>>>> ahead of it. Say we find out we need to add another structure of >>>>> AST >>>>>>>>>>>> parsing for a node structure I havn't implemented yet, well we >> are >>>>>>> safe. >>>>>>>>>>>> >>>>>>>>>>>> Why safe? Because in this import pass, you are using the MODEL, >>>>> so no >>>>>>>>>>> AST. >>>>>>>>>>>> Instead of worrying about resolving imports during AST >> traversal, >>>>> you >>>>>>>>>>> are >>>>>>>>>>>> using what is already in the container after all that complex >>>>>>> parsing is >>>>>>>>>>>> finished. >>>>>>>>>>>> >>>>>>>>>>>> So this pass, you would use your skills at knowing "what" in >> each >>>>>>>>>>> subclass >>>>>>>>>>>> of BaseReference could contain a type. Then write your logic >> pass >>>>> to >>>>>>>>>>>> traverse Classes, then into each classes members, then loop >>>>> through >>>>>>> each >>>>>>>>>>>> member and analyze their types and do your import testing logic >>>>>>> there. >>>>>>>>>>>> >>>>>>>>>>>> Once you find instances of imports that need to be saves, your >>>>>>> current >>>>>>>>>>>> context is already the ClassReference, so call >>>>> classRef.addImport(). >>>>>>> :) >>>>>>>>>>>> >>>>>>>>>>>> Mike >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Sun, Jun 28, 2015 at 2:13 PM, Frédéric THOMAS < >>>>>>>>>>> webdoubl...@hotmail.com> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>>> All I meant is that 75% of the time we would just want to save >>>>>>> things >>>>>>>>>>> in >>>>>>>>>>>>>> the model or a reference, such that you use addImport() during >>>>> the >>>>>>>>>>>>>> resolution. Then it keeps the emit() phase straight burn >> rubber >>>>> and >>>>>>>>>>> loop >>>>>>>>>>>>>> through all existing model structures, where imports would be >>>>> just >>>>>>> a >>>>>>>>>>> list >>>>>>>>>>>>>> that emitImport() iterates through, no logic. >>>>>>>>>>>>> >>>>>>>>>>>>> Got it ! >>>>>>>>>>>>> >>>>>>>>>>>>>> I AM NOT saying what you did was wrong, I am just offering a >>>>> look >>>>>>> into >>>>>>>>>>>>> how >>>>>>>>>>>>>> I set it up. You know how I got this pattern? From my massive >>>>>>>>>>> mistakes in >>>>>>>>>>>>>> code generators of past. :) I realized that an emit phase >> needs >>>>> to >>>>>>> be >>>>>>>>>>>>>> stupid and not dependent on any type of intelligence, just >>>>> needs to >>>>>>>>>>>>> create >>>>>>>>>>>>>> what already exists. >>>>>>>>>>>>> >>>>>>>>>>>>> I'm in a phase where I'm learning compiler things and indeed I >>>>> will >>>>>>> do >>>>>>>>>>>>> some mistakes >>>>>>>>>>>>> or I won't be as precise as you who have experience on it. >>>>>>>>>>>>> Therefore I can accept critics and learn from your explanations >>>>> :-) >>>>>>>>>>>>> >>>>>>>>>>>>>> This can also solve many problems at once. So I haven't got >> back >>>>>>> into >>>>>>>>>>> the >>>>>>>>>>>>>> code BUT my intuition says we need a universal solution for >> any >>>>>>> type >>>>>>>>>>> of >>>>>>>>>>>>>> TYPE that is attached to a member, identifier such as a param >>>>> type, >>>>>>>>>>>>> return >>>>>>>>>>>>>> type, filed type, superclass and interface(already taken care >> of >>>>>>> using >>>>>>>>>>>>>> addImport()). >>>>>>>>>>>>>> >>>>>>>>>>>>>> See where I am coming from? We know that every type is >>>>> eventually >>>>>>>>>>> going >>>>>>>>>>>>> to >>>>>>>>>>>>>> need to be scanned for imports and validated. >>>>>>>>>>>>> >>>>>>>>>>>>> Yes, actually, I was expecting to see a specific pass for that. >>>>>>>>>>>>> >>>>>>>>>>>>>> Dude, I just don't want to come off bossy or condescending, I >>>>> love >>>>>>> you >>>>>>>>>>>>>> help. A lot can be added to this compiler that could be very >>>>>>>>>>> interesting. >>>>>>>>>>>>>> So having you understand my design intention is really >>>>> important to >>>>>>>>>>> me. >>>>>>>>>>>>> :) >>>>>>>>>>>>> >>>>>>>>>>>>> Don't worry, I don't think you are bossy or condescending Mike, >>>>> I'm >>>>>>>>>>>>> reading you >>>>>>>>>>>>> and try to put in parallel the new informations you give and >> what >>>>>>> I've >>>>>>>>>>>>> seen in the code >>>>>>>>>>>>> for a better understanding, that's it. >>>>>>>>>>>>> >>>>>>>>>>>>> Cheers, >>>>>>>>>>>>> Frédéric THOMAS >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> ---------------------------------------- >>>>>>>>>>>>>> Date: Sun, 28 Jun 2015 13:48:02 -0400 >>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js >>>>>>>>>>>>>> From: teotigraphix...@gmail.com >>>>>>>>>>>>>> To: dev@flex.apache.org >>>>>>>>>>>>>> >>>>>>>>>>>>>> Fred you did an awesome job. :) >>>>>>>>>>>>>> >>>>>>>>>>>>>> All I meant is that 75% of the time we would just want to save >>>>>>> things >>>>>>>>>>> in >>>>>>>>>>>>>> the model or a reference, such that you use addImport() during >>>>> the >>>>>>>>>>>>>> resolution. Then it keeps the emit() phase straight burn >> rubber >>>>> and >>>>>>>>>>> loop >>>>>>>>>>>>>> through all existing model structures, where imports would be >>>>> just >>>>>>> a >>>>>>>>>>> list >>>>>>>>>>>>>> that emitImport() iterates through, no logic. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I AM NOT saying what you did was wrong, I am just offering a >>>>> look >>>>>>> into >>>>>>>>>>>>> how >>>>>>>>>>>>>> I set it up. You know how I got this pattern? From my massive >>>>>>>>>>> mistakes in >>>>>>>>>>>>>> code generators of past. :) I realized that an emit phase >> needs >>>>> to >>>>>>> be >>>>>>>>>>>>>> stupid and not dependent on any type of intelligence, just >>>>> needs to >>>>>>>>>>>>> create >>>>>>>>>>>>>> what already exists. >>>>>>>>>>>>>> >>>>>>>>>>>>>> This can also solve many problems at once. So I haven't got >> back >>>>>>> into >>>>>>>>>>> the >>>>>>>>>>>>>> code BUT my intuition says we need a universal solution for >> any >>>>>>> type >>>>>>>>>>> of >>>>>>>>>>>>>> TYPE that is attached to a member, identifier such as a param >>>>> type, >>>>>>>>>>>>> return >>>>>>>>>>>>>> type, filed type, superclass and interface(already taken care >> of >>>>>>> using >>>>>>>>>>>>>> addImport()). >>>>>>>>>>>>>> >>>>>>>>>>>>>> See where I am coming from? We know that every type is >>>>> eventually >>>>>>>>>>> going >>>>>>>>>>>>> to >>>>>>>>>>>>>> need to be scanned for imports and validated. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Dude, I just don't want to come off bossy or condescending, I >>>>> love >>>>>>> you >>>>>>>>>>>>>> help. A lot can be added to this compiler that could be very >>>>>>>>>>> interesting. >>>>>>>>>>>>>> So having you understand my design intention is really >>>>> important to >>>>>>>>>>> me. >>>>>>>>>>>>> :) >>>>>>>>>>>>>> >>>>>>>>>>>>>> Mike >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Sun, Jun 28, 2015 at 1:37 PM, Frédéric THOMAS < >>>>>>>>>>>>> webdoubl...@hotmail.com> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Fred pretty much iterated things correctly. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> The ResolvePackageNamePass I haven't to get back to. I was >> in >>>>> the >>>>>>>>>>>>> middle >>>>>>>>>>>>>>> of >>>>>>>>>>>>>>>> implementing something when I got it to work in another >> place. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> There is a pattern to how things are parsed so most of the >>>>> time >>>>>>> it's >>>>>>>>>>>>>>> better >>>>>>>>>>>>>>>> to set state as nodes/references are being added to the >>>>> model. In >>>>>>>>>>> the >>>>>>>>>>>>>>> case >>>>>>>>>>>>>>>> of imports, I don't see any problems right now with checking >>>>>>> during >>>>>>>>>>> the >>>>>>>>>>>>>>>> emit phase but, if the model was more interactive during the >>>>>>>>>>> session, >>>>>>>>>>>>>>> this >>>>>>>>>>>>>>>> type of logic should happen during the resolve phase so the >>>>> model >>>>>>>>>>> with >>>>>>>>>>>>>>> it's >>>>>>>>>>>>>>>> references has a correct state if there is any logic >> happening >>>>>>>>>>> between >>>>>>>>>>>>>>> two >>>>>>>>>>>>>>>> references. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks for the explanation, I will take the time to do some >>>>> debug >>>>>>>>>>> spins >>>>>>>>>>>>> to >>>>>>>>>>>>>>> understand >>>>>>>>>>>>>>> when the phases are called, what they do and what classes are >>>>>>>>>>> involved. >>>>>>>>>>>>>>> Given it is a fairly small transpiler and despite the >> recursive >>>>>>>>>>> visitor >>>>>>>>>>>>>>> pattern, I guess I can do it. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> How much are you working on right now Fred? I just ask >>>>> because I >>>>>>>>>>> don't >>>>>>>>>>>>>>> want >>>>>>>>>>>>>>>> to create any conflicts. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Go ahead Mike, I'm done with that at the moment, I did my >> last >>>>>>>>>>> cleanup >>>>>>>>>>>>>>> already. >>>>>>>>>>>>>>> Anyway, better I work on a branch and commit the branch >> instead >>>>>>> for >>>>>>>>>>>>> review >>>>>>>>>>>>>>> next time. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Frédéric THOMAS >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> ---------------------------------------- >>>>>>>>>>>>>>>> Date: Sun, 28 Jun 2015 13:23:15 -0400 >>>>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js >>>>>>>>>>>>>>>> From: teotigraphix...@gmail.com >>>>>>>>>>>>>>>> To: dev@flex.apache.org >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Fred pretty much iterated things correctly. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> The ResolvePackageNamePass I haven't to get back to. I was >> in >>>>> the >>>>>>>>>>>>> middle >>>>>>>>>>>>>>> of >>>>>>>>>>>>>>>> implementing something when I got it to work in another >> place. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> There is a pattern to how things are parsed so most of the >>>>> time >>>>>>> it's >>>>>>>>>>>>>>> better >>>>>>>>>>>>>>>> to set state as nodes/references are being added to the >>>>> model. In >>>>>>>>>>> the >>>>>>>>>>>>>>> case >>>>>>>>>>>>>>>> of imports, I don't see any problems right now with checking >>>>>>> during >>>>>>>>>>> the >>>>>>>>>>>>>>>> emit phase but, if the model was more interactive during the >>>>>>>>>>> session, >>>>>>>>>>>>>>> this >>>>>>>>>>>>>>>> type of logic should happen during the resolve phase so the >>>>> model >>>>>>>>>>> with >>>>>>>>>>>>>>> it's >>>>>>>>>>>>>>>> references has a correct state if there is any logic >> happening >>>>>>>>>>> between >>>>>>>>>>>>>>> two >>>>>>>>>>>>>>>> references. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> How much are you working on right now Fred? I just ask >>>>> because I >>>>>>>>>>> don't >>>>>>>>>>>>>>> want >>>>>>>>>>>>>>>> to create any conflicts. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Mike >>>>>>>>>>>>>>>> . >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Sat, Jun 27, 2015 at 5:58 PM, Michael Schmalle < >>>>>>>>>>>>>>> teotigraphix...@gmail.com >>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hey Fred, I was out all day. I will have some time in the >>>>>>> morning >>>>>>>>>>> to >>>>>>>>>>>>>>> look >>>>>>>>>>>>>>>>> at what you did and comment. :) >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Mike >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Sat, Jun 27, 2015 at 5:27 PM, Frédéric THOMAS < >>>>>>>>>>>>>>> webdoubl...@hotmail.com> >>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Just to explain what I did, especially to folks who would >>>>> like >>>>>>> to >>>>>>>>>>> get >>>>>>>>>>>>>>>>>> their hand dirty on the compiler but like me, don't know >>>>> how it >>>>>>>>>>> works >>>>>>>>>>>>>>> :-) >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I was adding jasmine-2.0.js [1], a file that contains only >>>>>>> jsDoc >>>>>>>>>>>>>>>>>> (parameters and return type descriptions) and >> declarations, >>>>> no >>>>>>>>>>>>>>>>>> implementations. >>>>>>>>>>>>>>>>>> When I say "adding jasmine-2.0.js" I mean, transpile this >>>>> .js >>>>>>>>>>> file to >>>>>>>>>>>>>>> .as >>>>>>>>>>>>>>>>>> and then compile it to a .swc. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> The transpilation part is done by EXTERNC >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> You call it like that: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> <java jar="${basedir}/compiler.jx/lib/externc.jar" >>>>> fork="true" >>>>>>>>>>>>>>>>>> failonerror="false"> >>>>>>>>>>>>>>>>>> <arg value="+flexlib=${env.ASJS_HOME}/frameworks" /> >>>>>>>>>>>>>>>>>> <arg value="-debug" /> >>>>>>>>>>>>>>>>>> <arg >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> value="-load-config=${basedir}/externs/jasmine/jasmine-compile-config.xml" >>>>>>>>>>>>>>>>>> /> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> In the jasmine-compile-config.xml, you can exclude classes >>>>> and >>>>>>>>>>>>> member, >>>>>>>>>>>>>>>>>> for example, in the jasmine.Spec class, I excluded the >>>>> variable >>>>>>>>>>>>>>> $injector >>>>>>>>>>>>>>>>>> as its type was coming from the Angular library that is >> not >>>>> yet >>>>>>>>>>>>>>> transpiled. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> <field-exclude> >>>>>>>>>>>>>>>>>> <class>jasmine.Spec</class> >>>>>>>>>>>>>>>>>> <field>$injector</field> >>>>>>>>>>>>>>>>>> </field-exclude> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> You can also exclude classes and functions. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> The compile part is done by the falcon compc as follow: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> <java >>>>>>>>>>>>> >> jar="${basedir}/compiler/generated/dist/sdk/lib/falcon-compc.jar" >>>>>>>>>>>>>>>>>> fork="true" >>>>>>>>>>>>>>>>>> failonerror="true"> >>>>>>>>>>>>>>>>>> <arg value="+flexlib=${env.ASJS_HOME}/frameworks" /> >>>>>>>>>>>>>>>>>> <arg value="-debug" /> >>>>>>>>>>>>>>>>>> <arg >>>>>>>>>>>>>>>>>> >>>>>>>>>>> >> value="-load-config=${basedir}/externs/jasmine/compile-config.xml" >>>>> /> >>>>>>>>>>>>>>>>>> <arg >>>>>>>>>>>>>>>>>> >>>>>>>>>>> >> value="-output=${basedir}/externs/jasmine/out/bin/jasmine-2.0.swc" >>>>> /> >>>>>>>>>>>>>>>>>> </java> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> The problem was that this last part was failing with an >> NPE >>>>> a >>>>>>>>>>> Type of >>>>>>>>>>>>>>>>>> something: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> org.apache.flex.compiler.internal.scopes.TypeScope.getPropertyForMemberAccess(TypeScope.java:344) >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Even looking closely at the code, I didn't get why it was >>>>>>> failing >>>>>>>>>>> but >>>>>>>>>>>>>>> for >>>>>>>>>>>>>>>>>> sure, because it was trying to compile one of the >> transpiled >>>>>>> .as >>>>>>>>>>>>> file, >>>>>>>>>>>>>>> this >>>>>>>>>>>>>>>>>> transpiled code was wrong. >>>>>>>>>>>>>>>>>> Looking at those .as, it was easy to see that some import >>>>> were >>>>>>>>>>>>> missing. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> So, why the 2 others externs (js and jquery) had no >> issues ? >>>>>>>>>>>>>>>>>> It is always surprising to see something working on all >> the >>>>>>> things >>>>>>>>>>>>>>> except >>>>>>>>>>>>>>>>>> of yours, but it can help you too :-) >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> So, I've been looking at those other transpiled .as files >>>>> from >>>>>>>>>>>>> existing >>>>>>>>>>>>>>>>>> externs to see if they had imports and they were some. >>>>>>>>>>>>>>>>>> I then created a mini jasmine.js containing only the >> faulty >>>>>>> case >>>>>>>>>>>>> only, >>>>>>>>>>>>>>>>>> that, from what I've been able to determinate, was that >> the >>>>>>> import >>>>>>>>>>>>> was >>>>>>>>>>>>>>> not >>>>>>>>>>>>>>>>>> generated when a static function had a return type of a >>>>> class >>>>>>>>>>> created >>>>>>>>>>>>>>> via a >>>>>>>>>>>>>>>>>> function constructor, so, I filled this mini jasmine.js >> with >>>>>>> the >>>>>>>>>>>>>>> equivalent >>>>>>>>>>>>>>>>>> of a static function like this: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> /** >>>>>>>>>>>>>>>>>> * @return {!jasmine.Clock} >>>>>>>>>>>>>>>>>> */ >>>>>>>>>>>>>>>>>> jasmine.clock = function() {}; >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Which should transpile in AS3, something like: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> import jasmine.Clock; >>>>>>>>>>>>>>>>>> public static function clock():Clock {} >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> and a function constructor like this: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> /** @constructor */ >>>>>>>>>>>>>>>>>> jasmine.Clock = function() {}; >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> which transpile: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> package jasmine { >>>>>>>>>>>>>>>>>> public class Clock {} >>>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Created a test class based on those Mike created for the >>>>>>> previous >>>>>>>>>>>>>>> externs >>>>>>>>>>>>>>>>>> doing: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> // jasmine, the main jasmine class. >>>>>>>>>>>>>>>>>> ClassReference jasmine = >> model.getClassReference("jasmine"); >>>>>>>>>>>>>>>>>> assertNotNull(jasmine); >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> assertTrue(jasmine.hasImport("jasmine.Clock")); >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> The hasImport method didn't exist on ClassReference but it >>>>> was >>>>>>> a >>>>>>>>>>>>>>>>>> addImport(), I follow to where it was called in >>>>>>>>>>> ResolvePackagesPass >>>>>>>>>>>>>>> hoping >>>>>>>>>>>>>>>>>> to find a missing case but after debug spin I wasn't able >>>>> to do >>>>>>>>>>> what >>>>>>>>>>>>> I >>>>>>>>>>>>>>>>>> expected, I'm not sure I understood all the logic in this >>>>> class >>>>>>>>>>> but >>>>>>>>>>>>> it >>>>>>>>>>>>>>>>>> looked like the Node of my return type was never visited >> and >>>>>>>>>>>>> therefore >>>>>>>>>>>>>>>>>> wasn't able to add my import here. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> But wait, in the ClassReference, I have a >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> public MethodReference addMethod(Node node, String >>>>>>> functionName, >>>>>>>>>>>>>>>>>> JSDocInfo comment, boolean isStatic) >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> To me it would be enough to add the import to the list of >>>>>>> imports >>>>>>>>>>> to >>>>>>>>>>>>> be >>>>>>>>>>>>>>>>>> emitted when the MethodReference is to be added, I just >> had >>>>> to >>>>>>>>>>>>>>> determinate >>>>>>>>>>>>>>>>>> if the return type given in the jsDoc was not from the >>>>> current >>>>>>>>>>>>>>> package, the >>>>>>>>>>>>>>>>>> given method not excluded, the given return type neither ! >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> My test was passing was I was able to compile with this >> new >>>>>>> code >>>>>>>>>>> the >>>>>>>>>>>>>>> old >>>>>>>>>>>>>>>>>> externs. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> The only thing I had to do to finish to compile the >> jasmine >>>>>>> extern >>>>>>>>>>>>> was >>>>>>>>>>>>>>> to >>>>>>>>>>>>>>>>>> emit the imports for the global functions too as they >> shown >>>>> to >>>>>>> be >>>>>>>>>>>>>>> faulty >>>>>>>>>>>>>>>>>> for the same reasons. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Mike will probably tell me now where my logic was wrong >> now >>>>> :-) >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Frédéric THOMAS >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> ---------------------------------------- >>>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com >>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org >>>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js >>>>>>>>>>>>>>>>>>> Date: Sat, 27 Jun 2015 20:43:43 +0100 >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Ok, done ! >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> I forgot to uncomment the externc build of jasmine and >>>>> print >>>>>>> the >>>>>>>>>>>>>>> global >>>>>>>>>>>>>>>>>> function imports ! >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Frédéric THOMAS >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> ---------------------------------------- >>>>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com >>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org >>>>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js >>>>>>>>>>>>>>>>>>>> Date: Sat, 27 Jun 2015 20:12:16 +0100 >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> I pushed the changes which are ready to be reviewed. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> oups, hold on, I had some things commented that hidden >>>>> other >>>>>>>>>>>>>>> problems, >>>>>>>>>>>>>>>>>> I will continue on it. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Frédéric THOMAS >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> ---------------------------------------- >>>>>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com >>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org >>>>>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js >>>>>>>>>>>>>>>>>>>>> Date: Sat, 27 Jun 2015 18:31:32 +0100 >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Hi Mike, >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> I pushed the changes which are ready to be reviewed. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Note: The jasmine-2.0.js is not committed as it should >> be >>>>>>>>>>>>> downloaded >>>>>>>>>>>>>>>>>> with the unpack-externs target of the download.xml, I >>>>> followed >>>>>>> the >>>>>>>>>>>>>>> model. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> ---------------------------------------- >>>>>>>>>>>>>>>>>>>>>> Date: Sat, 27 Jun 2015 05:31:50 -0400 >>>>>>>>>>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js >>>>>>>>>>>>>>>>>>>>>> From: teotigraphix...@gmail.com >>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> I just noticed you said today or tomorrow, whatever >> man. >>>>>>>>>>> doesn't >>>>>>>>>>>>>>>>>> matter. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Mike >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> On Sat, Jun 27, 2015 at 5:17 AM, Michael Schmalle < >>>>>>>>>>>>>>>>>> teotigraphix...@gmail.com >>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Well its the practice. I know the pattern I am using >> so >>>>>>> if I >>>>>>>>>>>>> have >>>>>>>>>>>>>>> to >>>>>>>>>>>>>>>>>>>>>>> adjust it to fit I will. You can tell that with AST >>>>> type >>>>>>>>>>> stuff, >>>>>>>>>>>>> it >>>>>>>>>>>>>>>>>> has to >>>>>>>>>>>>>>>>>>>>>>> follow a specific pattern or everything turns to crap >>>>> when >>>>>>>>>>>>> trying >>>>>>>>>>>>>>>>>> to add >>>>>>>>>>>>>>>>>>>>>>> stuff down the road. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Commit it sooner than later as I have a couple hours >> to >>>>>>>>>>> check it >>>>>>>>>>>>>>>>>> out this >>>>>>>>>>>>>>>>>>>>>>> morning. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Mike >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> On Sat, Jun 27, 2015 at 3:15 AM, Frédéric THOMAS < >>>>>>>>>>>>>>>>>> webdoubl...@hotmail.com> >>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Hi Mike, >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> I can now compile jasmine, I'm not sure my fix is >> very >>>>>>> clean >>>>>>>>>>>>> but >>>>>>>>>>>>>>> it >>>>>>>>>>>>>>>>>>>>>>>> works, I've been able to compile all the externs >> with. >>>>>>>>>>>>>>>>>>>>>>>> I will commit it later today or tomorrow as I need >> to >>>>>>> clean >>>>>>>>>>> a >>>>>>>>>>>>> bit >>>>>>>>>>>>>>>>>> before >>>>>>>>>>>>>>>>>>>>>>>> and it would be nice if you can review it. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> ---------------------------------------- >>>>>>>>>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com >>>>>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org >>>>>>>>>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js >>>>>>>>>>>>>>>>>>>>>>>>> Date: Fri, 26 Jun 2015 22:43:30 +0100 >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> Hey Mike, it looks like "import jasmine.Clock;" is >>>>>>> missing >>>>>>>>>>> in >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>>> generated jasmine.as, that's it ! >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> ---------------------------------------- >>>>>>>>>>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com >>>>>>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org >>>>>>>>>>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js >>>>>>>>>>>>>>>>>>>>>>>>>> Date: Fri, 26 Jun 2015 22:26:32 +0100 >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> HAHA, ah that is a hard one man, thanks for the >>>>> offer >>>>>>>>>>> but I >>>>>>>>>>>>>>>>>> think I am >>>>>>>>>>>>>>>>>>>>>>>>>>> going to need to get this one. There are a couple >>>>>>> places >>>>>>>>>>> it >>>>>>>>>>>>>>>>>> could be >>>>>>>>>>>>>>>>>>>>>>>> though >>>>>>>>>>>>>>>>>>>>>>>>>>> if you are curious. >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> First you really need to understand the problem, >> I >>>>> am >>>>>>>>>>> typing >>>>>>>>>>>>>>>>>> this >>>>>>>>>>>>>>>>>>>>>>>> stuff in >>>>>>>>>>>>>>>>>>>>>>>>>>> between installing a bathroom vanity and sink, >> so I >>>>>>>>>>> haven't >>>>>>>>>>>>>>>>>> looked at >>>>>>>>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>>>>>> code yet. :) >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> So I can't really give you an answer since I >> don't >>>>>>> quite >>>>>>>>>>>>> know >>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>>> problem >>>>>>>>>>>>>>>>>>>>>>>>>>> yet. >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> Ok, I will check your solution :-) >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> ---------------------------------------- >>>>>>>>>>>>>>>>>>>>>>>>>>> Date: Fri, 26 Jun 2015 16:59:58 -0400 >>>>>>>>>>>>>>>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js >>>>>>>>>>>>>>>>>>>>>>>>>>> From: teotigraphix...@gmail.com >>>>>>>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> On Fri, Jun 26, 2015 at 4:39 PM, Frédéric THOMAS >> < >>>>>>>>>>>>>>>>>>>>>>>> webdoubl...@hotmail.com> >>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Yeah, this "jasmine.Clock" >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> The error means that the Falcon compiler is >>>>> trying >>>>>>> to >>>>>>>>>>>>>>> resolve >>>>>>>>>>>>>>>>>> a >>>>>>>>>>>>>>>>>>>>>>>> member >>>>>>>>>>>>>>>>>>>>>>>>>>>>> expression and it can't resolve it. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> So this means there is a bug in the AST >> resolver. >>>>>>> You >>>>>>>>>>> are >>>>>>>>>>>>>>>>>> using the >>>>>>>>>>>>>>>>>>>>>>>>>>>> extern >>>>>>>>>>>>>>>>>>>>>>>>>>>>> in the GCC project correct? >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Yes, >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> https://raw.githubusercontent.com/google/closure-compiler/master/contrib/externs/jasmine-2.0.js >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> If so, I need to take a look at it. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Everyone, I did one pass and tests on packages >>>>> and >>>>>>>>>>> class >>>>>>>>>>>>>>>>>> creation, >>>>>>>>>>>>>>>>>>>>>>>> so >>>>>>>>>>>>>>>>>>>>>>>>>>>> these >>>>>>>>>>>>>>>>>>>>>>>>>>>>> types of bugs are to be expected as the >> AST/Type >>>>>>>>>>> resolver >>>>>>>>>>>>> is >>>>>>>>>>>>>>>>>>>>>>>> "asked" to >>>>>>>>>>>>>>>>>>>>>>>>>>>> do >>>>>>>>>>>>>>>>>>>>>>>>>>>>> more work then my initial implementation. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Make sense? >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Well, kind of :-) >>>>>>>>>>>>>>>>>>>>>>>>>>>> What classes would you check for this ? >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> HAHA, ah that is a hard one man, thanks for the >>>>> offer >>>>>>>>>>> but I >>>>>>>>>>>>>>>>>> think I am >>>>>>>>>>>>>>>>>>>>>>>>>>> going to need to get this one. There are a couple >>>>>>> places >>>>>>>>>>> it >>>>>>>>>>>>>>>>>> could be >>>>>>>>>>>>>>>>>>>>>>>> though >>>>>>>>>>>>>>>>>>>>>>>>>>> if you are curious. >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> First you really need to understand the problem, >> I >>>>> am >>>>>>>>>>> typing >>>>>>>>>>>>>>>>>> this >>>>>>>>>>>>>>>>>>>>>>>> stuff in >>>>>>>>>>>>>>>>>>>>>>>>>>> between installing a bathroom vanity and sink, >> so I >>>>>>>>>>> haven't >>>>>>>>>>>>>>>>>> looked at >>>>>>>>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>>>>>> code yet. :) >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> So I can't really give you an answer since I >> don't >>>>>>> quite >>>>>>>>>>>>> know >>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>>> problem >>>>>>>>>>>>>>>>>>>>>>>>>>> yet. >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> Mike >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> ---------------------------------------- >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Date: Fri, 26 Jun 2015 16:32:16 -0400 >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js >>>>>>>>>>>>>>>>>>>>>>>>>>>>> From: teotigraphix...@gmail.com >>>>>>>>>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Yeah, this "jasmine.Clock" >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> The error means that the Falcon compiler is >>>>> trying >>>>>>> to >>>>>>>>>>>>>>> resolve >>>>>>>>>>>>>>>>>> a >>>>>>>>>>>>>>>>>>>>>>>> member >>>>>>>>>>>>>>>>>>>>>>>>>>>>> expression and it can't resolve it. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> So this means there is a bug in the AST >> resolver. >>>>>>> You >>>>>>>>>>> are >>>>>>>>>>>>>>>>>> using the >>>>>>>>>>>>>>>>>>>>>>>>>>>> extern >>>>>>>>>>>>>>>>>>>>>>>>>>>>> in the GCC project correct? >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> If so, I need to take a look at it. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Everyone, I did one pass and tests on packages >>>>> and >>>>>>>>>>> class >>>>>>>>>>>>>>>>>> creation, >>>>>>>>>>>>>>>>>>>>>>>> so >>>>>>>>>>>>>>>>>>>>>>>>>>>> these >>>>>>>>>>>>>>>>>>>>>>>>>>>>> types of bugs are to be expected as the >> AST/Type >>>>>>>>>>> resolver >>>>>>>>>>>>> is >>>>>>>>>>>>>>>>>>>>>>>> "asked" to >>>>>>>>>>>>>>>>>>>>>>>>>>>> do >>>>>>>>>>>>>>>>>>>>>>>>>>>>> more work then my initial implementation. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Make sense? >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Fri, Jun 26, 2015 at 3:27 PM, Frédéric >> THOMAS >>>>> < >>>>>>>>>>>>>>>>>>>>>>>>>>>> webdoubl...@hotmail.com> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi Mike, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Any idea why ? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>> U:\sources\asf\flex\falcon\externs\jasmine\out\as\classes\ >>>>>>>>>>>>>>>>>>>>>>>> jasmine.as:26 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Erreur interne : >> java.lang.NullPointerException >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> org.apache.flex.compiler.internal.scopes.TypeScope.getPropertyForMemberAccess(TypeScope.java:344) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> org.apache.flex.compiler.internal.scopes.ScopeView.getPropertyForMemberAccess(ScopeView.java:81) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> org.apache.flex.compiler.internal.scopes.ASScope.getPropertyFromDef(ASScope.java:879) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> org.apache.flex.compiler.internal.scopes.ASScope.getPropertyFromDef(ASScope.java:841) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> org.apache.flex.compiler.internal.scopes.ASScope.getPropertyFromDef(ASScope.java:760) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> org.apache.flex.compiler.internal.tree.as.IdentifierNode.resolveMemberRef(IdentifierNode.java:829) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> org.apache.flex.compiler.internal.tree.as.IdentifierNode.resolve(IdentifierNode.java:377) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> org.apache.flex.compiler.internal.tree.as.IdentifierNode.getMName(IdentifierNode.java:432) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> org.apache.flex.compiler.internal.tree.as.MemberAccessExpressionNode.getMName(MemberAccessExpressionNode.java:158) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> org.apache.flex.compiler.internal.as.codegen.ABCGeneratingReducer.dottedName(ABCGeneratingReducer.java:840) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.action_321(CmcEmitter.java:5236) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> public static function clock():jasmine.Clock { >>>>>>> return >>>>>>>>>>>>>>> null; } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ^ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ----------------------------- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> In the jasmine extern file >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ----------------------------- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @return {!jasmine.Clock} >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.clock = function() {}; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** @constructor */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock = function() {}; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock.prototype.install = function() >> {}; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock.prototype.uninstall = function() >>>>> {}; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** @param {number} ms */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock.prototype.tick = function(ms) >> {}; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** @param {!Date} date */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock.prototype.mockDate = >>>>> function(date) >>>>>>> {}; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ----------------------------- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> In jasmine.as >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ----------------------------- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @returns {jasmine.Clock} >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> public static function clock():jasmine.Clock { >>>>>>> return >>>>>>>>>>>>>>> null; } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ----------------------------- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> clock.as >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ----------------------------- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> package jasmine { >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> public class Clock { >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> public function Clock() { >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> super(); >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * Generated doc for missing method JSDoc. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> public function install():void { } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @param ms [number] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> public function tick(ms:Number):void { } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * Generated doc for missing method JSDoc. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> public function uninstall():void { } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @param date [Date] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> public function mockDate(date:Date):void { } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>> >>>>> >>>> >> >>