code: function prefixed(property, value) {
    const shouldTestValue = isDefined(value);
    const cacheName = getCacheName(property, value, shouldTestValue);
  
    // Check cache.
    if (isDefined(prefixCache[cacheName])) {
      return prefixCache[cacheName];
    }
  
    const ucProp = property.charAt(0).toUpperCase() + property.slice(1);
  
    // Create an array of prefixed properties. ['transform', 'WebkitTransform'].
    const props = (`${property} ${prefixes.join(ucProp + ' ')}${ucProp}`).split(' ');
    const { style } = element;
  
    for (let i = 0; i < props.length; i++) {
      const prop = props[i];
      const before = style[prop];
  
      // Check the existence of the property.
      if (isDefined(before)) {
        // Test if the value sticks after setting it.
        if (shouldTestValue) {
          style[prop] = value;
  
          // If the property value has changed, assume the value used is supported.
          if (style[prop] !== before) {
            prefixCache[cacheName] = prop;
            return prop;
          }
        } else {
          prefixCache[cacheName] = prop;
          return prop;
        }
      }
    }
  
    prefixCache[cacheName] = false;
    return false;
  }
docs: Returns the prefixed style property if it exists.
  {@link http://perfectionkills.com/feature-testing-css-properties/}
  
  @param {string} property The property name.
  @param {string} [value] Value to set and test. If undefined, this test will
  only check that the property exists, not whether it supports the value.
  @return {string|false} The style property or false.