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