From d404b3f9971c975d97d131bf1491e93327bcb1f5 Mon Sep 17 00:00:00 2001 From: Afonso Ribeiro Date: Fri, 16 Oct 2026 06:27:50 +0100 Subject: [PATCH] perf(isEmail): skip copying default options when none are passed --- src/lib/isEmail.js | 2 +- src/lib/isFQDN.js | 2 +- src/lib/normalizeEmail.js | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/isEmail.js b/src/lib/isEmail.js index abe465052..a349c71eb 100644 --- a/src/lib/isEmail.js +++ b/src/lib/isEmail.js @@ -63,7 +63,7 @@ function validateDisplayName(display_name) { export default function isEmail(str, options) { assertString(str); - options = merge(options, default_email_options); + options = options ? merge(options, default_email_options) : default_email_options; if (options.require_display_name || options.allow_display_name) { const display_email = str.match(splitNameAddress); diff --git a/src/lib/isFQDN.js b/src/lib/isFQDN.js index eb6928fda..1c2f9ed3f 100644 --- a/src/lib/isFQDN.js +++ b/src/lib/isFQDN.js @@ -12,7 +12,7 @@ const default_fqdn_options = { export default function isFQDN(str, options) { assertString(str); - options = merge(options, default_fqdn_options); + options = options ? merge(options, default_fqdn_options) : default_fqdn_options; /* Remove the optional trailing dot before checking validity */ if (options.allow_trailing_dot && str[str.length - 1] === '.') { diff --git a/src/lib/normalizeEmail.js b/src/lib/normalizeEmail.js index f4349ac1e..02b1b8a96 100644 --- a/src/lib/normalizeEmail.js +++ b/src/lib/normalizeEmail.js @@ -170,7 +170,9 @@ function dotsReplacer(match) { } export default function normalizeEmail(email, options) { - options = merge(options, default_normalize_email_options); + options = options + ? merge(options, default_normalize_email_options) + : default_normalize_email_options; const raw_parts = email.split('@'); const domain = raw_parts.pop();