UNPKG

@awayfl/avm2

Version:

Virtual machine for executing AS3 code

20 lines (19 loc) 701 B
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; }