docs: function markChangesSweep() {
        // intentionally we process the proxies in reverse order;
        // ideally we start by processing leafs in the tree, because if a child has changed, we don't have to check the parent anymore
        // reverse order of proxy creation approximates this
        for (var i = states.length - 1; i >= 0; i--) {
            var state = states[i];
            if (state.modified === false) {
                if (Array.isArray(state.base)) {
                    if (hasArrayChanges(state)) markChanged$1(state);
                } else if (hasObjectChanges(state)) markChanged$1(state);
            }
        }
    }