32 lines
703 B
JavaScript
32 lines
703 B
JavaScript
|
|
import isDiffCertain from '../diff/is-diff-certain.js';
|
||
|
|
import isDiffArrays from '../diff/is-diff-arrays.js';
|
||
|
|
import {IMMUTABLE_OBJECT_METHODS} from './object.js';
|
||
|
|
|
||
|
|
const IMMUTABLE_ARRAY_METHODS = new Set([
|
||
|
|
'concat',
|
||
|
|
'includes',
|
||
|
|
'indexOf',
|
||
|
|
'join',
|
||
|
|
'keys',
|
||
|
|
'lastIndexOf',
|
||
|
|
]);
|
||
|
|
|
||
|
|
export const MUTABLE_ARRAY_METHODS = {
|
||
|
|
push: isDiffCertain,
|
||
|
|
pop: isDiffCertain,
|
||
|
|
shift: isDiffCertain,
|
||
|
|
unshift: isDiffCertain,
|
||
|
|
copyWithin: isDiffArrays,
|
||
|
|
reverse: isDiffArrays,
|
||
|
|
sort: isDiffArrays,
|
||
|
|
splice: isDiffArrays,
|
||
|
|
flat: isDiffArrays,
|
||
|
|
fill: isDiffArrays,
|
||
|
|
};
|
||
|
|
|
||
|
|
export const HANDLED_ARRAY_METHODS = new Set([
|
||
|
|
...IMMUTABLE_OBJECT_METHODS,
|
||
|
|
...IMMUTABLE_ARRAY_METHODS,
|
||
|
|
...Object.keys(MUTABLE_ARRAY_METHODS),
|
||
|
|
]);
|