Quoting Erik de Bruin <e...@ixsoftware.nl>:

"The SWF file is then used to write out the js using a JBurg bottom up
reducer/emitter." ;-)


Laymans; A SWF is created for all classes just like in MXMLC, there is a visitor pattern that is used that traverses the internals of the ISWF. As each of the elements in the SWF are traversed (classes, methods, members etc) calls to the JSEmitter and other classes happens and the js is created during the traversal.

JBurg is compiled to actually create the class and rules that does the actual traversal logic through the SWF file.

Does that make more sense?

Mike

That means so little to me, while it probably explains everything to
someone with the proper background. I'll try to get some more
background, so I may be of some use when the time comes to start
hacking the JS output.

EdB


On Thu, Nov 29, 2012 at 2:22 PM, Michael Schmalle
<apa...@teotigraphix.com> wrote:
Well you may have missed it since this thread is going forever but I did
write something [0]

There was one concept I screwed up and that is in the end the loop and write
doesn't happen on the monolithic SWF, I think it's for external files that
were not linked into the main SWF.

Basically, the compiler loads like MXMLC, using configuration files and args
passed to it.

It the parses all files and then creates an SWF of those files with
dependencies.

The SWF file is then used to write out the js using a JBurg bottom up
reducer/emitter. I am sure these were the classes you were looking at.

The JSEmitter is something that probably could be hacked into but, I would
make sure you have a baseline before you do.

The thing is, everytime I write about this framework I am learning more. It
seems to me the IBackend interface could be golden.

If you look the Only time JSEmitter is created is in a call to;

- JSBackend.createEmitter(ICompilationUnit.Operation, ICompilerProject)

This means we could swap out emitters at runtime! I still need to
investigate this further and don't take anything I say as gold right now,
I'm still learning myself.

NOTE: The first thing I am going to experiement with is "how modular" the
IBackend really is and what it would enable us todo as far as creating
different implementations of emitters.

Mike






- [0]
http://markmail.org/message/e3szly6i6ejq56eg?q=+list:org%2Eapache%2Eincubator%2Eflex-dev&page=6



Quoting Erik de Bruin <e...@ixsoftware.nl>:

Mike,

Can you explain a little bit (maybe in pseudo-code or whatever) about
how the AS3 -> Falcon -> FalsonJS -> JS 'compilation' process works?
What I'm looking for is an idea of how the JS output is put together,
if you will. Example: how easy (or difficult) is it to exchange one JS
"class" creation method for another? Right now it's "Class =
adobe.extend(arg, arg, { theClassBody })". Is it a lot of effort to
change that output to something like "function Class()  { theClassBody
}"?

I did look at some of the Java classes that seemed relevant, but soon
realised that without first having some idea of the concepts involved,
"use the Force, read the source" wasn't going to be a useful way to
spend my time ;-)

EdB



On Thu, Nov 29, 2012 at 1:47 PM, Michael Schmalle
<apa...@teotigraphix.com> wrote:

It's not that you can't use a framework and "vanilla" js, it's that it
has
been shown that these candy frameworks that hide vanilla method calls to
the
DOM severely kill performance.  ... For the sake of just entering a $()
dollar sign? That's a crazy tradeoff but thousands do it everyday. For
alittle dev time saved, you kill the actual applications performance.

I was just saying that using AS, you can already have a "framework" you
use
that is light, but the compiler would transcode it to the fastest
possible
js implementation, since it's now hands off.

Mike


Quoting Kessler CTR Mark J <mark.kessler....@usmc.mil>:

Funniest site I've been to today.  It's a good point, but it's prob
pretty
difficult to not use a framework at all.

-----Original Message-----
From: Justin Mclean [mailto:justinmcl...@gmail.com] On Behalf Of Justin
Mclean
Sent: Wednesday, November 28, 2012 18:21
To: flex-dev@incubator.apache.org
Subject: Re: [FalconJS] concepts

Hi,

And to eliminate the 'IF' from your conditional statement, just a quick
one:
http://jsperf.com/jqury-vs-plainjs



Slightly off topic but amusing all the same:
http://vanilla-js.com

Reinforces the point that if you want pure performance don't use a
framework and as we're generating the JS there's probably no need to use
one, especially one as heavy as jQuery.

Justin



--
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com




--
Ix Multimedia Software

Jan Luykenstraat 27
3521 VB Utrecht

T. 06-51952295
I. www.ixsoftware.nl


--
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com




--
Ix Multimedia Software

Jan Luykenstraat 27
3521 VB Utrecht

T. 06-51952295
I. www.ixsoftware.nl


--
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com

Reply via email to