So for others reading this that have no clue what is going on, we have an
ActionScript file that uses the DOM, just like TypeScript. This file can
now be compiled without Flash/SWF!!!

The FalconJX compiler is now a true AS only possibility for JS creation.
You pass the Main.as class below, it will spit out the .js file without any
Flash dependencies, you get JavaScript code completion in the IDE and
realtime compile type checking.

If Fred can set this up like we did with Randori in IntelliJ, we could get
spilt second compiles just like TypeScript, the Randori incremental
compiler was VERY fast(like save the file, .js is instantly updated).

I am sure as we go, there will be compiler flags to turn off most the
FlexJS emitted type generation so it will look like plain ole js.

Mike


------------------------------------------------------------
ActionScript
------------------------------------------------------------

package
{
public class Main
{
    public function start():void
    {
        var element:Element = document.createElement("button");
        element.onclick = function ():void {
            alert("Hello browser from FalconJX!");
        };
        button.textContent = "Say Hello";
        document.body.appendChild(button);
    }
}
}

------------------------------------------------------------
JavaScript
------------------------------------------------------------

/**
 * Main
 *
 * @fileoverview
 *
 * @suppress {checkTypes}
 */

goog.provide('Main');

goog.require('document');
goog.require('alert');
goog.require('Element');
goog.require('org_apache_flex_utils_Language');



/**
 * @constructor
 */
Main = function() {
};


/**
 * @expose
 */
Main.prototype.start = function() {
  var self = this;
  var /** @type {Element} */ element = document.createElement("button");
  element.onclick = function() {
    alert("Hello browser from FalconJX!");
  };
  button.textContent = "Say Hello";
  document.body.appendChild(button);
};


/**
 * Metadata
 *
 * @type {Object.<string, Array.<Object>>}
 */
Main.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'Main', qName:
'Main'}] };


On Wed, Jun 10, 2015 at 7:55 AM, Michael Schmalle <teotigraphix...@gmail.com
> wrote:

> Fred and others;
>
> I just committed a unit test that shows the full meal deal.
>
> TestExternalsJSCompile.java
>
> 1. parse/compile externs .js using GCC compile()
> 2. emit .as from compiled externs AST
> 3. create JS.swc from emitted .as files
> 4. load FlexJS backend and compile with no playerglobal.swc, only JS.swc
> 5. cross compile Main.as that uses the DOM API/JS.swc into Main_output.js
> file.
>
> So now you can see exactly what is going on without me confusing you with
> the internals of what is going on.
>
> Peace,
> Mike
>

Reply via email to