From 47c8f28f33c258d6b70d0e422c3eafaf2ba35f1c Mon Sep 17 00:00:00 2001 From: Guflly <145608489+Guflly@users.noreply.github.com> Date: Sun, 2 Aug 2026 16:59:37 -0700 Subject: [PATCH] fix(no-array-prototype-extensions): handle Promise.withResolvers --- lib/rules/no-array-prototype-extensions.js | 9 +++++++++ tests/lib/rules/no-array-prototype-extensions.js | 2 ++ 2 files changed, 11 insertions(+) diff --git a/lib/rules/no-array-prototype-extensions.js b/lib/rules/no-array-prototype-extensions.js index 3976f8602d..d2c78ad171 100644 --- a/lib/rules/no-array-prototype-extensions.js +++ b/lib/rules/no-array-prototype-extensions.js @@ -719,6 +719,15 @@ module.exports = { } const nodeInitializedTo = getNodeOrNodeFromVariable(node.callee.object, scopeManager); + if ( + node.callee.property.name === 'reject' && + ['Promise.withResolvers()', 'window.Promise.withResolvers()'].includes( + getName(nodeInitializedTo, true) + ) + ) { + return; + } + if ( nodeInitializedTo.type === 'NewExpression' && nodeInitializedTo.callee.type === 'Identifier' && diff --git a/tests/lib/rules/no-array-prototype-extensions.js b/tests/lib/rules/no-array-prototype-extensions.js index 3501c00302..264512baff 100644 --- a/tests/lib/rules/no-array-prototype-extensions.js +++ b/tests/lib/rules/no-array-prototype-extensions.js @@ -51,6 +51,8 @@ ruleTester.run('no-array-prototype-extensions', rule, { 'Promise.reject("some reason");', 'reject();', 'this.reject();', + 'const resolvers = Promise.withResolvers(); resolvers.reject();', + 'const resolvers = window.Promise.withResolvers(); resolvers.reject();', // Promise.any() 'Promise.any();',