@@ -142,9 +142,9 @@ function mergeDomains(rules, includeProp, excludeProp) {
142142 out . push ( rule ) ;
143143 continue ;
144144 }
145- const includes = new Set ( rule . condition [ includeProp ] ) ;
145+ const includes = rule . condition [ includeProp ] ?? [ ] ;
146146 rule . condition [ includeProp ] = undefined ;
147- const excludes = new Set ( rule . condition [ excludeProp ] ) ;
147+ const excludes = rule . condition [ excludeProp ] ?? [ ] ;
148148 rule . condition [ excludeProp ] = undefined ;
149149 rule . id = undefined ;
150150 const hash = JSON . stringify ( rule , propertySorter ) ;
@@ -153,31 +153,34 @@ function mergeDomains(rules, includeProp, excludeProp) {
153153 details . initialized = true ;
154154 distinctRules . set ( hash , details ) ;
155155 }
156- if ( includes . size === 0 ) {
157- details . includes = includes ;
156+ if ( includes . length === 0 ) {
157+ details . includes = [ ] ;
158158 } else if ( details . includes === undefined ) {
159159 details . includes = includes ;
160- } else if ( details . includes . size ) {
161- details . includes = details . includes . union ( includes ) ;
160+ } else if ( details . includes . length ) {
161+ for ( const hn of includes ) {
162+ details . includes . push ( hn ) ;
163+ }
162164 }
163- if ( excludes . size ) {
164- details . excludes ??= new Set ( ) ;
165- details . excludes = details . excludes . union ( excludes ) ;
165+ if ( excludes . length ) {
166+ if ( details . excludes === undefined ) {
167+ details . excludes = excludes ;
168+ } else {
169+ for ( const hn of excludes ) {
170+ details . excludes . push ( hn ) ;
171+ }
172+ }
166173 }
167174 }
168175 for ( const [ hash , details ] of distinctRules ) {
169176 const rule = JSON . parse ( hash ) ;
170177 rule . id = details . id ;
171- if ( details . includes ?. size ) {
172- rule . condition [ includeProp ] = Array . from ( details . includes ) ;
173- }
174- if ( details . excludes ?. size ) {
175- rule . condition [ excludeProp ] = Array . from ( details . excludes ) ;
176- }
177- if ( rule . condition [ includeProp ] ) {
178+ if ( details . includes ?. length ) {
179+ rule . condition [ includeProp ] = Array . from ( new Set ( details . includes ) ) ;
178180 rule . condition [ includeProp ] . sort ( ) ;
179181 }
180- if ( rule . condition [ excludeProp ] ) {
182+ if ( details . excludes ?. length ) {
183+ rule . condition [ excludeProp ] = Array . from ( new Set ( details . excludes ) ) ;
181184 rule . condition [ excludeProp ] . sort ( ) ;
182185 }
183186 out . push ( rule ) ;
0 commit comments