@@ -9,10 +9,8 @@ import {produce as produce9, setAutoFreeze as setAutoFreeze9} from "immer9"
99import { produce as produce10 , setAutoFreeze as setAutoFreeze10 } from "immer10"
1010import {
1111 produce as produce10Perf ,
12- setAutoFreeze as setAutoFreeze10Perf
13- // Uncomment when using a build of Immer that exposes this function,
14- // and enable the corresponding line in the setStrictIteration object below.
15- // setUseStrictIteration as setUseStrictIteration10Perf
12+ setAutoFreeze as setAutoFreeze10Perf ,
13+ enableArrayMethods as enableArrayMethods10Perf
1614} from "immer10Perf"
1715import { create as produceMutative } from "mutative"
1816import {
@@ -239,6 +237,21 @@ const setStrictIteration = {
239237 limu : noop
240238}
241239
240+ const setEnableArrayMethods = {
241+ vanilla : noop ,
242+ immer5 : noop ,
243+ immer6 : noop ,
244+ immer7 : noop ,
245+ immer8 : noop ,
246+ immer9 : noop ,
247+ immer10 : noop ,
248+ immer10Perf : enableArrayMethods10Perf ,
249+ mutative : noop ,
250+ mutativeCompat : noop ,
251+ structura : noop ,
252+ limu : noop
253+ }
254+
242255// RTKQ-style separate reducer functions (simulating separate RTK slices)
243256const updateQueries = ( queries , action ) => {
244257 switch ( action . type ) {
@@ -601,6 +614,7 @@ function createBenchmarks() {
601614 function benchMethod ( ) {
602615 setAutoFreezes [ version ] ( freeze )
603616 setStrictIteration [ version ] ( false )
617+ setEnableArrayMethods [ version ] ( )
604618 for ( let i = 0 ; i < MAX ; i ++ ) {
605619 reducers [ version ] ( initialState , actions [ action ] ( i ) )
606620 }
@@ -635,6 +649,7 @@ function createBenchmarks() {
635649 function benchMethod ( ) {
636650 setAutoFreezes [ version ] ( freeze )
637651 setStrictIteration [ version ] ( false )
652+ setEnableArrayMethods [ version ] ( )
638653
639654 let currentState = createInitialState ( )
640655
@@ -663,6 +678,7 @@ function createBenchmarks() {
663678 function benchMethod ( ) {
664679 setAutoFreezes [ version ] ( freeze )
665680 setStrictIteration [ version ] ( false )
681+ setEnableArrayMethods [ version ] ( )
666682
667683 let state = createInitialState ( )
668684
@@ -692,6 +708,7 @@ function createBenchmarks() {
692708 function benchMethod ( ) {
693709 setAutoFreezes [ version ] ( freeze )
694710 setStrictIteration [ version ] ( false )
711+ setEnableArrayMethods [ version ] ( )
695712
696713 let state = createInitialState ( )
697714 // Use smaller array size for RTKQ benchmark due to exponential scaling
0 commit comments