diff --git a/lib/utils.js b/lib/utils.js index ee57b40f..f6128633 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -16,10 +16,15 @@ utils.aton6 = function(a) { } if (l < 7) { - a.length = 8; - - for (i = l; i >= 0 && a[i] !== ''; i--) { - a[7-l+i] = a[i]; + const omitted = 8 - a.length + const omitStart = a.indexOf('') + const omitEnd = omitStart + 8 - a.length + + for (let i = 7; i >= omitStart; i--) { + if (i > omitEnd) + a[i] = a[i - omitted] + else + a[i] = 0 } } @@ -95,4 +100,4 @@ utils.ntoa6 = function(n) { a = a.replace(/:$/, ']').replace(/:0+/g, ':').replace(/::+/, '::'); return a; -}; \ No newline at end of file +};