@@ -137,43 +137,6 @@ module.exports = {
137137 } ) ;
138138 }
139139
140- /**
141- * Creates a new `AccessorData` object for the given getter or setter node.
142- * @param {ASTNode } node A getter or setter node.
143- * @returns {AccessorData } New `AccessorData` object that contains the given node.
144- * @private
145- */
146- function createAccessorData ( node ) {
147- const name = astUtils . getStaticPropertyName ( node ) ;
148- const key = ( name !== null ) ? name : sourceCode . getTokens ( node . key ) ;
149-
150- return {
151- key,
152- getters : node . kind === "get" ? [ node ] : [ ] ,
153- setters : node . kind === "set" ? [ node ] : [ ]
154- } ;
155- }
156-
157- /**
158- * Merges the given `AccessorData` object into the given accessors list.
159- * @param {AccessorData[] } accessors The list to merge into.
160- * @param {AccessorData } accessorData The object to merge.
161- * @returns {AccessorData[] } The same instance with the merged object.
162- * @private
163- */
164- function mergeAccessorData ( accessors , accessorData ) {
165- const equalKeyElement = accessors . find ( a => areEqualKeys ( a . key , accessorData . key ) ) ;
166-
167- if ( equalKeyElement ) {
168- equalKeyElement . getters . push ( ...accessorData . getters ) ;
169- equalKeyElement . setters . push ( ...accessorData . setters ) ;
170- } else {
171- accessors . push ( accessorData ) ;
172- }
173-
174- return accessors ;
175- }
176-
177140 /**
178141 * Checks accessor pairs in the given list of nodes.
179142 * @param {ASTNode[] } nodes The list to check.
@@ -182,11 +145,39 @@ module.exports = {
182145 * @private
183146 */
184147 function checkList ( nodes , shouldCheck ) {
185- const accessors = nodes
186- . filter ( shouldCheck )
187- . filter ( isAccessorKind )
188- . map ( createAccessorData )
189- . reduce ( mergeAccessorData , [ ] ) ;
148+ const accessors = [ ] ;
149+ let found = false ;
150+
151+ for ( let i = 0 ; i < nodes . length ; i ++ ) {
152+ const node = nodes [ i ] ;
153+
154+ if ( shouldCheck ( node ) && isAccessorKind ( node ) ) {
155+
156+ // Creates a new `AccessorData` object for the given getter or setter node.
157+ const name = astUtils . getStaticPropertyName ( node ) ;
158+ const key = ( name !== null ) ? name : sourceCode . getTokens ( node . key ) ;
159+
160+ // Merges the given `AccessorData` object into the given accessors list.
161+ for ( let j = 0 ; j < accessors . length ; j ++ ) {
162+ const accessor = accessors [ j ] ;
163+
164+ if ( areEqualKeys ( accessor . key , key ) ) {
165+ accessor . getters . push ( ...node . kind === "get" ? [ node ] : [ ] ) ;
166+ accessor . setters . push ( ...node . kind === "set" ? [ node ] : [ ] ) ;
167+ found = true ;
168+ break ;
169+ }
170+ }
171+ if ( ! found ) {
172+ accessors . push ( {
173+ key,
174+ getters : node . kind === "get" ? [ node ] : [ ] ,
175+ setters : node . kind === "set" ? [ node ] : [ ]
176+ } ) ;
177+ }
178+ found = false ;
179+ }
180+ }
190181
191182 for ( const { getters, setters } of accessors ) {
192183
0 commit comments