MCPcopy
hub / github.com/rollup/rollup / parseIPv4

Function parseIPv4

test/form/samples/supports-core-js/_expected.js:27715–27751  ·  view source on GitHub ↗
(input)

Source from the content-addressed store, hash-verified

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

Callers 1

Calls 2

powFunction · 0.85
parseIntFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…