By the way, I know you see visit a lot but this implementation is not
recursive in the way FalconJX is.

The main loop iterates over a SCRIPT node's children 1 level deep. When
certain node structures are found in the child, a visit*() method is called
to visit that child node. There isn't anywhere in the code that I am
recursing the AST.

In the original Rhino implementation I wrote it was recursive and a
freaking nightmare for what I was trying to do. When I adopted the Closure
Compiler's AST and compiler passes, I realized that I did not need
recursion into the AST, only to iterate over the SCRIPT children.

So the way it works it, each compiler pass happens in order it's defined. I
am looking at them now I think I can either remove one or refactor.

I wrote these on the seat of my pants. :)

Mike






On Sun, Jun 28, 2015 at 1:48 PM, Michael Schmalle <teotigraphix...@gmail.com
> wrote:

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

Reply via email to