I'm in the middle of trying to upgrade our Closure versions so I'm not easily 
able to reproduce this.  Can you reproduce it with examples/royale/ASDoc?  If 
not, what is the key factor?

The CSS is encoded into the JS because the ICSSValuesImpls don't ask the 
browser for the values, they read the encoded data structure.  There might be a 
better way to deal with it.

-Alex

On 12/22/18, 11:16 PM, "Harbs" <harbs.li...@gmail.com> wrote:

    Much better.
    
    The only difference I’m seeing right now is that a few CSS blocks are in 
different locations. The main JS files have corresponding differences in the 
order of the MXML declared CSS.
    
    There are two differences. In both cases it’s CSS that’s pulled in from 
MXML files:
    
    
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpaste.apache.org%2FQCPO&amp;data=02%7C01%7Caharui%40adobe.com%7C38144c6aad134a10c4c208d668a687fe%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636811461811634059&amp;sdata=G8xFrRwg1k7E7hh82wT06uTS45rXV6%2Ft7R%2F%2FkRQgsug%3D&amp;reserved=0
 
<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpaste.apache.org%2FQCPO&amp;data=02%7C01%7Caharui%40adobe.com%7C38144c6aad134a10c4c208d668a687fe%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636811461811634059&amp;sdata=G8xFrRwg1k7E7hh82wT06uTS45rXV6%2Ft7R%2F%2FkRQgsug%3D&amp;reserved=0>
    
    I don’t think the order really matters in my case, but theoretically CSS 
order can matter. I’m not really sure how the order is determined today.
    
    As an aside: What is the purpose for having the declared CSS styling 
included in the JS file? Is there a trick to get true css styling omitted?
    
    Harbs
    
    > On Dec 22, 2018, at 9:10 AM, Alex Harui <aha...@adobe.com.INVALID> wrote:
    > 
    > OK, I think I've made the changes so that every build will be the same 
whether you clean or not.
    > 
    > Hopefully this will make it easier to optimize the build because you can 
test if the output is the same or not.
    > 
    > Let me know if you still see differences.
    > 
    > -Alex
    > 
    > On 12/20/18, 1:40 AM, "Harbs" <harbs.li...@gmail.com> wrote:
    > 
    >    TourDeJewel has similar results to my app.
    > 
    >    There are a number of classes which have different requires:
    > 
    >    ButtonPlayground
    >    ListPlayGround
    >    SliderPlayGround
    >    SnackbarPlayGround
    >    TablePlayGround
    >    WizardPlayGround
    > 
    >    The first compile seems to have requires which are removed on the 
second compile.
    > 
    >    It’s interesting to note that the files which have these symptoms (in 
TourDeJewel) all seem to be MXML files, but not all MXML files have the 
symptoms.
    > 
    >    The app seems to work in both cases.
    > 
    >    My class which has the static bindable ArrayList that has the same 
symptom, was an .as file FWIW. What I wrote below was backwards. The first 
compile seems to have more requires (when different) than the second compile in 
all cases.
    > 
    >    HTH,
    >    Harbs
    > 
    >> On Dec 20, 2018, at 11:06 AM, Harbs <harbs.li...@gmail.com> wrote:
    >> 
    >> The class has these lines which likely complicate things:
    >> 
    >> /**
    >> * @export
    >> * @type {org.apache.royale.collections.ArrayList}
    >> */
    >> com.printui.view.managers.LocaleManager.spellingLocalesList_ = new 
org.apache.royale.collections.ArrayList();
    >> 
    >> The above was generated from:
    >> 
    >> [Bindable]
    >> public static var spellingLocalesList:ArrayList = new ArrayList();
    >> 
    >>> On Dec 20, 2018, at 11:01 AM, Harbs <harbs.li...@gmail.com> wrote:
    >>> 
    >>> I was not clear below that the ArrayList dependency was a static one.
    >>> 
    >>>> On Dec 20, 2018, at 10:58 AM, Harbs <harbs.li...@gmail.com> wrote:
    >>>> 
    >>>> Using my app:
    >>>> 
    >>>> First blush looks good. I don’t get any compile errors.
    >>>> 
    >>>> Second blush reveals that the files are not identical.
    >>>> 
    >>>> Interestingly:
    >>>> 
    >>>> I have one class which has a single Royale dependency: ArrayList.
    >>>> 
    >>>> A double-compile results in:
    >>>> goog.require('org.apache.royale.collections.ArrayList');
    >>>> goog.require('org.apache.royale.events.EventDispatcher');
    >>>> goog.require('org.apache.royale.core.IStrand');
    >>>> goog.require('org.apache.royale.events.CollectionEvent');
    >>>> goog.require('org.apache.royale.events.Event');
    >>>> goog.require('org.apache.royale.collections.IArrayList');
    >>>> goog.require('org.apache.royale.collections.ICollectionView');
    >>>> goog.require('org.apache.royale.core.IBead');
    >>>> 
    >>>> While a single-compile results in:
    >>>> goog.require('org.apache.royale.collections.ArrayList');
    >>>> goog.require('org.apache.royale.events.EventDispatcher');
    >>>> goog.require('org.apache.royale.core.IStrand');
    >>>> goog.require('org.apache.royale.events.CollectionEvent');
    >>>> goog.require('org.apache.royale.events.Event');
    >>>> 
    >>>> 
    >>>> I’m not sure why there’s more than a single require for:
    >>>> 
    >>>> goog.require('org.apache.royale.collections.ArrayList');
    >>>> 
    >>>> There is a dependency on another class: 
com.printui.model.vos.RuntimeOptions which uses 
ApplicationParametersCaseInsensitiveBead and Application.
    >>>> 
    >>>> The main app and index.html both have the same number of lines, but 
the order of the classes is different.
    >>>> 
    >>>> The good news is that both versions seem to work with no RTE, but it 
is concerning that the order of the files changes.
    >>>> 
    >>>> I’ll check some of the examples as well...
    >>>> 
    >>>>> On Dec 20, 2018, at 7:14 AM, Alex Harui <aha...@adobe.com.INVALID> 
wrote:
    >>>>> 
    >>>>> It might just be me, but after fixing the circular dependency issue, 
I'm getting repeatable builds.  It makes some sense in that the fix reduces the 
amount of mucking with the dependency lists.  Let me know if you still see 
differences and we'll see if we can figure out why.
    >>>>> 
    >>>>> -Alex
    >>>>> 
    >>>>> On 12/19/18, 12:18 AM, "Harbs" <harbs.li...@gmail.com> wrote:
    >>>>> 
    >>>>> The DataBindingExample doesn’t seem to have an obvious runtime error, 
but there are missing requires in DataBindingExample.js and the addDependencies 
are different.
    >>>>> 
    >>>>> HTH,
    >>>>> Harbs
    >>>>> 
    >>>>>> On Dec 19, 2018, at 10:12 AM, Harbs <harbs.li...@gmail.com> wrote:
    >>>>>> 
    >>>>>> The TourDeJewel example has the problem.
    >>>>>> 
    >>>>>> Rebuilding the debug version gets the runtime error that 
ApplicationBase is undefined.
    >>>>>> 
    >>>>>> Rebuilding the release build results in 238 errors in the Closure 
Compiler.
    >>>>>> 
    >>>>>>> On Dec 19, 2018, at 10:01 AM, Alex Harui <aha...@adobe.com.INVALID> 
wrote:
    >>>>>>> 
    >>>>>>> The circular dependency issue is almost certain to affect 
GoogDepsWriter.  It is end of my day here so I will start on those changes 
tomorrow.  So if you can find a simple test case for your issue (it doesn't 
have to fail in the browser, it might be good enough that the addDependency 
List is different or missing some items) then I will look at that test case 
after I finish up the circular issue.
    >>>>>>> 
    >>>>>>> Thanks,
    >>>>>>> -Alex
    >>>>>>> 
    >>>>>>> On 12/18/18, 11:25 PM, "Alex Harui" <aha...@adobe.com.INVALID> 
wrote:
    >>>>>>> 
    >>>>>>> Pretty sure something will need to change in GoogDepsWriter.  Don't 
know what just yet.  Might be best if you can come up with a simple test case.. 
 I'm working on a circular dependency issue right now that might also affect 
GoogDepsWriter.  If you build some of our examples, do any show missing 
goog.addDependencies?
    >>>>>>> 
    >>>>>>> -Alex
    >>>>>>> 
    >>>>>>> On 12/18/18, 11:12 PM, "Harbs" <harbs.li...@gmail.com> wrote:
    >>>>>>> 
    >>>>>>>  So where do you suggest we fix it? In 
GoogDepsWriter.removeRequires?
    >>>>>>> 
    >>>>>>>  I’m not completely following what’s going on there.
    >>>>>>> 
    >>>>>>>  Harbs
    >>>>>>> 
    >>>>>>>> On Dec 19, 2018, at 12:52 AM, Alex Harui 
<aha...@adobe.com.INVALID> wrote:
    >>>>>>>> 
    >>>>>>>> Yeah, that makes more sense.  So somehow the information we get 
back from processing the Royale Dependency List isn't recovering all of the 
dependency data.  I had noticed that we didn't list @extends  and @implements 
in the Dependency Lists and wondered how that was working.  Maybe it isn't 
working and we've been getting lucky where we've seen it work.
    >>>>>>>> 
    >>>>>>>> -Alex
    >>>>>>>> 
    >>>>>>>> On 12/18/18, 1:59 PM, "Harbs" <harbs.li...@gmail.com> wrote:
    >>>>>>>> 
    >>>>>>>> The working one has (in this order):
    >>>>>>>> 
goog.addDependency('../../../org/apache/royale/core/Application.js', 
['org.apache.royale.core.Application'], 
['org.apache.royale.core.ApplicationBase', 'org.apache.royale.core.IStrand', 
'org.apache.royale.core.IParent', 'org.apache.royale.events.IEventDispatcher', 
'org.apache.royale.core.IInitialViewApplication', 
'org.apache.royale.core.IPopUpHost', 'org.apache.royale.core.IPopUpHostParent', 
'org.apache.royale.core.IRenderedObject']);
    >>>>>>>> 
goog.addDependency('../../../org/apache/royale/core/IInitialViewApplication.js',
 ['org.apache.royale.core.IInitialViewApplication'], 
['org.apache.royale.events.IEventDispatcher']);
    >>>>>>>> 
goog.addDependency('../../../org/apache/royale/core/IPopUpHost.js', 
['org.apache.royale.core.IPopUpHost'], []);
    >>>>>>>> 
goog.addDependency('../../../org/apache/royale/core/IPopUpHostParent.js', 
['org.apache.royale.core.IPopUpHostParent'], 
['org.apache.royale.core.IParent']);
    >>>>>>>> 
goog.addDependency('../../../org/apache/royale/core/ApplicationBase.js', 
['org.apache.royale.core.ApplicationBase'], 
['org.apache.royale.core.HTMLElementWrapper', 
'org.apache.royale.core.IFlexInfo']);
    >>>>>>>> goog.addDependency('../../../org/apache/royale/core/IFlexInfo.js', 
['org.apache.royale.core.IFlexInfo'], []);
    >>>>>>>> 
    >>>>>>>> The broken one has:
    >>>>>>>> 
    >>>>>>>> 
goog.addDependency('../../../org/apache/royale/core/Application.js', 
['org.apache.royale.core.Application'], 
['org.apache.royale.core.ApplicationBase', 'org.apache.royale.core.IStrand', 
'org.apache.royale.core.IParent', 'org.apache.royale.events.IEventDispatcher', 
'org.apache.royale.core.IInitialViewApplication', 
'org.apache.royale.core.IPopUpHost', 'org.apache.royale.core.IPopUpHostParent', 
'org.apache.royale.core.IRenderedObject']);
    >>>>>>>> 
goog.addDependency('../../../org/apache/royale/core/BrowserResizeListener.js', 
['org.apache.royale.core.BrowserResizeListener'], 
['org.apache.royale.core.IBead']);
    >>>>>>>> 
goog.addDependency('../../../org/apache/royale/core/CallLaterBead.js', 
['org.apache.royale.core.CallLaterBead'], ['org.apache.royale.core.IBead']);
    >>>>>>>> 
    >>>>>>>> (No addDependency for ApplicationBase)
    >>>>>>>> 
    >>>>>>>> The broken one also has no addDependency for HTMLElementWrapper, 
IFlexInfo and I’m sure many others.
    >>>>>>>> 
    >>>>>>>>> On Dec 18, 2018, at 11:43 PM, Alex Harui 
<aha...@adobe.com.INVALID> wrote:
    >>>>>>>>> 
    >>>>>>>>> Is there a goog.addDependency for ApplicationBase.js in the 
working and non-working index.html, and are they different?
    >>>>>>>> 
    >>>>>>>> 
    >>>>>>>> 
    >>>>>>> 
    >>>>>>> 
    >>>>>>> 
    >>>>>>> 
    >>>>>>> 
    >>>>>> 
    >>>>> 
    >>>>> 
    >>>>> 
    >>>> 
    >>> 
    >> 
    > 
    > 
    > 
    
    

Reply via email to