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
