UNPKG

@awayfl/avm2

Version:

Virtual machine for executing AS3 code

31 lines (30 loc) 960 B
import { release } from '@awayfl/swf-loader'; import { assert } from '@awayjs/graphics'; export function axCompareFields(objA, objB, names, optionsList) { release || assert(names.length === optionsList.length); release || assert(names.length > 0); var result = 0; var i; for (i = 0; i < names.length && result === 0; i++) { var name_1 = names[i]; var a = objA[name_1]; var b = objB[name_1]; var options = optionsList[i]; 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 = String(a).localeCompare(String(b)); } } if (optionsList[i - 1] & 2 /* SORT.DESCENDING */) { result *= -1; } return result; }