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