I'm adding Josh's original post [1] for reference. It also contains a link to Part 1. I guess the answer to my question is already documented [2]: we're using -prevent-rename-public-symbols=true by default, so in my example obj.setTheme() is not renamed.
Thanks. [1] https://lists.apache.org/thread/gf1rzm5twc3n78sxh331n87z0hq50g4o [2] https://apache.github.io/royale-docs/compiler/compiler-options.html#prevent-rename-public-symbols On 2021/11/09 18:01:36 Harbs wrote: > Thanks. I forgot about that. (And thanks for all that work!!!) > > We should probably capture the contents of those emails in our docs. > > Harbs > > > On Nov 9, 2021, at 7:21 PM, Josh Tynjala <joshtynj...@bowlerhat.dev> wrote: > > > > Unlike previously, these days, looser code is much more likely to work with > > the default compiler options. That was a nice side effect of my efforts to > > do the opposite. Harbs wanted me to get the compiler to rename/minify even > > more than it was able to before, which I achieved after many months of > > work. In the process, I fixed a ton of issues that helped get loose typing > > working better. > > > > As you all probably recall, I added a bunch of compiler options to control > > the compiler's behavior in regards to exporting and renaming in release > > builds compiled with Closure compiler. These new compiler options allow > > people to go back to the old behavior, where you were required to almost > > always use strict types, and they allow more things to be renamed/minified > > than we ever allowed previously (assuming that you write your code > > carefully enough). Details in my old threads with the title "Compiler > > options for reducing release build size of Royale projects" (and "Part 2"). > > > > -- > > Josh Tynjala > > Bowler Hat LLC <https://bowlerhat.dev> > > > > > > On Tue, Nov 9, 2021 at 4:15 AM Yishay Weiss <yishayj...@hotmail.com> wrote: > > > >> I was playing around with it, trying to demonstrate the advantages of > >> typed objects, expecting Object to mess up function calls. The demo glitch > >> was that GCC was fine with a looser version. > >> > >> From: Harbs<mailto:harbs.li...@gmail.com> > >> Sent: Tuesday, November 9, 2021 2:13 PM > >> To: dev@royale.apache.org<mailto:dev@royale.apache.org> > >> Subject: Re: Why Does GCC Not Rename This? > >> > >> Why is it Object and not “Editor”? > >> > >> private var editor:Editor; > >> > >> > >>> On Nov 9, 2021, at 2:03 PM, Harbs <harbs.li...@gmail.com> wrote: > >>> > >>> Oh. I misread what you wrote. I thought you were asking about “theme”. > >>> > >>> -js-dynamic-access-unknown-members=true is probably effecting that. What > >> compiler option is being used? > >>> > >>>> On Nov 9, 2021, at 1:59 PM, Harbs <harbs.li...@gmail.com> wrote: > >>>> > >>>> @nocollapse is what prevents renaming. > >>>> > >>>> Why it’s writing @nocollapse is another question... > >>>> > >>>>> On Nov 9, 2021, at 1:36 PM, Yishay Weiss <yishayj...@hotmail.com> > >> wrote: > >>>>> > >>>>> > >>>>> An application that uses this class [1] minifies to this [2]. In > >>>>> > >>>>> org.apache.royale.ace.ACEEditor.prototype.set__theme = function(value) > >> { > >>>>> this.org_apache_royale_ace_ACEEditor__theme = value; > >>>>> var /** @type {Object} */ obj = this.editor; > >>>>> obj.setTheme(value); > >>>>> }; > >>>>> > >>>>> I expected the closure compiler to rename setTheme(), but instead it > >> retained it. How did it know to do that? Is it because it’s an Object type? > >>>>> > >>>>> > >>>>> [1] Apache Paste Bucket<https://paste.apache.org/gg0dy> > >>>>> [2] Apache Paste Bucket<https://paste.apache.org/4c5f0> > >>>> > >>> > >> > >> > >