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


The following commit(s) were added to refs/heads/develop by this push:
     new e118529  Add support for function instances to getQualifiedClassName().
     new 22fccbb  Merge pull request #1126 from 
estanglerbm/getqualifiedclassname-function
e118529 is described below

commit e11852926fddd58e41dfa5b79894900806215a49
Author: Edward Stangler <[email protected]>
AuthorDate: Sun Jul 11 00:40:50 2021 -0500

    Add support for function instances to getQualifiedClassName().
---
 .../royale/reflection/getQualifiedClassName.as     |  7 ++++++-
 .../reflection/ReflectionTesterNativeTypes.as      | 24 ++++++++++++++++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/getQualifiedClassName.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/getQualifiedClassName.as
index c4379b6..2e534bf 100755
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/getQualifiedClassName.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/getQualifiedClassName.as
@@ -38,8 +38,11 @@ COMPILE::JS{
        {
         COMPILE::SWF
         {
+            var s:String = flash.utils.getQualifiedClassName(value);
+            if (s === "builtin.as$0::MethodClosure")
+                return s;  // don't replace ::
             //normalize for Vector:
-            return 
flash.utils.getQualifiedClassName(value).replace('__AS3__.vec::','').replace('::','.');
+            return s.replace('__AS3__.vec::','').replace('::','.');
         }
         COMPILE::JS
         {
@@ -87,6 +90,8 @@ COMPILE::JS{
                     }
                 }
                 if (!classInfo) {
+                    if (defName === "function") return 
"builtin.as$0::MethodClosure";
+
                     //fallback
                     return "Object";
                 }
diff --git 
a/frameworks/projects/Reflection/src/test/royale/flexUnitTests/reflection/ReflectionTesterNativeTypes.as
 
b/frameworks/projects/Reflection/src/test/royale/flexUnitTests/reflection/ReflectionTesterNativeTypes.as
index 3d4668a..e852684 100644
--- 
a/frameworks/projects/Reflection/src/test/royale/flexUnitTests/reflection/ReflectionTesterNativeTypes.as
+++ 
b/frameworks/projects/Reflection/src/test/royale/flexUnitTests/reflection/ReflectionTesterNativeTypes.as
@@ -244,6 +244,30 @@ package flexUnitTests.reflection
             assertEquals( def.name, "Vector.<uint>", "Unexpected type name");
         
         }
+
+
+        [Test]
+        public function testFunctionClass():void
+        {
+//            assertEquals( getQualifiedClassName(Function), "Function", 
"Unexpected type name");
+//            assertEquals( getDefinitionByName("Function"), Function, 
"Unexpected type");
+            
+//            var def:TypeDefinition = describeType(Function);
+//            assertEquals( def.name, "Function", "Unexpected type name");
+        
+        }
+    
+    
+        [Test]
+        public function testFunctionInstance():void
+        {
+            var inst:Function = testFunctionClass;
+            assertEquals( getQualifiedClassName(inst), 
"builtin.as$0::MethodClosure", "Unexpected type name");
+    
+//            var def:TypeDefinition = describeType(inst);
+//            assertEquals( def.name, "builtin.as$0::MethodClosure", 
"Unexpected type name");
+        
+        }
         
     }
 }

Reply via email to