Alright ! Frédéric THOMAS
---------------------------------------- > Date: Sun, 28 Jun 2015 15:28:54 -0400 > Subject: Re: [Externs] jasmine-2.0.js > From: teotigraphix...@gmail.com > To: dev@flex.apache.org > > 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 >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>> >>>> >>>> >> >>