coerce(other) {
    if ('unit' == other.nodeName) {
      var a = this
        , b = other
        , factorA = FACTOR_TABLE[a.type]
        , factorB = FACTOR_TABLE[b.type];

      if (factorA && factorB && (factorA.label == factorB.label)) {
        var bVal = b.val * (factorB.val / factorA.val);
        return new nodes.Unit(bVal, a.type);
      } else {
        return new nodes.Unit(b.val, a.type);
      }
    } else if ('string' == other.nodeName) {
      // keyframes interpolation
      if ('%' == other.val) return new nodes.Unit(0, '%');
      var val = parseFloat(other.val);
      if (isNaN(val)) super.coerce(other);
      return new nodes.Unit(val);
    } else {
      return super.coerce(other);
    }
  }
Coerce `other` unit to the same type as `this` unit.

Supports:

   mm -> cm | in
   cm -> mm | in
   in -> mm | cm

   ms -> s
   s  -> ms

   Hz  -> kHz
   kHz -> Hz

@param {Unit} other
@return {Unit}
@api public