code: function normalizePropertyTweens(prop, tweenSettings) {
    let settings = cloneObject(tweenSettings);
    // Override duration if easing is a spring
    if (/^spring/.test(settings.easing)) settings.duration = spring(settings.easing);
    if (is.arr(prop)) {
      const l = prop.length;
      const isFromTo = (l === 2 && !is.obj(prop[0]));
      if (!isFromTo) {
        // Duration divided by the number of tweens
        if (!is.fnc(tweenSettings.duration)) settings.duration = tweenSettings.duration / l;
      } else {
        // Transform [from, to] values shorthand to a valid tween value
        prop = {value: prop};
      }
    }
    const propArray = is.arr(prop) ? prop : [prop];
    return propArray.map((v, i) => {
      const obj = (is.obj(v) && !is.pth(v)) ? v : {value: v};
      // Default delay value should only be applied to the first tween
      if (is.und(obj.delay)) obj.delay = !i ? tweenSettings.delay : 0;
      // Default endDelay value should only be applied to the last tween
      if (is.und(obj.endDelay)) obj.endDelay = i === propArray.length - 1 ? tweenSettings.endDelay : 0;
      return obj;
    }).map(k => mergeObjects(k, settings));
  }
docs: Properties