You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2021/12/26 16:00:05 UTC

[royale-compiler] 01/01: Moved interfaces to ROYALE_INTERFACE_INFO

This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/ROYALE_INTERFACE_INFO
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git

commit 92620516b007297400ac5f350e18e413854b9de7
Author: Harbs <ha...@in-tools.com>
AuthorDate: Sun Dec 26 17:59:54 2021 +0200

    Moved interfaces to ROYALE_INTERFACE_INFO
---
 .../codegen/js/jx/PackageFooterEmitter.java        | 228 +++++++++++----------
 .../codegen/js/royale/JSRoyaleEmitterTokens.java   |   1 +
 .../codegen/mxml/royale/MXMLRoyaleEmitter.java     |   6 +-
 .../codegen/js/royale/TestRoyalePackage.java       |   2 +-
 .../mxml/royale/TestRoyaleMXMLApplication.java     |   4 +-
 .../files/controllers/MyController_result.js       |   2 +-
 .../projects/bad_overrides/classes/A_result.js     |   2 +-
 .../royale/projects/interfaces/Test_result.js      |   2 +-
 .../projects/interfaces/interfaces/IA_result.js    |   2 +-
 .../projects/interfaces/interfaces/IC_result.js    |   2 +-
 .../royale/projects/overrides/classes/A_result.js  |   2 +-
 .../projects/overrides/interfaces/IC_result.js     |   2 +-
 12 files changed, 132 insertions(+), 123 deletions(-)

diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/PackageFooterEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/PackageFooterEmitter.java
index 64edb13..d785970 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/PackageFooterEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/PackageFooterEmitter.java
@@ -57,71 +57,71 @@ public class PackageFooterEmitter extends JSSubEmitter implements
         ISubEmitter<IPackageDefinition>
 {
 
-    public PackageFooterEmitter(IJSEmitter emitter)
-    {
-        super(emitter);
-    }
+	public PackageFooterEmitter(IJSEmitter emitter)
+	{
+			super(emitter);
+	}
 
-    @Override
-    public void emit(IPackageDefinition definition)
-    {
-        IASScope containedScope = definition.getContainedScope();
-        ITypeDefinition type = EmitterUtils.findType(containedScope
-                .getAllLocalDefinitions());
-        if (type == null)
-            return;
+	@Override
+	public void emit(IPackageDefinition definition)
+	{
+			IASScope containedScope = definition.getContainedScope();
+			ITypeDefinition type = EmitterUtils.findType(containedScope
+							.getAllLocalDefinitions());
+			if (type == null)
+					return;
 
-        getEmitter().emitSourceMapDirective(type.getNode());
-    }
+			getEmitter().emitSourceMapDirective(type.getNode());
+	}
 
-    public void emitClassInfo(ITypeNode tnode)
-    {
-        JSRoyaleDocEmitter doc = (JSRoyaleDocEmitter) getEmitter()
-        .getDocEmitter();
+	public void emitClassInfo(ITypeNode tnode)
+	{
+		JSRoyaleDocEmitter doc = (JSRoyaleDocEmitter) getEmitter()
+		.getDocEmitter();
 
-	    if (!getEmitter().getModel().isExterns && !getEmitter().getModel().suppressExports)
-	    {
+		if (!getEmitter().getModel().isExterns && !getEmitter().getModel().suppressExports)
+		{
 			boolean isInterface = tnode instanceof IInterfaceNode;
 			boolean isDynamic = tnode instanceof IClassNode && tnode.hasModifier(ASModifier.DYNAMIC);
 			/*
-		     * Metadata
-		     *
-		     * @type {Object.<string, Array.<Object>>}
-		     */
-		    writeNewline();
-		    writeNewline();
-		    writeNewline();
-		    doc.begin();
-		    writeNewline(" * Metadata");
-		    writeNewline(" *");
-		    writeNewline(" * @type {Object.<string, Array.<Object>>}");
-		    doc.end();
+				* Metadata
+				*
+				* @type {Object.<string, Array.<Object>>}
+				*/
+			writeNewline();
+			writeNewline();
+			writeNewline();
+			doc.begin();
+			writeNewline(" * Metadata");
+			writeNewline(" *");
+			writeNewline(" * @type {Object.<string, Array.<Object>>}");
+			doc.end();
+
+			// a.B.prototype.AFJS_CLASS_INFO = {  };
+			write(getEmitter().formatQualifiedName(tnode.getQualifiedName()));
+			write(ASEmitterTokens.MEMBER_ACCESS);
+			write(JSEmitterTokens.PROTOTYPE);
+			write(ASEmitterTokens.MEMBER_ACCESS);
+			writeToken(JSRoyaleEmitterTokens.ROYALE_CLASS_INFO);
+			writeToken(ASEmitterTokens.EQUAL);
+			writeToken(ASEmitterTokens.BLOCK_OPEN);
 	
-		    // a.B.prototype.AFJS_CLASS_INFO = {  };
-		    write(getEmitter().formatQualifiedName(tnode.getQualifiedName()));
-		    write(ASEmitterTokens.MEMBER_ACCESS);
-		    write(JSEmitterTokens.PROTOTYPE);
-		    write(ASEmitterTokens.MEMBER_ACCESS);
-		    writeToken(JSRoyaleEmitterTokens.ROYALE_CLASS_INFO);
-		    writeToken(ASEmitterTokens.EQUAL);
-		    writeToken(ASEmitterTokens.BLOCK_OPEN);
-		
-		    // names: [{ name: '', qName: '', kind:'interface|class' }]
-		    write(JSRoyaleEmitterTokens.NAMES);
-		    writeToken(ASEmitterTokens.COLON);
-		    write(ASEmitterTokens.SQUARE_OPEN);
-		    writeToken(ASEmitterTokens.BLOCK_OPEN);
-		    write(JSRoyaleEmitterTokens.NAME);
-		    writeToken(ASEmitterTokens.COLON);
-		    write(ASEmitterTokens.SINGLE_QUOTE);
-		    write(tnode.getName());
-		    write(ASEmitterTokens.SINGLE_QUOTE);
-		    writeToken(ASEmitterTokens.COMMA);
-		    write(JSRoyaleEmitterTokens.QNAME);
-		    writeToken(ASEmitterTokens.COLON);
-		    write(ASEmitterTokens.SINGLE_QUOTE);
-		    write(getEmitter().formatQualifiedName(tnode.getQualifiedName()));
-		    write(ASEmitterTokens.SINGLE_QUOTE);
+			// names: [{ name: '', qName: '', kind:'interface|class' }]
+			write(JSRoyaleEmitterTokens.NAMES);
+			writeToken(ASEmitterTokens.COLON);
+			write(ASEmitterTokens.SQUARE_OPEN);
+			writeToken(ASEmitterTokens.BLOCK_OPEN);
+			write(JSRoyaleEmitterTokens.NAME);
+			writeToken(ASEmitterTokens.COLON);
+			write(ASEmitterTokens.SINGLE_QUOTE);
+			write(tnode.getName());
+			write(ASEmitterTokens.SINGLE_QUOTE);
+			writeToken(ASEmitterTokens.COMMA);
+			write(JSRoyaleEmitterTokens.QNAME);
+			writeToken(ASEmitterTokens.COLON);
+			write(ASEmitterTokens.SINGLE_QUOTE);
+			write(getEmitter().formatQualifiedName(tnode.getQualifiedName()));
+			write(ASEmitterTokens.SINGLE_QUOTE);
 			writeToken(ASEmitterTokens.COMMA);
 			write(JSRoyaleEmitterTokens.ROYALE_CLASS_INFO_KIND);
 			writeToken(ASEmitterTokens.COLON);
@@ -141,88 +141,96 @@ public class PackageFooterEmitter extends JSSubEmitter implements
 				writeToken(ASEmitterTokens.SINGLE_QUOTE);
 			}
 			
-		    write(ASEmitterTokens.BLOCK_CLOSE);
-		    write(ASEmitterTokens.SQUARE_CLOSE);
-	
-		    IExpressionNode[] enodes;
-		    if (tnode instanceof IClassNode)
-		        enodes = ((IClassNode) tnode).getImplementedInterfaceNodes();
-		    else {
+			write(ASEmitterTokens.BLOCK_CLOSE);
+			write(ASEmitterTokens.SQUARE_CLOSE);
+			write(ASEmitterTokens.SPACE);
+			write(ASEmitterTokens.BLOCK_CLOSE);
+			write(ASEmitterTokens.SEMICOLON);
+
+			IExpressionNode[] enodes;
+			if (tnode instanceof IClassNode)
+				enodes = ((IClassNode) tnode).getImplementedInterfaceNodes();
+			else {
 				enodes = ((IInterfaceNode) tnode).getExtendedInterfaceNodes();
 			}
 	
-	
 			boolean needsIEventDispatcher = tnode instanceof IClassNode
 					&& ((IClassDefinition) tnode.getDefinition()).needsEventDispatcher(getProject())
 					&& getModel().getImplicitBindableImplementation() == ImplicitBindableImplementation.IMPLEMENTS;
 	
 			//we can remove the mapping from the model for ImplicitBindableImplementation now
 			if (tnode.getDefinition() instanceof IClassDefinition)
-					getModel().unregisterImplicitBindableImplementation(
-							(IClassDefinition) tnode.getDefinition());
+				getModel().unregisterImplicitBindableImplementation(
+					(IClassDefinition) tnode.getDefinition());
 	
-		    if (enodes.length > 0 || needsIEventDispatcher)
-		    {
-		        writeToken(ASEmitterTokens.COMMA);
-		
-		        // interfaces: [a.IC, a.ID]
-		        write(JSRoyaleEmitterTokens.INTERFACES);
-		        writeToken(ASEmitterTokens.COLON);
-		        write(ASEmitterTokens.SQUARE_OPEN);
+			if (enodes.length > 0 || needsIEventDispatcher)
+			{
+				write(getEmitter().formatQualifiedName(tnode.getQualifiedName()));
+				write(ASEmitterTokens.MEMBER_ACCESS);
+				write(JSEmitterTokens.PROTOTYPE);
+				write(ASEmitterTokens.MEMBER_ACCESS);
+				writeToken(JSRoyaleEmitterTokens.ROYALE_INTERFACE_INFO);
+				writeToken(ASEmitterTokens.EQUAL);
+				writeToken(ASEmitterTokens.BLOCK_OPEN);
+
+				// interfaces: [a.IC, a.ID]
+				write(JSRoyaleEmitterTokens.INTERFACES);
+				writeToken(ASEmitterTokens.COLON);
+				write(ASEmitterTokens.SQUARE_OPEN);
 				if (needsIEventDispatcher) {
 					//add IEventDispatcher interface to implemented interfaces list
 					write(getEmitter().formatQualifiedName(BindableEmitter.DISPATCHER_INTERFACE_QNAME));
 					if (enodes.length > 0)
 						writeToken(ASEmitterTokens.COMMA);
 				}
-		        int i = 0;
-		        for (IExpressionNode enode : enodes)
-		        {
-		        	IDefinition edef = enode.resolve(getProject());
-		        	if (edef == null)
-		        		continue;
-		            write(getEmitter().formatQualifiedName(
-		                    edef.getQualifiedName()));
-		            if (i < enodes.length - 1)
-		                writeToken(ASEmitterTokens.COMMA);
-		            i++;
-		        }
-		        write(ASEmitterTokens.SQUARE_CLOSE);
-		    }
-		    write(ASEmitterTokens.SPACE);
-		    write(ASEmitterTokens.BLOCK_CLOSE);
-		    write(ASEmitterTokens.SEMICOLON);
+				int i = 0;
+				for (IExpressionNode enode : enodes)
+				{
+					IDefinition edef = enode.resolve(getProject());
+					if (edef == null)
+						continue;
+					write(getEmitter().formatQualifiedName(
+									edef.getQualifiedName()));
+					if (i < enodes.length - 1)
+							writeToken(ASEmitterTokens.COMMA);
+					i++;
+				}
+				write(ASEmitterTokens.SQUARE_CLOSE);
+				write(ASEmitterTokens.SPACE);
+				write(ASEmitterTokens.BLOCK_CLOSE);
+				write(ASEmitterTokens.SEMICOLON);
+			}
 
-		    if (needsIEventDispatcher) {
+			if (needsIEventDispatcher) {
 				JSRoyaleEmitter fjs = (JSRoyaleEmitter)getEmitter();
 				fjs.getBindableEmitter().emitBindableInterfaceMethods(((IClassDefinition) tnode.getDefinition()));
 			}
 
-		    collectReflectionData(tnode);
-		    IMetaTagNode[] metadata = null;
-		    IMetaTagsNode metadataTags = tnode.getMetaTags();
-		    if (metadataTags != null)
-		    	metadata = metadataTags.getAllTags();
+			collectReflectionData(tnode);
+			IMetaTagNode[] metadata = null;
+			IMetaTagsNode metadataTags = tnode.getMetaTags();
+			if (metadataTags != null)
+				metadata = metadataTags.getAllTags();
 	
 			String typeName = getEmitter().formatQualifiedName(tnode.getQualifiedName());
 	
 			emitReflectionData(
-					typeName,
-					reflectionKind,
-					varData,
-					accessorData,
-					methodData,
-					metadata);
+				typeName,
+				reflectionKind,
+				varData,
+				accessorData,
+				methodData,
+				metadata);
 			
-		    if (!isInterface) {
-		    	emitReflectionRegisterInitialStaticFields(typeName, (ClassDefinition) tnode.getDefinition());
+			if (!isInterface) {
+				emitReflectionRegisterInitialStaticFields(typeName, (ClassDefinition) tnode.getDefinition());
 			}
 		   
-		    emitExportProperties(typeName, exportProperties, exportSymbols);
-	    }
-    }
+			emitExportProperties(typeName, exportProperties, exportSymbols);
+		}
+	}
 
-    public enum ReflectionKind{
+	public enum ReflectionKind{
 		CLASS,
 		INTERFACE
 	}
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitterTokens.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitterTokens.java
index 7e9d169..4a60a79 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitterTokens.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitterTokens.java
@@ -27,6 +27,7 @@ import org.apache.royale.compiler.codegen.IEmitterTokens;
 public enum JSRoyaleEmitterTokens implements IEmitterTokens
 {
     ROYALE_CLASS_INFO("ROYALE_CLASS_INFO"),
+    ROYALE_INTERFACE_INFO("ROYALE_INTERFACE_INFO"),
     ROYALE_REFLECTION_INFO("ROYALE_REFLECTION_INFO"),
     ROYALE_REFLECTION_INFO_GET_SET("get_set"),
     ROYALE_REFLECTION_INFO_INITIAL_STATICS("ROYALE_INITIAL_STATICS"),
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java
index acba799..cb6d1f2 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java
@@ -1203,13 +1203,13 @@ public class MXMLRoyaleEmitter extends MXMLEmitter implements
         write(JSRoyaleEmitterTokens.ROYALE_CLASS_INFO_CLASS_KIND);
         writeToken(ASEmitterTokens.SINGLE_QUOTE);
         write(" }]");
+        write(" };");
         if (interfaceList != null)
         {
-        	write(", interfaces: [");
+            write(formatQualifiedName(cname) + ".prototype.ROYALE_INTERFACE_INFO = { interfaces: [");
         	write(interfaceList);
-        	write("]");
+        	write("]};");
         }
-        write(" };");
 
         emitReflectionData(cdef);
         writeNewline();
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyalePackage.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyalePackage.java
index 8b9af2f..a8449be 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyalePackage.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyalePackage.java
@@ -1092,7 +1092,7 @@ public class TestRoyalePackage extends TestGoogPackage
 				" *\n" +
 				" * @type {Object.<string, Array.<Object>>}\n" +
 				" */\n" +
-				"foo.bar.baz.A.InternalClass.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'InternalClass', qName: 'foo.bar.baz.A.InternalClass', kind: 'class' }], interfaces: [foo.bar.baz.A.ITestInterface] };\n" +
+				"foo.bar.baz.A.InternalClass.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'InternalClass', qName: 'foo.bar.baz.A.InternalClass', kind: 'class' }] };foo.bar.baz.A.InternalClass.prototype.ROYALE_INTERFACE_INFO = { interfaces: [foo.bar.baz.A.ITestInterface] };\n" +
 				"\n" +
 				"\n" +
 				"\n" +
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/mxml/royale/TestRoyaleMXMLApplication.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/mxml/royale/TestRoyaleMXMLApplication.java
index b88bb01..c3acee4 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/mxml/royale/TestRoyaleMXMLApplication.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/mxml/royale/TestRoyaleMXMLApplication.java
@@ -407,7 +407,7 @@ public class TestRoyaleMXMLApplication extends RoyaleTestBase
         		" *\n" +
         		" * @type {Object.<string, Array.<Object>>}\n" +
         		" */\n" +
-        		"AppName.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'AppName', qName: 'AppName', kind: 'class'  }], interfaces: [org.apache.royale.core.IChrome] };\n" +
+        		"AppName.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'AppName', qName: 'AppName', kind: 'class'  }] };AppName.prototype.ROYALE_INTERFACE_INFO = { interfaces: [org.apache.royale.core.IChrome] };\n" +
           		"\n" +
         		"\n" +
         		"\n" +
@@ -498,7 +498,7 @@ public class TestRoyaleMXMLApplication extends RoyaleTestBase
         		" *\n" +
         		" * @type {Object.<string, Array.<Object>>}\n" +
         		" */\n" +
-        		"AppName.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'AppName', qName: 'AppName', kind: 'class'  }], interfaces: [org.apache.royale.core.IChrome, org.apache.royale.core.IPopUp] };\n" +
+        		"AppName.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'AppName', qName: 'AppName', kind: 'class'  }] };AppName.prototype.ROYALE_INTERFACE_INFO = { interfaces: [org.apache.royale.core.IChrome, org.apache.royale.core.IPopUp] };\n" +
           		"\n" +
         		"\n" +
         		"\n" +
diff --git a/compiler-jx/src/test/resources/royale/files/controllers/MyController_result.js b/compiler-jx/src/test/resources/royale/files/controllers/MyController_result.js
index 63783c3..268a10f 100644
--- a/compiler-jx/src/test/resources/royale/files/controllers/MyController_result.js
+++ b/compiler-jx/src/test/resources/royale/files/controllers/MyController_result.js
@@ -152,7 +152,7 @@ controllers.MyController.prototype.setDocument = function(document, id) {
  *
  * @type {Object.<string, Array.<Object>>}
  */
-controllers.MyController.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'MyController', qName: 'controllers.MyController', kind: 'class' }], interfaces: [org.apache.royale.core.IDocument] };
+controllers.MyController.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'MyController', qName: 'controllers.MyController', kind: 'class' }] };controllers.MyController.prototype.ROYALE_INTERFACE_INFO = { interfaces: [org.apache.royale.core.IDocument] };
 
 
 
diff --git a/compiler-jx/src/test/resources/royale/projects/bad_overrides/classes/A_result.js b/compiler-jx/src/test/resources/royale/projects/bad_overrides/classes/A_result.js
index 9821355..b0ef347 100644
--- a/compiler-jx/src/test/resources/royale/projects/bad_overrides/classes/A_result.js
+++ b/compiler-jx/src/test/resources/royale/projects/bad_overrides/classes/A_result.js
@@ -58,7 +58,7 @@ classes.A.prototype.someOtherFunction = function() {
  *
  * @type {Object.<string, Array.<Object>>}
  */
-classes.A.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'A', qName: 'classes.A', kind: 'class' }], interfaces: [interfaces.IA] };
+classes.A.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'A', qName: 'classes.A', kind: 'class' }] };classes.A.prototype.ROYALE_INTERFACE_INFO = { interfaces: [interfaces.IA] };
 
 
 
diff --git a/compiler-jx/src/test/resources/royale/projects/interfaces/Test_result.js b/compiler-jx/src/test/resources/royale/projects/interfaces/Test_result.js
index 908da75..03a5787 100644
--- a/compiler-jx/src/test/resources/royale/projects/interfaces/Test_result.js
+++ b/compiler-jx/src/test/resources/royale/projects/interfaces/Test_result.js
@@ -59,7 +59,7 @@ Test.prototype.doSomething = function(ic) {
  *
  * @type {Object.<string, Array.<Object>>}
  */
-Test.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'Test', qName: 'Test', kind: 'class' }], interfaces: [interfaces.IA, interfaces.IE] };
+Test.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'Test', qName: 'Test', kind: 'class' }] };Test.prototype.ROYALE_INTERFACE_INFO = { interfaces: [interfaces.IA, interfaces.IE] };
 
 
 
diff --git a/compiler-jx/src/test/resources/royale/projects/interfaces/interfaces/IA_result.js b/compiler-jx/src/test/resources/royale/projects/interfaces/interfaces/IA_result.js
index 86a144a..db34f6f 100644
--- a/compiler-jx/src/test/resources/royale/projects/interfaces/interfaces/IA_result.js
+++ b/compiler-jx/src/test/resources/royale/projects/interfaces/interfaces/IA_result.js
@@ -38,7 +38,7 @@ interfaces.IA = function() {
  *
  * @type {Object.<string, Array.<Object>>}
  */
-interfaces.IA.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'IA', qName: 'interfaces.IA', kind: 'interface' }], interfaces: [interfaces.IC] };
+interfaces.IA.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'IA', qName: 'interfaces.IA', kind: 'interface' }] };interfaces.IA.prototype.ROYALE_INTERFACE_INFO = { interfaces: [interfaces.IC] };
 
 
 
diff --git a/compiler-jx/src/test/resources/royale/projects/interfaces/interfaces/IC_result.js b/compiler-jx/src/test/resources/royale/projects/interfaces/interfaces/IC_result.js
index 2f05a3d..bf1ff49 100644
--- a/compiler-jx/src/test/resources/royale/projects/interfaces/interfaces/IC_result.js
+++ b/compiler-jx/src/test/resources/royale/projects/interfaces/interfaces/IC_result.js
@@ -38,7 +38,7 @@ interfaces.IC = function() {
  *
  * @type {Object.<string, Array.<Object>>}
  */
-interfaces.IC.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'IC', qName: 'interfaces.IC', kind: 'interface' }], interfaces: [interfaces.ID] };
+interfaces.IC.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'IC', qName: 'interfaces.IC', kind: 'interface' }] };interfaces.IC.prototype.ROYALE_INTERFACE_INFO = { interfaces: [interfaces.ID] };
 
 
 
diff --git a/compiler-jx/src/test/resources/royale/projects/overrides/classes/A_result.js b/compiler-jx/src/test/resources/royale/projects/overrides/classes/A_result.js
index edcaeb3..b94a0cf 100644
--- a/compiler-jx/src/test/resources/royale/projects/overrides/classes/A_result.js
+++ b/compiler-jx/src/test/resources/royale/projects/overrides/classes/A_result.js
@@ -56,7 +56,7 @@ classes.A.prototype.someOtherFunction = function() {
  *
  * @type {Object.<string, Array.<Object>>}
  */
-classes.A.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'A', qName: 'classes.A', kind: 'class' }], interfaces: [interfaces.IA] };
+classes.A.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'A', qName: 'classes.A', kind: 'class' }] };classes.A.prototype.ROYALE_INTERFACE_INFO = { interfaces: [interfaces.IA] };
 
 
 
diff --git a/compiler-jx/src/test/resources/royale/projects/overrides/interfaces/IC_result.js b/compiler-jx/src/test/resources/royale/projects/overrides/interfaces/IC_result.js
index f61ff09..4b0c676 100644
--- a/compiler-jx/src/test/resources/royale/projects/overrides/interfaces/IC_result.js
+++ b/compiler-jx/src/test/resources/royale/projects/overrides/interfaces/IC_result.js
@@ -38,7 +38,7 @@ interfaces.IC = function() {
  *
  * @type {Object.<string, Array.<Object>>}
  */
-interfaces.IC.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'IC', qName: 'interfaces.IC', kind: 'interface' }], interfaces: [interfaces.IB] };
+interfaces.IC.prototype.ROYALE_CLASS_INFO = { names: [{ name: 'IC', qName: 'interfaces.IC', kind: 'interface' }] };interfaces.IC.prototype.ROYALE_INTERFACE_INFO = { interfaces: [interfaces.IB] };