@awayfl/avm2
Version:
Virtual machine for executing AS3 code
20 lines (19 loc) • 701 B
JavaScript
import { assertNotImplemented, release } from '@awayfl/swf-loader';
export function axCompare(a, b, options, sortOrder, compareFunction) {
release || assertNotImplemented(!(options & 4 /* SORT.UNIQUESORT */), 'UNIQUESORT');
release || assertNotImplemented(!(options & 8 /* SORT.RETURNINDEXEDARRAY */), 'RETURNINDEXEDARRAY');
var result = 0;
if (options & 1 /* SORT.CASEINSENSITIVE */) {
a = String(a).toLowerCase();
b = String(b).toLowerCase();
}
if (options & 16 /* SORT.NUMERIC */) {
a = +a;
b = +b;
result = a < b ? -1 : (a > b ? 1 : 0);
}
else {
result = compareFunction(a, b);
}
return result * sortOrder;
}