It appears that this is the case with any public static getter. public static function get FOO():String{return “foo”} or public static function get FOO():Foo{return _foo}
I don’t see any reason why bracket notation would be needed. Is this a throwback from before we had the get__ functions? Thanks, Harbs > On Jul 9, 2017, at 11:27 PM, Harbs <harbs.li...@gmail.com> wrote: > > I just discovered something: > > Foo.as: > package com.acme.foobaz.model{ > [Bindable]public class Foo{ > static public const BAZ:String = “baz”; > } > } > > In some other class: > > if(baz == Foo.BAZ){//do something} > > compiles to: > if(baz == com.acme.foobaz.model.Foo[“BAZ”]) > > If you remove the [Bindable] meta tag on the Foo class, it compiles to: > if(baz == com.acme.foobaz.model.Foo.BAZ) > > In the debug build, these two are functionally identical. However, when > Google minifies the file, it has no way of knowing that Foo.BAZ is used. This > results in calling (assuming com.acme.foobaz.model.Foo becomes k) k.BAZ even > though k.BAZ was optimized away and k.BAZ is undefined. > > Why does [Bindable] on a class cause the bracket notation to be used? > > Harbs