The problem with expecting externs files to be packaged into the SWC is
that they might not exist. For instance, if I've converted a TypeScript
definition to ActionScript, I won't have an externs file to add to the SWC.

- Josh
On Oct 20, 2015 11:46 PM, "Alex Harui" <aha...@adobe.com> wrote:

>
>
> On 10/20/15, 5:08 PM, "Josh Tynjala" <joshtynj...@gmail.com> wrote:
>
> >As long as FlexJS apps don't use external libraries, it should be safe to
> >do more drastic optimization like automatically renaming variables and
> >things. This must be disabled for code transpiled with asjsc because
> >external JS libraries can be referenced in the transpiled code, and those
> >names must remain unchanged. It's possible to pass in externs files to the
> >closure compiler, but that presents a high barrier to entry.
>
> I think I see code where, when you compile externs files into SWCs, you
> can also pack the JS for the externs in the SWC in an folder called
> “externs” and the transpiler will use that JS file as an externs file
> during the compilation, which should prevent renaming.
>
> I believe that isn’t necessary for JS.swc because its externs are defaults
> in GCC.  Maybe it will matter for GCL.swc once I turn on optimizations
> again.  But we may need to verify that these code paths work as expected.
> The SWC should be able to package the externs files you need to prevent
> renaming when using third-party libraries.
>
> >
> >I could not find a way to turn off the advanced optimizations for asjsc
> >apps without also turning it off in FlexJS apps. As I recall, it gets
> >configured in the middle of a big method, so it wasn't easy for me to
> >override something. Some refactoring could make that more easily
> >configurable across different JS output types.
>
> My current thought on this is to add a new compiler option that works sort
> of like -define where you can specify as many as you want and just about
> anything after.  For lack of a better name, I am going to call it
> -js-compiler-option.  Better name suggestion are welcome.
>
> So you can add compiler arguments like
> -js-compiler-option=“—compilation_level SIMPLE”.  One problem with this
> plan is that we don’t actually use the GCC command line.  We use the Java
> APIs which uses a data structure.  We will have to write code that maps
> strings like “—compilation_level SIMPLE” to actual code that sets data
> structure properties.  If GCC adds new options, we’ll have to keep
> changing the mapper to stay up-to-date.
>
> Thoughts?
> -Alex
>
>

Reply via email to