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

gregdove pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 8f4b8e11b5547a5036be12ee748f3b057dfd8b6a
Author: greg-dove <[email protected]>
AuthorDate: Thu Oct 8 10:04:35 2020 +1300

    Ensure that native emulations reference singleton data for each type in 
case they are added to ExtraData multiple times.
    (transient values such as class alias settings will now survive this)
---
 .../royale/org/apache/royale/reflection/nativejs/AS3Array.as     | 5 +++--
 .../royale/org/apache/royale/reflection/nativejs/AS3Boolean.as   | 5 +++--
 .../royale/org/apache/royale/reflection/nativejs/AS3Number.as    | 4 +++-
 .../royale/org/apache/royale/reflection/nativejs/AS3Object.as    | 5 +++--
 .../royale/org/apache/royale/reflection/nativejs/AS3String.as    | 5 +++--
 .../royale/org/apache/royale/reflection/nativejs/AS3Vector.as    | 9 ++++++++-
 .../main/royale/org/apache/royale/reflection/nativejs/AS3int.as  | 4 +++-
 .../main/royale/org/apache/royale/reflection/nativejs/AS3uint.as | 4 +++-
 8 files changed, 29 insertions(+), 12 deletions(-)

diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Array.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Array.as
index f4563ce..b661588 100644
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Array.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Array.as
@@ -23,6 +23,7 @@ package org.apache.royale.reflection.nativejs {
      */
     COMPILE::JS
     public function AS3Array():Object{
+        if (singleton) return singleton;
         var ret:Object= {};
         ret['classRef'] = Array;
         ret['name'] = 'Array';
@@ -44,8 +45,8 @@ package org.apache.royale.reflection.nativejs {
                 }
             };
         };
-        
+        singleton = ret;
         return ret;
     }
-    
 }
+var singleton:Object = null; //the explicit assignment with null is necessary 
here
\ No newline at end of file
diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Boolean.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Boolean.as
index 4a3da17..025658b 100644
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Boolean.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Boolean.as
@@ -24,6 +24,7 @@ package org.apache.royale.reflection.nativejs {
      */
     COMPILE::JS
     public function AS3Boolean():Object{
+        if (singleton) return singleton;
         var ret:Object= {};
         ret['classRef'] = Boolean;
         ret['name'] = 'Boolean';
@@ -40,9 +41,9 @@ package org.apache.royale.reflection.nativejs {
                 }
             };
         };
-    
+        singleton = ret;
         return ret;
     
     }
-    
 }
+var singleton:Object = null; //the explicit assignment with null is necessary 
here
\ No newline at end of file
diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Number.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Number.as
index b1612eb..0c7e58a 100644
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Number.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Number.as
@@ -23,6 +23,7 @@ package org.apache.royale.reflection.nativejs {
      */
     COMPILE::JS
     public function AS3Number():Object{
+        if (singleton) return singleton;
         var ret:Object= {};
         ret['classRef'] = Number;
         ret['name'] = 'Number';
@@ -57,9 +58,10 @@ package org.apache.royale.reflection.nativejs {
                 }
             };
         };
-    
+        singleton = ret;
         return ret;
     
     }
     
 }
+var singleton:Object = null; //the explicit assignment with null is necessary 
here
\ No newline at end of file
diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Object.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Object.as
index 12b7e22..c9b6009 100644
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Object.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Object.as
@@ -23,6 +23,7 @@ package org.apache.royale.reflection.nativejs {
      */
     COMPILE::JS
     public function AS3Object():Object{
+        if (singleton) return singleton;
         var ret:Object= {};
         ret['classRef'] = Object;
         ret['name'] = 'Object';
@@ -44,8 +45,8 @@ package org.apache.royale.reflection.nativejs {
                 }
             };
         };
-        
+        singleton = ret;
         return ret;
     }
-    
 }
+var singleton:Object = null; //the explicit assignment with null is necessary 
here
\ No newline at end of file
diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3String.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3String.as
index 91dbacb..6022701 100644
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3String.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3String.as
@@ -23,6 +23,7 @@ package org.apache.royale.reflection.nativejs {
      */
     COMPILE::JS
     public function AS3String():Object{
+        if (singleton) return singleton;
         var ret:Object= {};
         ret['classRef'] = String;
         ret['name'] = 'String';
@@ -44,9 +45,9 @@ package org.apache.royale.reflection.nativejs {
                 }
             };
         };
-        
+        singleton = ret;
         return ret;
     
     }
-    
 }
+var singleton:Object = null; //the explicit assignment with null is necessary 
here
\ No newline at end of file
diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Vector.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Vector.as
index 5fe7d96..86c7505 100644
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Vector.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3Vector.as
@@ -27,6 +27,11 @@ package org.apache.royale.reflection.nativejs {
      */
     COMPILE::JS
     public function AS3Vector(typeName:String='Vector.<*>'):Object{
+        if (singletons) {
+            if (singletons[typeName]) return singletons[typeName];
+        } else {
+            singletons = {}
+        }
         var ret:Object= {};
         ret['classRef'] = Language.synthVector(typeName.substring(8, 
typeName.length - 1));
         ret['name'] = typeName;
@@ -56,8 +61,10 @@ package org.apache.royale.reflection.nativejs {
                 return AS3Vector(subType);
             };
         }
-        
+        singletons[typeName] = ret;
         return ret;
     }
     
 }
+
+var singletons:Object = null; //the explicit assignment with null is necessary 
here
\ No newline at end of file
diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3int.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3int.as
index 45459d4..eb3db26 100644
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3int.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3int.as
@@ -27,6 +27,7 @@ package org.apache.royale.reflection.nativejs {
      */
     COMPILE::JS
     public function AS3int():Object{
+        if (singleton) return singleton;
         var ret:Object= {};
         ret['classRef'] = int;
         ret['name'] = 'int';
@@ -43,9 +44,10 @@ package org.apache.royale.reflection.nativejs {
                 }
             };
         };
-    
+        singleton = ret;
         return ret;
     
     }
     
 }
+var singleton:Object = null; //the explicit assignment with null is necessary 
here
\ No newline at end of file
diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3uint.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3uint.as
index 4e6074f..eff8e45 100644
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3uint.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/nativejs/AS3uint.as
@@ -27,6 +27,7 @@ package org.apache.royale.reflection.nativejs {
      */
     COMPILE::JS
     public function AS3uint():Object{
+        if (singleton) return singleton;
         var ret:Object= {};
         ret['classRef'] = uint;
         ret['name'] = 'uint';
@@ -43,8 +44,9 @@ package org.apache.royale.reflection.nativejs {
                 }
             };
         };
-    
+        singleton = ret;
         return ret;
     }
     
 }
+var singleton:Object = null; //the explicit assignment with null is necessary 
here
\ No newline at end of file

Reply via email to