* Returns the usages represented by `mask` in canonical order. * @param {number} mask * @returns {string[]}
(mask)
| 887 | * @returns {string[]} |
| 888 | */ |
| 889 | function getUsagesFromMask(mask) { |
| 890 | // Short circuit most common cases, empty and single usage |
| 891 | // No usages is a valid state for some public keys |
| 892 | if (mask === 0) return []; |
| 893 | // A mask with exactly one bit set maps directly to one usage |
| 894 | if ((mask & (mask - 1)) === 0) { |
| 895 | return [kUsageByMask[mask]]; |
| 896 | } |
| 897 | // Multiple usages need to be expanded in canonical order. |
| 898 | const result = []; |
| 899 | for (let n = 0; n < kCanonicalUsageOrder.length; n++) { |
| 900 | if (mask & (1 << n)) |
| 901 | ArrayPrototypePush(result, kCanonicalUsageOrder[n]); |
| 902 | } |
| 903 | return result; |
| 904 | } |
| 905 | |
| 906 | function getBlockSize(name) { |
| 907 | switch (name) { |
no outgoing calls
no test coverage detected