code: private static HotSwapPassFactory createFeatureRemovalPass(
        String passName, final Feature featureToRemove, final Feature... moreFeaturesToRemove) {
      return new HotSwapPassFactory(passName) {
        @Override
        protected HotSwapCompilerPass create(final AbstractCompiler compiler) {
          return new HotSwapCompilerPass() {
            @Override
            public void hotSwapScript(Node scriptRoot, Node originalRoot) {
              maybeMarkFeaturesAsTranspiledAway(compiler, featureToRemove, moreFeaturesToRemove);
            }
  
            @Override
            public void process(Node externs, Node root) {
              maybeMarkFeaturesAsTranspiledAway(compiler, featureToRemove, moreFeaturesToRemove);
            }
          };
        }
  
        @Override
        protected FeatureSet featureSet() {
          return FeatureSet.latest();
        }
      };
    }
docs: Returns a pass that just removes features from the AST FeatureSet.
  
  <p>Doing this indicates that the AST no longer contains uses of the features, or that they are
  no longer of concern for some other reason.