Change GoogDocEmitter got rid of the warnings but broke GenericTests for
now.

I will next try --generate-exports, but I'm thinking we want to allow
control at the file and property/method level.

Thoughts?
-Alex

On 9/30/16, 12:27 PM, "Greg Dove" <greg.d...@gmail.com> wrote:

>Thanks for the explanation!
>I guess I missed the distinction with the accessors, but I had remembered
>the 'solution' and just assumed it was appropriate when it 'worked' for
>static variables and methods (not realizing the other consequences).
>
>In any case it appears that @export does not prevent renaming on the
>static
>members, but it seems it currently does on instance members.
>If you find a solution for statics while I'm away that would be great.
>--generate_exports
>sounds like a possible option (for reflection and/or bindable needs) if it
>works.
>
>Otherwise I am happy to dig in when I'm back.
>
>
>On Sat, Oct 1, 2016 at 8:07 AM, Alex Harui <aha...@adobe.com> wrote:
>
>> IMO, there are two separate issues.
>>
>> I think Josh found that static accessors couldn't be accessed via normal
>> code "ClassName.propertyName".  I ran into this for instance accessors
>>as
>> well.  The instance accessors are defined in a Object.defineProperty
>>call
>> separate from the usual ClassName.prototype.propertyName syntax.  GCC
>> should be able to rename propertyName to "a" as long as it renames the
>> accessor name to "a" as well, but GCC was being fooled since the
>>accessor
>> doesn't follow the standard pattern and would choose "b" instead.  I
>>will
>> have to investigate to see how I fixed this for instance accessors and
>>see
>> if similar approaches will work for static accessors.  IOW, we need to
>> sync up the renaming between the accessors and the rest of the class.
>>
>> Reflection, IMO, is a separate issue.  I think Binding has similar
>>issues.
>>  There, we might be using dot-path string expressions and trying to find
>> them, but they’ve been renamed.  SO this is either syncing up strings to
>> the rename, or preventing the rename in the first place.  What we want
>>to
>> allow is for projects that don't use Reflection (and Binding) to get the
>> benefits of renaming to shorter names.  Then Reflection and Binding may
>> require that you make your app fatter by preventing certain renames or
>> maybe we'll find a way to figure out what the rename was and change the
>> string used for lookup.
>>
>> Hard to say what the answer will be right now.  My first move is to
>>revert
>> each change from @expose back to @export and see what breaks and if one
>>of
>> those changes makes all of those warnings go away.  Then look into new
>> solutions.  See mention of the --generate_exports in [2].  It looks like
>> we aren't using it, and we might make that option required for
>>Reflection,
>> although it could seriously bloat the output.
>>
>> -Alex
>>
>> [2]
>> https://github.com/google/closure-compiler/wiki/
>> Annotating-JavaScript-for-t
>> he-Closure-Compiler
>>
>> On 9/30/16, 11:37 AM, "Greg Dove" <greg.d...@gmail.com> wrote:
>>
>> >I read that link, it's very helpful. It seems that this is going to be
>>a
>> >challenge. I suggest you revert that as you suggested.
>> >
>> >Josh discovered this originally for static accessors I think (the fact
>> >that
>> >@export does not prevent renaming on statics and @expose was the only
>> >other
>> >option that seemed to work). I 'rediscovered' it when I was working on
>> >static bindables. Then it became obvious it also affected static
>>variables
>> >and methods when I tested for reflection.
>> >
>> >The advice in that note is similar to what I think you were mentioning
>> >elsewhere about string access.
>> >
>> >"If you want a property not to be obfuscated, access it as
>> >this['sample']instead of this.sample (you'll also need to fix all
>> >references)." (instead of using @expose)
>> >
>> >Go ahead and revert that change and I can see what (if anything) I can
>>do
>> >with the above when I'm back.
>> >
>> >
>> >
>> >
>> >On Sat, Oct 1, 2016 at 6:53 AM, Greg Dove <greg.d...@gmail.com> wrote:
>> >
>> >> Alex, @export did not work for me on any static members. You cannot
>> >> reflect into the field names unless you use @expose.
>> >>
>> >> You can double check this via generictests reflection tests.
>> >>
>> >> -Greg
>> >> [sent from my phone]
>> >>
>> >> On 1/10/2016 5:21 AM, "Alex Harui" <aha...@adobe.com> wrote:
>> >>
>> >>>
>> >>>
>> >>> On 9/29/16, 11:36 PM, "Alex Harui" <aha...@adobe.com> wrote:
>> >>> >
>> >>> >Now that I got rid of the circularity in Ibead/Istrand I am also
>> >>>getting
>> >>> a
>> >>> >ton of warnings that say:
>> >>> >
>> >>> >  WARNING - incomplete alias created for namespace goog
>> >>>
>> >>> I think is is being caused by the change from @export to @expose [1]
>> >>>
>> >>> What was the scenario where @export wasn't working?  I'm going to
>> >>>switch
>> >>> things back to @export
>> >>>
>> >>> -Alex
>> >>>
>> >>> [1] https://developers.google.com/closure/compiler/docs/error-ref
>> >>>
>> >>>
>>
>>

Reply via email to