diff --git a/lib/zone/store/base.js b/lib/zone/store/base.js index 5df9f32..fc299b1 100644 --- a/lib/zone/store/base.js +++ b/lib/zone/store/base.js @@ -56,8 +56,11 @@ class ZoneBase { export default ZoneBase +// A loop, as /\.+$/ backtracks quadratically over a run of dots mid-name export function canonicalZoneName(zone) { - return zone.replace(/\.+$/, '').toLowerCase() + let end = zone.length + while (end > 0 && zone[end - 1] === '.') end-- + return zone.slice(0, end).toLowerCase() } export function withCanonicalZone(args) {