Alright !

Frédéric THOMAS


----------------------------------------
> Date: Sun, 28 Jun 2015 15:28:54 -0400
> Subject: Re: [Externs] jasmine-2.0.js
> From: teotigraphix...@gmail.com
> To: dev@flex.apache.org
>
> Fred, what I plan on doing since you are going to be working with the code
> is start to test all the base externs we have and find bugs or non
> implemented things. I will probably just add the things I find in JIRA
> throughout the week during my little free time.
>
> I'm not going to change any code, just add unit tests. One other thing that
> I havn't got to is type unit tests. I really just hacked the type
> resolving, yeah it works but I see ways in the future of doing some stuff
> with maybe function callbacks and if I get the type tests down well, I will
> feel more comfortable trying to parse the harder externs out there.
>
> Also, we should allow a way to parse those generated externs just for stubs
> but, they have nested {} object creation which the parser ignores right
> now, so that is another thing that can be tested and implemented.
>
> Mike
>
>
>
> On Sun, Jun 28, 2015 at 3:21 PM, Frédéric THOMAS <webdoubl...@hotmail.com>
> wrote:
>
>> Thanks !
>>
>> Frédéric THOMAS
>>
>>
>> ----------------------------------------
>>> Date: Sun, 28 Jun 2015 15:11:20 -0400
>>> Subject: Re: [Externs] jasmine-2.0.js
>>> From: teotigraphix...@gmail.com
>>> To: dev@flex.apache.org
>>>
>>> Yeah I know, sent to your hotmail.
>>>
>>> Mike
>>>
>>> On Sun, Jun 28, 2015 at 3:10 PM, Frédéric THOMAS <
>> webdoubl...@hotmail.com>
>>> wrote:
>>>
>>>>> What you can do is to send me your eclipse formatter property file.
>>>>> I will use it in IJ.
>>>>
>>>> I meant export your formatter profiles in xml
>>>>
>>>> Thanks,
>>>> Frédéric THOMAS
>>>>
>>>>
>>>> ----------------------------------------
>>>>> From: webdoubl...@hotmail.com
>>>>> To: dev@flex.apache.org
>>>>> Subject: RE: [Externs] jasmine-2.0.js
>>>>> Date: Sun, 28 Jun 2015 20:06:19 +0100
>>>>>
>>>>>> BTW, what should we do about code formatting, it seems my formatting
>> is
>>>>>> different then yours. I am using Eclipse right now since I don't have
>> IJ
>>>>>> setup for Falcon dev.
>>>>>
>>>>> I was wrong when I thought I had setup IJ correctly for Falcon, they
>> are
>>>> still
>>>>> things it doesn't know how to do, for instance, share the generated
>>>> classes
>>>>> thru modules, therefore, it is not yet suitable for all parts of
>> Falcon,
>>>> at the
>>>>> moment, I use tricks to be able to code with.
>>>>>
>>>>> What you can do is to send me your eclipse formatter property file.
>>>>> I will use it in IJ.
>>>>>
>>>>> Frédéric THOMAS
>>>>>
>>>>>
>>>>> ----------------------------------------
>>>>>> Date: Sun, 28 Jun 2015 14:57:50 -0400
>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>> From: teotigraphix...@gmail.com
>>>>>> To: dev@flex.apache.org
>>>>>>
>>>>>> BTW, what should we do about code formatting, it seems my formatting
>> is
>>>>>> different then yours. I am using Eclipse right now since I don't have
>> IJ
>>>>>> setup for Falcon dev.
>>>>>>
>>>>>> Mike
>>>>>>
>>>>>> On Sun, Jun 28, 2015 at 2:55 PM, Michael Schmalle <
>>>> teotigraphix...@gmail.com
>>>>>>> wrote:
>>>>>>
>>>>>>> Yeah, I didn't want to go crazy with subclasses. Ideally class,
>>>> function
>>>>>>> and constant could share a "TopLevelReference" subclass of
>>>> BaseReference
>>>>>>> and you could put import logic there if you wanted to.
>>>>>>>
>>>>>>> Mike
>>>>>>>
>>>>>>> On Sun, Jun 28, 2015 at 2:51 PM, Frédéric THOMAS <
>>>> webdoubl...@hotmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>>> Once you find instances of imports that need to be saves, your
>>>> current
>>>>>>>>> context is already the ClassReference, so call
>> classRef.addImport().
>>>> :)
>>>>>>>>
>>>>>>>> Btw, I will probably need to have a addImport() FunctionReference
>> too,
>>>>>>>> right ?
>>>>>>>>
>>>>>>>> Frédéric THOMAS
>>>>>>>>
>>>>>>>>
>>>>>>>> ----------------------------------------
>>>>>>>>> Date: Sun, 28 Jun 2015 14:23:57 -0400
>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>>>> From: teotigraphix...@gmail.com
>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>
>>>>>>>>> Kewl.
>>>>>>>>>
>>>>>>>>> I am going to be busy most of the week remodeling my mother in laws
>>>>>>>>> bathroom starting tomorrow. So if you want to try a new custom pass
>>>> like
>>>>>>>>> ResolveImportPass, go for it, I will just stay out of the way. I
>>>> think
>>>>>>>> it
>>>>>>>>> would be good for you. :) If not, no worries, you gave me the idea.
>>>> haha
>>>>>>>>>
>>>>>>>>> If you did, look at it like this, since all imports and logic
>> therin
>>>> are
>>>>>>>>> totally dependent on what the compiler actual saves into the model,
>>>>>>>> logic
>>>>>>>>> says this needs to be the last or one of the last passes, from my
>>>>>>>>> perspective, it needs to be the last.
>>>>>>>>>
>>>>>>>>> If you make it the last, then this pass is not coupled to us fixing
>>>> bugs
>>>>>>>>> ahead of it. Say we find out we need to add another structure of
>> AST
>>>>>>>>> parsing for a node structure I havn't implemented yet, well we are
>>>> safe.
>>>>>>>>>
>>>>>>>>> Why safe? Because in this import pass, you are using the MODEL, so
>> no
>>>>>>>> AST.
>>>>>>>>> Instead of worrying about resolving imports during AST traversal,
>> you
>>>>>>>> are
>>>>>>>>> using what is already in the container after all that complex
>>>> parsing is
>>>>>>>>> finished.
>>>>>>>>>
>>>>>>>>> So this pass, you would use your skills at knowing "what" in each
>>>>>>>> subclass
>>>>>>>>> of BaseReference could contain a type. Then write your logic pass
>> to
>>>>>>>>> traverse Classes, then into each classes members, then loop through
>>>> each
>>>>>>>>> member and analyze their types and do your import testing logic
>>>> there.
>>>>>>>>>
>>>>>>>>> Once you find instances of imports that need to be saves, your
>>>> current
>>>>>>>>> context is already the ClassReference, so call
>> classRef.addImport().
>>>> :)
>>>>>>>>>
>>>>>>>>> Mike
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sun, Jun 28, 2015 at 2:13 PM, Frédéric THOMAS <
>>>>>>>> webdoubl...@hotmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>>> All I meant is that 75% of the time we would just want to save
>>>> things
>>>>>>>> in
>>>>>>>>>>> the model or a reference, such that you use addImport() during
>> the
>>>>>>>>>>> resolution. Then it keeps the emit() phase straight burn rubber
>> and
>>>>>>>> loop
>>>>>>>>>>> through all existing model structures, where imports would be
>> just
>>>> a
>>>>>>>> list
>>>>>>>>>>> that emitImport() iterates through, no logic.
>>>>>>>>>>
>>>>>>>>>> Got it !
>>>>>>>>>>
>>>>>>>>>>> I AM NOT saying what you did was wrong, I am just offering a look
>>>> into
>>>>>>>>>> how
>>>>>>>>>>> I set it up. You know how I got this pattern? From my massive
>>>>>>>> mistakes in
>>>>>>>>>>> code generators of past. :) I realized that an emit phase needs
>> to
>>>> be
>>>>>>>>>>> stupid and not dependent on any type of intelligence, just needs
>> to
>>>>>>>>>> create
>>>>>>>>>>> what already exists.
>>>>>>>>>>
>>>>>>>>>> I'm in a phase where I'm learning compiler things and indeed I
>> will
>>>> do
>>>>>>>>>> some mistakes
>>>>>>>>>> or I won't be as precise as you who have experience on it.
>>>>>>>>>> Therefore I can accept critics and learn from your explanations
>> :-)
>>>>>>>>>>
>>>>>>>>>>> This can also solve many problems at once. So I haven't got back
>>>> into
>>>>>>>> the
>>>>>>>>>>> code BUT my intuition says we need a universal solution for any
>>>> type
>>>>>>>> of
>>>>>>>>>>> TYPE that is attached to a member, identifier such as a param
>> type,
>>>>>>>>>> return
>>>>>>>>>>> type, filed type, superclass and interface(already taken care of
>>>> using
>>>>>>>>>>> addImport()).
>>>>>>>>>>>
>>>>>>>>>>> See where I am coming from? We know that every type is eventually
>>>>>>>> going
>>>>>>>>>> to
>>>>>>>>>>> need to be scanned for imports and validated.
>>>>>>>>>>
>>>>>>>>>> Yes, actually, I was expecting to see a specific pass for that.
>>>>>>>>>>
>>>>>>>>>>> Dude, I just don't want to come off bossy or condescending, I
>> love
>>>> you
>>>>>>>>>>> help. A lot can be added to this compiler that could be very
>>>>>>>> interesting.
>>>>>>>>>>> So having you understand my design intention is really important
>> to
>>>>>>>> me.
>>>>>>>>>> :)
>>>>>>>>>>
>>>>>>>>>> Don't worry, I don't think you are bossy or condescending Mike,
>> I'm
>>>>>>>>>> reading you
>>>>>>>>>> and try to put in parallel the new informations you give and what
>>>> I've
>>>>>>>>>> seen in the code
>>>>>>>>>> for a better understanding, that's it.
>>>>>>>>>>
>>>>>>>>>> Cheers,
>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ----------------------------------------
>>>>>>>>>>> Date: Sun, 28 Jun 2015 13:48:02 -0400
>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>>>>>> From: teotigraphix...@gmail.com
>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>
>>>>>>>>>>> Fred you did an awesome job. :)
>>>>>>>>>>>
>>>>>>>>>>> All I meant is that 75% of the time we would just want to save
>>>> things
>>>>>>>> in
>>>>>>>>>>> the model or a reference, such that you use addImport() during
>> the
>>>>>>>>>>> resolution. Then it keeps the emit() phase straight burn rubber
>> and
>>>>>>>> loop
>>>>>>>>>>> through all existing model structures, where imports would be
>> just
>>>> a
>>>>>>>> list
>>>>>>>>>>> that emitImport() iterates through, no logic.
>>>>>>>>>>>
>>>>>>>>>>> I AM NOT saying what you did was wrong, I am just offering a look
>>>> into
>>>>>>>>>> how
>>>>>>>>>>> I set it up. You know how I got this pattern? From my massive
>>>>>>>> mistakes in
>>>>>>>>>>> code generators of past. :) I realized that an emit phase needs
>> to
>>>> be
>>>>>>>>>>> stupid and not dependent on any type of intelligence, just needs
>> to
>>>>>>>>>> create
>>>>>>>>>>> what already exists.
>>>>>>>>>>>
>>>>>>>>>>> This can also solve many problems at once. So I haven't got back
>>>> into
>>>>>>>> the
>>>>>>>>>>> code BUT my intuition says we need a universal solution for any
>>>> type
>>>>>>>> of
>>>>>>>>>>> TYPE that is attached to a member, identifier such as a param
>> type,
>>>>>>>>>> return
>>>>>>>>>>> type, filed type, superclass and interface(already taken care of
>>>> using
>>>>>>>>>>> addImport()).
>>>>>>>>>>>
>>>>>>>>>>> See where I am coming from? We know that every type is eventually
>>>>>>>> going
>>>>>>>>>> to
>>>>>>>>>>> need to be scanned for imports and validated.
>>>>>>>>>>>
>>>>>>>>>>> Dude, I just don't want to come off bossy or condescending, I
>> love
>>>> you
>>>>>>>>>>> help. A lot can be added to this compiler that could be very
>>>>>>>> interesting.
>>>>>>>>>>> So having you understand my design intention is really important
>> to
>>>>>>>> me.
>>>>>>>>>> :)
>>>>>>>>>>>
>>>>>>>>>>> Mike
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Sun, Jun 28, 2015 at 1:37 PM, Frédéric THOMAS <
>>>>>>>>>> webdoubl...@hotmail.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>>> Fred pretty much iterated things correctly.
>>>>>>>>>>>>>
>>>>>>>>>>>>> The ResolvePackageNamePass I haven't to get back to. I was in
>> the
>>>>>>>>>> middle
>>>>>>>>>>>> of
>>>>>>>>>>>>> implementing something when I got it to work in another place.
>>>>>>>>>>>>>
>>>>>>>>>>>>> There is a pattern to how things are parsed so most of the time
>>>> it's
>>>>>>>>>>>> better
>>>>>>>>>>>>> to set state as nodes/references are being added to the model.
>> In
>>>>>>>> the
>>>>>>>>>>>> case
>>>>>>>>>>>>> of imports, I don't see any problems right now with checking
>>>> during
>>>>>>>> the
>>>>>>>>>>>>> emit phase but, if the model was more interactive during the
>>>>>>>> session,
>>>>>>>>>>>> this
>>>>>>>>>>>>> type of logic should happen during the resolve phase so the
>> model
>>>>>>>> with
>>>>>>>>>>>> it's
>>>>>>>>>>>>> references has a correct state if there is any logic happening
>>>>>>>> between
>>>>>>>>>>>> two
>>>>>>>>>>>>> references.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks for the explanation, I will take the time to do some
>> debug
>>>>>>>> spins
>>>>>>>>>> to
>>>>>>>>>>>> understand
>>>>>>>>>>>> when the phases are called, what they do and what classes are
>>>>>>>> involved.
>>>>>>>>>>>> Given it is a fairly small transpiler and despite the recursive
>>>>>>>> visitor
>>>>>>>>>>>> pattern, I guess I can do it.
>>>>>>>>>>>>
>>>>>>>>>>>>> How much are you working on right now Fred? I just ask because
>> I
>>>>>>>> don't
>>>>>>>>>>>> want
>>>>>>>>>>>>> to create any conflicts.
>>>>>>>>>>>>
>>>>>>>>>>>> Go ahead Mike, I'm done with that at the moment, I did my last
>>>>>>>> cleanup
>>>>>>>>>>>> already.
>>>>>>>>>>>> Anyway, better I work on a branch and commit the branch instead
>>>> for
>>>>>>>>>> review
>>>>>>>>>>>> next time.
>>>>>>>>>>>>
>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>> Date: Sun, 28 Jun 2015 13:23:15 -0400
>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>>>>>>>> From: teotigraphix...@gmail.com
>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>
>>>>>>>>>>>>> Fred pretty much iterated things correctly.
>>>>>>>>>>>>>
>>>>>>>>>>>>> The ResolvePackageNamePass I haven't to get back to. I was in
>> the
>>>>>>>>>> middle
>>>>>>>>>>>> of
>>>>>>>>>>>>> implementing something when I got it to work in another place.
>>>>>>>>>>>>>
>>>>>>>>>>>>> There is a pattern to how things are parsed so most of the time
>>>> it's
>>>>>>>>>>>> better
>>>>>>>>>>>>> to set state as nodes/references are being added to the model.
>> In
>>>>>>>> the
>>>>>>>>>>>> case
>>>>>>>>>>>>> of imports, I don't see any problems right now with checking
>>>> during
>>>>>>>> the
>>>>>>>>>>>>> emit phase but, if the model was more interactive during the
>>>>>>>> session,
>>>>>>>>>>>> this
>>>>>>>>>>>>> type of logic should happen during the resolve phase so the
>> model
>>>>>>>> with
>>>>>>>>>>>> it's
>>>>>>>>>>>>> references has a correct state if there is any logic happening
>>>>>>>> between
>>>>>>>>>>>> two
>>>>>>>>>>>>> references.
>>>>>>>>>>>>>
>>>>>>>>>>>>> How much are you working on right now Fred? I just ask because
>> I
>>>>>>>> don't
>>>>>>>>>>>> want
>>>>>>>>>>>>> to create any conflicts.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Mike
>>>>>>>>>>>>> .
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Sat, Jun 27, 2015 at 5:58 PM, Michael Schmalle <
>>>>>>>>>>>> teotigraphix...@gmail.com
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hey Fred, I was out all day. I will have some time in the
>>>> morning
>>>>>>>> to
>>>>>>>>>>>> look
>>>>>>>>>>>>>> at what you did and comment. :)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Sat, Jun 27, 2015 at 5:27 PM, Frédéric THOMAS <
>>>>>>>>>>>> webdoubl...@hotmail.com>
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Just to explain what I did, especially to folks who would
>> like
>>>> to
>>>>>>>> get
>>>>>>>>>>>>>>> their hand dirty on the compiler but like me, don't know how
>> it
>>>>>>>> works
>>>>>>>>>>>> :-)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I was adding jasmine-2.0.js [1], a file that contains only
>>>> jsDoc
>>>>>>>>>>>>>>> (parameters and return type descriptions) and declarations,
>> no
>>>>>>>>>>>>>>> implementations.
>>>>>>>>>>>>>>> When I say "adding jasmine-2.0.js" I mean, transpile this .js
>>>>>>>> file to
>>>>>>>>>>>> .as
>>>>>>>>>>>>>>> and then compile it to a .swc.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> The transpilation part is done by EXTERNC
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> You call it like that:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> <java jar="${basedir}/compiler.jx/lib/externc.jar"
>> fork="true"
>>>>>>>>>>>>>>> failonerror="false">
>>>>>>>>>>>>>>> <arg value="+flexlib=${env.ASJS_HOME}/frameworks" />
>>>>>>>>>>>>>>> <arg value="-debug" />
>>>>>>>>>>>>>>> <arg
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> value="-load-config=${basedir}/externs/jasmine/jasmine-compile-config.xml"
>>>>>>>>>>>>>>> />
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> In the jasmine-compile-config.xml, you can exclude classes
>> and
>>>>>>>>>> member,
>>>>>>>>>>>>>>> for example, in the jasmine.Spec class, I excluded the
>> variable
>>>>>>>>>>>> $injector
>>>>>>>>>>>>>>> as its type was coming from the Angular library that is not
>> yet
>>>>>>>>>>>> transpiled.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> <field-exclude>
>>>>>>>>>>>>>>> <class>jasmine.Spec</class>
>>>>>>>>>>>>>>> <field>$injector</field>
>>>>>>>>>>>>>>> </field-exclude>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> You can also exclude classes and functions.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> The compile part is done by the falcon compc as follow:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> <java
>>>>>>>>>> jar="${basedir}/compiler/generated/dist/sdk/lib/falcon-compc.jar"
>>>>>>>>>>>>>>> fork="true"
>>>>>>>>>>>>>>> failonerror="true">
>>>>>>>>>>>>>>> <arg value="+flexlib=${env.ASJS_HOME}/frameworks" />
>>>>>>>>>>>>>>> <arg value="-debug" />
>>>>>>>>>>>>>>> <arg
>>>>>>>>>>>>>>>
>>>>>>>> value="-load-config=${basedir}/externs/jasmine/compile-config.xml"
>> />
>>>>>>>>>>>>>>> <arg
>>>>>>>>>>>>>>>
>>>>>>>> value="-output=${basedir}/externs/jasmine/out/bin/jasmine-2.0.swc"
>> />
>>>>>>>>>>>>>>> </java>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> The problem was that this last part was failing with an NPE a
>>>>>>>> Type of
>>>>>>>>>>>>>>> something:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> org.apache.flex.compiler.internal.scopes.TypeScope.getPropertyForMemberAccess(TypeScope.java:344)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Even looking closely at the code, I didn't get why it was
>>>> failing
>>>>>>>> but
>>>>>>>>>>>> for
>>>>>>>>>>>>>>> sure, because it was trying to compile one of the transpiled
>>>> .as
>>>>>>>>>> file,
>>>>>>>>>>>> this
>>>>>>>>>>>>>>> transpiled code was wrong.
>>>>>>>>>>>>>>> Looking at those .as, it was easy to see that some import
>> were
>>>>>>>>>> missing.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> So, why the 2 others externs (js and jquery) had no issues ?
>>>>>>>>>>>>>>> It is always surprising to see something working on all the
>>>> things
>>>>>>>>>>>> except
>>>>>>>>>>>>>>> of yours, but it can help you too :-)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> So, I've been looking at those other transpiled .as files
>> from
>>>>>>>>>> existing
>>>>>>>>>>>>>>> externs to see if they had imports and they were some.
>>>>>>>>>>>>>>> I then created a mini jasmine.js containing only the faulty
>>>> case
>>>>>>>>>> only,
>>>>>>>>>>>>>>> that, from what I've been able to determinate, was that the
>>>> import
>>>>>>>>>> was
>>>>>>>>>>>> not
>>>>>>>>>>>>>>> generated when a static function had a return type of a class
>>>>>>>> created
>>>>>>>>>>>> via a
>>>>>>>>>>>>>>> function constructor, so, I filled this mini jasmine.js with
>>>> the
>>>>>>>>>>>> equivalent
>>>>>>>>>>>>>>> of a static function like this:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>> * @return {!jasmine.Clock}
>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>> jasmine.clock = function() {};
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Which should transpile in AS3, something like:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> import jasmine.Clock;
>>>>>>>>>>>>>>> public static function clock():Clock {}
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> and a function constructor like this:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> /** @constructor */
>>>>>>>>>>>>>>> jasmine.Clock = function() {};
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> which transpile:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> package jasmine {
>>>>>>>>>>>>>>> public class Clock {}
>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Created a test class based on those Mike created for the
>>>> previous
>>>>>>>>>>>> externs
>>>>>>>>>>>>>>> doing:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> // jasmine, the main jasmine class.
>>>>>>>>>>>>>>> ClassReference jasmine = model.getClassReference("jasmine");
>>>>>>>>>>>>>>> assertNotNull(jasmine);
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> assertTrue(jasmine.hasImport("jasmine.Clock"));
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> The hasImport method didn't exist on ClassReference but it
>> was
>>>> a
>>>>>>>>>>>>>>> addImport(), I follow to where it was called in
>>>>>>>> ResolvePackagesPass
>>>>>>>>>>>> hoping
>>>>>>>>>>>>>>> to find a missing case but after debug spin I wasn't able to
>> do
>>>>>>>> what
>>>>>>>>>> I
>>>>>>>>>>>>>>> expected, I'm not sure I understood all the logic in this
>> class
>>>>>>>> but
>>>>>>>>>> it
>>>>>>>>>>>>>>> looked like the Node of my return type was never visited and
>>>>>>>>>> therefore
>>>>>>>>>>>>>>> wasn't able to add my import here.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> But wait, in the ClassReference, I have a
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> public MethodReference addMethod(Node node, String
>>>> functionName,
>>>>>>>>>>>>>>> JSDocInfo comment, boolean isStatic)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> To me it would be enough to add the import to the list of
>>>> imports
>>>>>>>> to
>>>>>>>>>> be
>>>>>>>>>>>>>>> emitted when the MethodReference is to be added, I just had
>> to
>>>>>>>>>>>> determinate
>>>>>>>>>>>>>>> if the return type given in the jsDoc was not from the
>> current
>>>>>>>>>>>> package, the
>>>>>>>>>>>>>>> given method not excluded, the given return type neither !
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> My test was passing was I was able to compile with this new
>>>> code
>>>>>>>> the
>>>>>>>>>>>> old
>>>>>>>>>>>>>>> externs.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> The only thing I had to do to finish to compile the jasmine
>>>> extern
>>>>>>>>>> was
>>>>>>>>>>>> to
>>>>>>>>>>>>>>> emit the imports for the global functions too as they shown
>> to
>>>> be
>>>>>>>>>>>> faulty
>>>>>>>>>>>>>>> for the same reasons.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Mike will probably tell me now where my logic was wrong now
>> :-)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com
>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>> Date: Sat, 27 Jun 2015 20:43:43 +0100
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Ok, done !
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I forgot to uncomment the externc build of jasmine and print
>>>> the
>>>>>>>>>>>> global
>>>>>>>>>>>>>>> function imports !
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com
>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>> Date: Sat, 27 Jun 2015 20:12:16 +0100
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I pushed the changes which are ready to be reviewed.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> oups, hold on, I had some things commented that hidden
>> other
>>>>>>>>>>>> problems,
>>>>>>>>>>>>>>> I will continue on it.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com
>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>> Date: Sat, 27 Jun 2015 18:31:32 +0100
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Hi Mike,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I pushed the changes which are ready to be reviewed.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Note: The jasmine-2.0.js is not committed as it should be
>>>>>>>>>> downloaded
>>>>>>>>>>>>>>> with the unpack-externs target of the download.xml, I
>> followed
>>>> the
>>>>>>>>>>>> model.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>>> Date: Sat, 27 Jun 2015 05:31:50 -0400
>>>>>>>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>>> From: teotigraphix...@gmail.com
>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I just noticed you said today or tomorrow, whatever man.
>>>>>>>> doesn't
>>>>>>>>>>>>>>> matter.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Sat, Jun 27, 2015 at 5:17 AM, Michael Schmalle <
>>>>>>>>>>>>>>> teotigraphix...@gmail.com
>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Well its the practice. I know the pattern I am using so
>>>> if I
>>>>>>>>>> have
>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>>> adjust it to fit I will. You can tell that with AST type
>>>>>>>> stuff,
>>>>>>>>>> it
>>>>>>>>>>>>>>> has to
>>>>>>>>>>>>>>>>>>>> follow a specific pattern or everything turns to crap
>> when
>>>>>>>>>> trying
>>>>>>>>>>>>>>> to add
>>>>>>>>>>>>>>>>>>>> stuff down the road.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Commit it sooner than later as I have a couple hours to
>>>>>>>> check it
>>>>>>>>>>>>>>> out this
>>>>>>>>>>>>>>>>>>>> morning.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On Sat, Jun 27, 2015 at 3:15 AM, Frédéric THOMAS <
>>>>>>>>>>>>>>> webdoubl...@hotmail.com>
>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Hi Mike,
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> I can now compile jasmine, I'm not sure my fix is very
>>>> clean
>>>>>>>>>> but
>>>>>>>>>>>> it
>>>>>>>>>>>>>>>>>>>>> works, I've been able to compile all the externs with.
>>>>>>>>>>>>>>>>>>>>> I will commit it later today or tomorrow as I need to
>>>> clean
>>>>>>>> a
>>>>>>>>>> bit
>>>>>>>>>>>>>>> before
>>>>>>>>>>>>>>>>>>>>> and it would be nice if you can review it.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com
>>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>>>>>> Date: Fri, 26 Jun 2015 22:43:30 +0100
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Hey Mike, it looks like "import jasmine.Clock;" is
>>>> missing
>>>>>>>> in
>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>> generated jasmine.as, that's it !
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com
>>>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>>>>>>> Date: Fri, 26 Jun 2015 22:26:32 +0100
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> HAHA, ah that is a hard one man, thanks for the
>> offer
>>>>>>>> but I
>>>>>>>>>>>>>>> think I am
>>>>>>>>>>>>>>>>>>>>>>>> going to need to get this one. There are a couple
>>>> places
>>>>>>>> it
>>>>>>>>>>>>>>> could be
>>>>>>>>>>>>>>>>>>>>> though
>>>>>>>>>>>>>>>>>>>>>>>> if you are curious.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> First you really need to understand the problem, I
>> am
>>>>>>>> typing
>>>>>>>>>>>>>>> this
>>>>>>>>>>>>>>>>>>>>> stuff in
>>>>>>>>>>>>>>>>>>>>>>>> between installing a bathroom vanity and sink, so I
>>>>>>>> haven't
>>>>>>>>>>>>>>> looked at
>>>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>>>> code yet. :)
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> So I can't really give you an answer since I don't
>>>> quite
>>>>>>>>>> know
>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>> problem
>>>>>>>>>>>>>>>>>>>>>>>> yet.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Ok, I will check your solution :-)
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>>>>>>>> Date: Fri, 26 Jun 2015 16:59:58 -0400
>>>>>>>>>>>>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>>>>>>>> From: teotigraphix...@gmail.com
>>>>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> On Fri, Jun 26, 2015 at 4:39 PM, Frédéric THOMAS <
>>>>>>>>>>>>>>>>>>>>> webdoubl...@hotmail.com>
>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Yeah, this "jasmine.Clock"
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> The error means that the Falcon compiler is trying
>>>> to
>>>>>>>>>>>> resolve
>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>>>>> member
>>>>>>>>>>>>>>>>>>>>>>>>>> expression and it can't resolve it.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> So this means there is a bug in the AST resolver.
>>>> You
>>>>>>>> are
>>>>>>>>>>>>>>> using the
>>>>>>>>>>>>>>>>>>>>>>>>> extern
>>>>>>>>>>>>>>>>>>>>>>>>>> in the GCC project correct?
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Yes,
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> https://raw.githubusercontent.com/google/closure-compiler/master/contrib/externs/jasmine-2.0.js
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> If so, I need to take a look at it.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Everyone, I did one pass and tests on packages and
>>>>>>>> class
>>>>>>>>>>>>>>> creation,
>>>>>>>>>>>>>>>>>>>>> so
>>>>>>>>>>>>>>>>>>>>>>>>> these
>>>>>>>>>>>>>>>>>>>>>>>>>> types of bugs are to be expected as the AST/Type
>>>>>>>> resolver
>>>>>>>>>> is
>>>>>>>>>>>>>>>>>>>>> "asked" to
>>>>>>>>>>>>>>>>>>>>>>>>> do
>>>>>>>>>>>>>>>>>>>>>>>>>> more work then my initial implementation.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Make sense?
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Well, kind of :-)
>>>>>>>>>>>>>>>>>>>>>>>>> What classes would you check for this ?
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> HAHA, ah that is a hard one man, thanks for the
>> offer
>>>>>>>> but I
>>>>>>>>>>>>>>> think I am
>>>>>>>>>>>>>>>>>>>>>>>> going to need to get this one. There are a couple
>>>> places
>>>>>>>> it
>>>>>>>>>>>>>>> could be
>>>>>>>>>>>>>>>>>>>>> though
>>>>>>>>>>>>>>>>>>>>>>>> if you are curious.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> First you really need to understand the problem, I
>> am
>>>>>>>> typing
>>>>>>>>>>>>>>> this
>>>>>>>>>>>>>>>>>>>>> stuff in
>>>>>>>>>>>>>>>>>>>>>>>> between installing a bathroom vanity and sink, so I
>>>>>>>> haven't
>>>>>>>>>>>>>>> looked at
>>>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>>>> code yet. :)
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> So I can't really give you an answer since I don't
>>>> quite
>>>>>>>>>> know
>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>> problem
>>>>>>>>>>>>>>>>>>>>>>>> yet.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>> Date: Fri, 26 Jun 2015 16:32:16 -0400
>>>>>>>>>>>>>>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>>>>>>>>>> From: teotigraphix...@gmail.com
>>>>>>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Yeah, this "jasmine.Clock"
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> The error means that the Falcon compiler is trying
>>>> to
>>>>>>>>>>>> resolve
>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>>>>> member
>>>>>>>>>>>>>>>>>>>>>>>>>> expression and it can't resolve it.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> So this means there is a bug in the AST resolver.
>>>> You
>>>>>>>> are
>>>>>>>>>>>>>>> using the
>>>>>>>>>>>>>>>>>>>>>>>>> extern
>>>>>>>>>>>>>>>>>>>>>>>>>> in the GCC project correct?
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> If so, I need to take a look at it.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Everyone, I did one pass and tests on packages and
>>>>>>>> class
>>>>>>>>>>>>>>> creation,
>>>>>>>>>>>>>>>>>>>>> so
>>>>>>>>>>>>>>>>>>>>>>>>> these
>>>>>>>>>>>>>>>>>>>>>>>>>> types of bugs are to be expected as the AST/Type
>>>>>>>> resolver
>>>>>>>>>> is
>>>>>>>>>>>>>>>>>>>>> "asked" to
>>>>>>>>>>>>>>>>>>>>>>>>> do
>>>>>>>>>>>>>>>>>>>>>>>>>> more work then my initial implementation.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Make sense?
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> On Fri, Jun 26, 2015 at 3:27 PM, Frédéric THOMAS <
>>>>>>>>>>>>>>>>>>>>>>>>> webdoubl...@hotmail.com>
>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi Mike,
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Any idea why ?
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>> U:\sources\asf\flex\falcon\externs\jasmine\out\as\classes\
>>>>>>>>>>>>>>>>>>>>> jasmine.as:26
>>>>>>>>>>>>>>>>>>>>>>>>>>> Erreur interne : java.lang.NullPointerException
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> org.apache.flex.compiler.internal.scopes.TypeScope.getPropertyForMemberAccess(TypeScope.java:344)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> org.apache.flex.compiler.internal.scopes.ScopeView.getPropertyForMemberAccess(ScopeView.java:81)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> org.apache.flex.compiler.internal.scopes.ASScope.getPropertyFromDef(ASScope.java:879)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> org.apache.flex.compiler.internal.scopes.ASScope.getPropertyFromDef(ASScope.java:841)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> org.apache.flex.compiler.internal.scopes.ASScope.getPropertyFromDef(ASScope.java:760)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> org.apache.flex.compiler.internal.tree.as.IdentifierNode.resolveMemberRef(IdentifierNode.java:829)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> org.apache.flex.compiler.internal.tree.as.IdentifierNode.resolve(IdentifierNode.java:377)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> org.apache.flex.compiler.internal.tree.as.IdentifierNode.getMName(IdentifierNode.java:432)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> org.apache.flex.compiler.internal.tree.as.MemberAccessExpressionNode.getMName(MemberAccessExpressionNode.java:158)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> org.apache.flex.compiler.internal.as.codegen.ABCGeneratingReducer.dottedName(ABCGeneratingReducer.java:840)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>
>> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.action_321(CmcEmitter.java:5236)
>>>>>>>>>>>>>>>>>>>>>>>>>>> ...
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> public static function clock():jasmine.Clock {
>>>> return
>>>>>>>>>>>> null; }
>>>>>>>>>>>>>>>>>>>>>>>>>>> ^
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>> In the jasmine extern file
>>>>>>>>>>>>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>> * @return {!jasmine.Clock}
>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.clock = function() {};
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /** @constructor */
>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock = function() {};
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /** */
>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock.prototype.install = function() {};
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /** */
>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock.prototype.uninstall = function()
>> {};
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /** @param {number} ms */
>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock.prototype.tick = function(ms) {};
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /** @param {!Date} date */
>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock.prototype.mockDate = function(date)
>>>> {};
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>> In jasmine.as
>>>>>>>>>>>>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>> * @returns {jasmine.Clock}
>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>> public static function clock():jasmine.Clock {
>>>> return
>>>>>>>>>>>> null; }
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>> clock.as
>>>>>>>>>>>>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>> package jasmine {
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>> public class Clock {
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>> public function Clock() {
>>>>>>>>>>>>>>>>>>>>>>>>>>> super();
>>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>> * Generated doc for missing method JSDoc.
>>>>>>>>>>>>>>>>>>>>>>>>>>> *
>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>> public function install():void { }
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>> * @param ms [number]
>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>> public function tick(ms:Number):void { }
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>> * Generated doc for missing method JSDoc.
>>>>>>>>>>>>>>>>>>>>>>>>>>> *
>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>> public function uninstall():void { }
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>> * @param date [Date]
>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>> public function mockDate(date:Date):void { }
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>>
>>>>
>>
>>
                                          

Reply via email to