Perfection?
function re(first, ...args) { let flags = first; function tag(template, ...subs) { const parts = []; const numSubs = subs.length; for (let i = 0; i < numSubs; i++) { parts.push(template.raw[i]); const subst = subs[i] instanceof RegExp ? subs[i].source : subs[i].replace(/[\/\\^$*+?.()|[\]{}]/g, '\\$&'); parts.push(subst); } parts.push(template.raw[numSubs]); return RegExp(parts.join(''), flags); } if (typeof first === 'string') { return tag; } else { flags = void 0; // Should this be '' ? return tag(first, ...args); } }
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss