I have no idea how things are working in the compiler, but here are my thoughts:
1) The vast majority of the code is internal to FlexJS. Even if client code does not lose names, the library itself should be minified as much as possible. As a reference, the Angular library is over 700 KB, but less than 100 KB minified. 2) Angular has a way of preventing losing names on dependencies using the archaic array notation.[1] The notation is really un-intuitive, but works. I’m hoping we can do better. Maybe we can use a new ActionScript metadata tag? 3) It seems to me that there should be a way to prevent variables marked public from getting minified away. Isn’t there notation that Google Compiler reads to prevent renaming? [1]https://scotch.io/tutorials/declaring-angularjs-modules-for-minification On Oct 21, 2015, at 3:08 AM, 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 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. > > On the other hand, changing the names of variables and things is considered > a bad practice by many developers because there's a risk of breaking > things. If I had to guess, other types of optimizations (like enabling gzip > on your server) would give you a similar file size reduction. > > - Josh > > On Tue, Oct 20, 2015 at 4:36 PM, Alex Harui <aha...@adobe.com> wrote: > >> Josh turned off the variable renaming. I suppose we should turn it on for >> flexjs apps. >> >> >> Sent from my LG G3, an AT&T 4G LTE smartphone >> >> >> ------ Original message------ >> >> From: Harbs >> >> Date: Tue, Oct 20, 2015 3:51 PM >> >> To: dev@flex.apache.org; >> >> Subject:Re: [DISCUSS] Release Apache FlexJS 0.5.0 >> >> >> Yes. They do. Pretty exciting! >> >> Question: >> >> The release js for the data binding example is 432 KB. Why is it so big? >> >> On Oct 21, 2015, at 1:25 AM, Alex Harui <aha...@adobe.com> wrote: >> >>> Yay! So in the examples folder, should be some examples in bin/js-debug >>> and bin-debug folders. They should run and work mostly. >>> >>> Thanks for sticking with it. >>> -Alex >>> >>> On 10/20/15, 3:17 PM, "Harbs" <harbs.li...@gmail.com> wrote: >>> >>>> OK. I feel like I just took a big step in the right direction! :-) >>>> >>>> approve: >>>> >>>> +1 >>>> Package >>>> >> http://apacheflexbuild.cloudapp.net:8080/job/flex-asjs/lastSuccessfulBuild >>>> /artifact/out/apache-flex-flexjs-0.5.0-src.tar.gz >>>> Java 1.7 >>>> OS: Mac OS X x86_64 10.9.5 >>>> Source kit signatures match: y >>>> Source kit builds: y >>>> README is ok: y >>>> RELEASE_NOTES is ok: y >>>> NOTICE is ok: y >>>> LICENSE is ok: y >>>> No unapproved licenses or archives: y >>>> No unapproved binaries: y >>>> >>>> >>>> main: >>>> >>>> BUILD SUCCESSFUL >>>> Total time: 9 minutes 12 seconds >>>> >>>> (There’s still parts of this process that’s a bit fuzzy to me, but >> things >>>> are definitely getting clearer.) >>>> >>>> On Oct 14, 2015, at 10:09 AM, Alex Harui <aha...@adobe.com> wrote: >>>> >>>>> Hi, >>>>> >>>>> Similar to the FalconJX discuss thread, I spent some time today trying >>>>> to >>>>> make the FlexJS release testing simpler. And like for FalconJX, it >>>>> would >>>>> be great for folks to try it and report issues. >>>>> >>>>> You still need to set up the pre-requisites manually (Ant, Java, AIR, >>>>> Flash playerglobal, Flash Player Debugger), but ‘ant all’ should now >> run >>>>> without needing flex-sdk or flex-asjs or any other repo. Of course, my >>>>> system isn’t quite as ‘clean’ as some of yours so I may have missed >>>>> something. >>>>> >>>>> For FlexJS, I opted to update the ApproveFlexJS script so that pull a >>>>> binary release of FalconJX and FlexUnit so you don’t need to set up any >>>>> additional environment variables. Note, though, that I did not put the >>>>> logic to pull those binary releases into the main build scripts >> because, >>>>> at least for me as a developer, I don’t want to be working against >>>>> binary >>>>> artifacts, I want to be working against the various repos. >>>>> >>>>> So, to try out my latest attempt at simplification, you must use the >>>>> ApproveFlexJS script which you can get from [1]. See the steps below: >>>>> >>>>> 0) Make sure Ant and Java are in the path, and set up AIR_HOME, >>>>> PLAYERGLOBAL_HOME and FLASHPLAYER_DEBUGGER environment variables if you >>>>> haven’t already. Then: >>>>> 1) create an empty folder. >>>>> 2) Copy ApproveFlexJS.xml from the flex-asjs repo or download it here >>>>> [1] and copy it into the empty folder >>>>> 3) From the empty folder, run ‘ant -e -f ApproveFlexJS.xml >>>>> -Drelease.version=0.5.0’ >>>>> >>>>> It will take you through examining the notice files and then at the >> end, >>>>> it should download FalconJX and FlexUnit, then build FlexJS and run its >>>>> tests unattended. >>>>> >>>>> If you want to grab the bits manually, they are here [2]. >>>>> >>>>> Thanks in advance for trying it. >>>>> -Alex >>>>> >>>>> [1] >>>>> >>>>> >> https://git-wip-us.apache.org/repos/asf/flex-sdk/repo?p=flex-asjs.git;a=b >>>>> lo >>>>> b_plain;f=ApproveFlexJS.xml;hb=refs/heads/develop >>>>> [2] >>>>> >>>>> >> http://apacheflexbuild.cloudapp.net:8080/job/flex-asjs/lastSuccessfulBuil >>>>> d/ >>>>> artifact/out/ >>>>> >>>>> >>>> >>> >> >>