docs: function(style) {
    var surrogateElement = document.createElement('div');
    copyInlineStyle(style, surrogateElement.style);
    var isAnimatedProperty = {};
    for (var method in cssStyleDeclarationMethodModifiesStyle) {
      if (!(method in style)) {
        continue;
      }
      Object.defineProperty(style, method, configureDescriptor({
        value: (function(method, originalMethod, modifiesStyle) {
          return function() {
            var result = surrogateElement.style[method].apply(
                surrogateElement.style, arguments);
            if (modifiesStyle) {
              if (!isAnimatedProperty[arguments[0]]) {
                originalMethod.apply(style, arguments);
              }
              animatedInlineStyleChanged();
            }
            return result;
          }
        })(method, style[method], cssStyleDeclarationMethodModifiesStyle[method])
      }));
    }
  
    style._clearAnimatedProperty = function(property) {
      this[property] = surrogateElement.style[property];
      isAnimatedProperty[property] = false;
    };
  
    style._setAnimatedProperty = function(property, value) {
      this[property] = value;
      isAnimatedProperty[property] = true;
    };
  }