Hi Alex, if you have time, perhaps you can shed some light on this? I have an mxml component using states, that implements an Interface, IFormSequence.
the generated CLASS_INFO looks like this: FLEXJS_CLASS_INFO = { names: [{ name: 'ActionForm', qName: 'components.forms.ActionForm', kind: 'class' }], interfaces: [components.forms.IFormSequence] }; and the goog.require for the interface is there at the top goog.require('components.forms.IFormSequence'); I notice that the goog.addDependency('../../../components/forms/IFormSequence.js', ['components.forms.IFormSequence'], []); appears after the goog.addDependency('../../../components/forms/ActionForm.js', ['components.forms.ActionForm'], ['org.apache.flex.html.Group']); in the index.html. Perhaps the order here is not important and goog resolves everything somehow, but I did wonder if the dependency chain in for ActionForm.js above should also contain the interface (that's a question, not a suggestion - I don't know what is right here). At the moment there is an issue where there is an interface check on startup when states or styles or something like this are being initialized (it is actually a check for a different interface, but because the 'interfaces' array is defined and has length in CLASS_INFO it looks there and tries to follow follow the inheritance chain on the undefined Interface reference, causing mayhem). Because the reference inside the CLASS_INFO evaluates to undefined, I know the dependencies are not loading in the right order. This was working last week so either it is something random/unlrelated elsewhere in the project that has changed the order, or the compiler has changed perhaps. Could your changes to goog.requires ordering have something to do with this, do you think? I have not checked in the compiler to see if mxml "implements' is being treated the same as a regular actionscript 'implements' or if there are different code paths internally that might create differences for mxml based output vs regular AS, which was another thing I thought about here, because I think 'implements' is not often used in mxml. I'm happy to do that if you think that might warrant investigation, but figured I would check on whether you thought the other changes could be affecting this first. Also, fyi, I was not using removeCirculars (although I don't *think* there are any circular references here and that part has not changed since it worked previously). fyi, when I tried remove circulars I got a compilation fail at org.apache.flex.compiler.internal.graph.GoogDepsWriter.getListOfFiles(GoogDepsWriter.java:103)