Repository: flex-falcon
Updated Branches:
  refs/heads/develop 49835eca1 -> d36ecbce6


FLEX-35195 handle Object as single instance


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/d36ecbce
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/d36ecbce
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/d36ecbce

Branch: refs/heads/develop
Commit: d36ecbce62e9082683a012598db67b17eca1b369
Parents: 49835ec
Author: Alex Harui <[email protected]>
Authored: Tue Dec 6 21:27:04 2016 -0800
Committer: Alex Harui <[email protected]>
Committed: Tue Dec 6 21:27:04 2016 -0800

----------------------------------------------------------------------
 .../internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java      | 8 +++++++-
 .../internal/as/codegen/MXMLClassDirectiveProcessor.java     | 6 ++++++
 2 files changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d36ecbce/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
----------------------------------------------------------------------
diff --git 
a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
 
b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
index 943bf70..7f40d3f 100644
--- 
a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
+++ 
b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
@@ -1974,7 +1974,7 @@ public class MXMLFlexJSEmitter extends MXMLEmitter 
implements
 
         MXMLDescriptorSpecifier currentPropertySpecifier = new 
MXMLDescriptorSpecifier();
         currentPropertySpecifier.isProperty = true;
-        currentPropertySpecifier.name = cdef.getQualifiedName();
+        currentPropertySpecifier.name = cdef != null ? cdef.getQualifiedName() 
: node.getName();
         currentPropertySpecifier.parent = currentInstance;
 
         boolean oldInMXMLContent = inMXMLContent;
@@ -2101,6 +2101,12 @@ public class MXMLFlexJSEmitter extends MXMLEmitter 
implements
         final int len = node.getChildCount();
        if (!makingSimpleArray)
        {
+            MXMLDescriptorSpecifier ps = getCurrentDescriptor("ps");
+            if (ps.hasObject)
+            {
+               emitInstance(node);
+               return;
+            }
             for (int i = 0; i < len; i++)
             {
                 getMXMLWalker().walk(node.getChild(i)); // props in object

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d36ecbce/compiler/src/main/java/org/apache/flex/compiler/internal/as/codegen/MXMLClassDirectiveProcessor.java
----------------------------------------------------------------------
diff --git 
a/compiler/src/main/java/org/apache/flex/compiler/internal/as/codegen/MXMLClassDirectiveProcessor.java
 
b/compiler/src/main/java/org/apache/flex/compiler/internal/as/codegen/MXMLClassDirectiveProcessor.java
index 9ee0b29..f7c3eb3 100644
--- 
a/compiler/src/main/java/org/apache/flex/compiler/internal/as/codegen/MXMLClassDirectiveProcessor.java
+++ 
b/compiler/src/main/java/org/apache/flex/compiler/internal/as/codegen/MXMLClassDirectiveProcessor.java
@@ -3000,6 +3000,12 @@ public class MXMLClassDirectiveProcessor extends 
ClassDirectiveProcessor
         
         context.makingSimpleArray = context.parentContext.makingSimpleArray;
         
+        if (newCodeGen && 
+                !context.isStateDescriptor && 
+                !context.parentContext.isContentFactory &&
+                !context.parentContext.makingArrayValues)
+            context.addInstruction(OP_pushfalse); // complex type
+
         if (newCodeGen && !context.makingSimpleArray)
         {
             context.addInstruction(OP_findpropstrict, 
IMXMLTypeConstants.NAME_OBJECT);

Reply via email to