Alex, all,

In 'goog', adding @expose in the JSDoc prevents a property or method
from being renamed in order to keep it available for calls from 'the
outside'.

In FlexJS, the MXMLData solution has (target) property names as strings.

The Closure Compiler won't touch strings and it will not rename
@expose members. A small test shows that this adds up to an 'unneeded'
file size in the release version of the example of 6 kb. This is 6 kB
of 26 kB (not counting the 'goog.events' contribution), a whopping
25%. This is not a one time hit like you get when adding another
library functionality, this looks to be 25% of every application you
create, however big. So, a 200 kB app is "wasting" 50 kB by not
allowing members to be renamed.

My points is (if there is any) that if we're looking to keep the
delivery size of the compiled JS down, we might not find much benefit
in keeping out minor, one time additions, but we might want to look at
optimising the use of the toolchain.

EdB

PS. The 'small' test I did was not functional and immediate efforts to
make it so showed some non-trivial hurdles; this is not an 'easy-fix'.



--
Ix Multimedia Software

Jan Luykenstraat 27
3521 VB Utrecht

T. 06-51952295
I. www.ixsoftware.nl

Reply via email to