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