replaceKeys always set to hole. delKeys try to setToInner, and also set to hole if impossible