message: fix(animations): handle structured AnimateTimings
  This commit makes sure structured AnimateTimings are not procesed any further when building the AST.
  Fixes:
  PR Close
diff: @@ -561,10 +561,11 @@ function consumeOffset(styles: OffsetStyles|Array<OffsetStyles>): number|null {
  }
  function constructTimingAst(value: string|number|AnimateTimings, errors: Error[]) {
  - let timings: AnimateTimings|null = null;
  if (value.hasOwnProperty('duration')) {
  - timings = value as AnimateTimings;
  - } else if (typeof value == 'number') {
  + return value as AnimateTimings;
  + }
  +
  + if (typeof value == 'number') {
  const duration = resolveTiming(value, errors).duration;
  return makeTimingAst(duration, 0, '');
  }
  @@ -578,7 +579,7 @@ function constructTimingAst(value: string|number|AnimateTimings, errors: Error[]
  return ast as DynamicTimingAst;
  }
  - timings = timings || resolveTiming(strValue, errors);
  + const timings = resolveTiming(strValue, errors);
  return makeTimingAst(timings.duration, timings.delay, timings.easing);
  }
  