This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch webservice
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/webservice by this push:
new 54e9152 SortOn actually always returns an Array
54e9152 is described below
commit 54e9152fdb8fb92556904a583e824450884d0acd
Author: Alex Harui <[email protected]>
AuthorDate: Fri Oct 4 15:30:46 2019 -0700
SortOn actually always returns an Array
---
.../main/royale/org/apache/royale/utils/Language.as | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git
a/frameworks/projects/Language/src/main/royale/org/apache/royale/utils/Language.as
b/frameworks/projects/Language/src/main/royale/org/apache/royale/utils/Language.as
index d502aef..edb7404 100644
---
a/frameworks/projects/Language/src/main/royale/org/apache/royale/utils/Language.as
+++
b/frameworks/projects/Language/src/main/royale/org/apache/royale/utils/Language.as
@@ -368,7 +368,7 @@ package org.apache.royale.utils
* @param names
* @param opt
*/
- public static function sortOn(arr:Array, names:Object, opt:Object =
0):void
+ public static function sortOn(arr:Array, names:Object, opt:Object =
0):Array
{
if (names is Array)
{
@@ -390,6 +390,11 @@ package org.apache.royale.utils
opt2 = /*opt as int*/ (int(opt) == opt) ? int(opt) : 0;
}
muler = (Array.DESCENDING & opt2) > 0 ? -1 : 1;
+ var orig:Array;
+ if (opt2 & Array.RETURNINDEXEDARRAY)
+ {
+ orig = arr.slice();
+ }
if (opt2 & Array.NUMERIC)
{
arr.sort(compareNumber);
@@ -400,6 +405,18 @@ package org.apache.royale.utils
{
arr.sort(compareString);
}
+ if (opt2 & Array.RETURNINDEXEDARRAY)
+ {
+ var retArr:Array = [];
+ var n:int = arr.length;
+ for (var i:int = 0; i < n; i++)
+ {
+ var item:Object = orig[i];
+ retArr.push(arr.indexOf(item));
+ }
+ return retArr;
+ }
+ return arr;
}
private static function compareStringCaseinsensitive(a:Object,
b:Object):int