(input)
| 27713 | |
| 27714 | // https://url.spec.whatwg.org/#ipv4-number-parser |
| 27715 | var parseIPv4 = function (input) { |
| 27716 | var parts = split(input, '.'); |
| 27717 | var partsLength, numbers, index, part, radix, number, ipv4; |
| 27718 | if (parts.length && parts[parts.length - 1] === '') { |
| 27719 | parts.length--; |
| 27720 | } |
| 27721 | partsLength = parts.length; |
| 27722 | if (partsLength > 4) return input; |
| 27723 | numbers = []; |
| 27724 | for (index = 0; index < partsLength; index++) { |
| 27725 | part = parts[index]; |
| 27726 | if (part === '') return input; |
| 27727 | radix = 10; |
| 27728 | if (part.length > 1 && charAt(part, 0) === '0') { |
| 27729 | radix = exec(HEX_START, part) ? 16 : 8; |
| 27730 | part = stringSlice(part, radix === 8 ? 1 : 2); |
| 27731 | } |
| 27732 | if (part === '') { |
| 27733 | number = 0; |
| 27734 | } else { |
| 27735 | if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input; |
| 27736 | number = parseInt(part, radix); |
| 27737 | } |
| 27738 | push(numbers, number); |
| 27739 | } |
| 27740 | for (index = 0; index < partsLength; index++) { |
| 27741 | number = numbers[index]; |
| 27742 | if (index === partsLength - 1) { |
| 27743 | if (number >= pow(256, 5 - partsLength)) return null; |
| 27744 | } else if (number > 255) return null; |
| 27745 | } |
| 27746 | ipv4 = pop(numbers); |
| 27747 | for (index = 0; index < numbers.length; index++) { |
| 27748 | ipv4 += numbers[index] * pow(256, 3 - index); |
| 27749 | } |
| 27750 | return ipv4; |
| 27751 | }; |
| 27752 | |
| 27753 | // https://url.spec.whatwg.org/#concept-ipv6-parser |
| 27754 | // eslint-disable-next-line max-statements -- TODO |
no test coverage detected
searching dependent graphs…