(tween, time, tTime)
| 2847 | //store a reference temporarily so we can avoid overwriting itself. |
| 2848 | _forceAllPropTweens, |
| 2849 | _initTween = function _initTween(tween, time, tTime) { |
| 2850 | var vars = tween.vars, |
| 2851 | ease = vars.ease, |
| 2852 | startAt = vars.startAt, |
| 2853 | immediateRender = vars.immediateRender, |
| 2854 | lazy = vars.lazy, |
| 2855 | onUpdate = vars.onUpdate, |
| 2856 | runBackwards = vars.runBackwards, |
| 2857 | yoyoEase = vars.yoyoEase, |
| 2858 | keyframes = vars.keyframes, |
| 2859 | autoRevert = vars.autoRevert, |
| 2860 | dur = tween._dur, |
| 2861 | prevStartAt = tween._startAt, |
| 2862 | targets = tween._targets, |
| 2863 | parent = tween.parent, |
| 2864 | fullTargets = parent && parent.data === "nested" ? parent.vars.targets : targets, |
| 2865 | autoOverwrite = tween._overwrite === "auto" && !_suppressOverwrites, |
| 2866 | tl = tween.timeline, |
| 2867 | reverseEase = vars.easeReverse || yoyoEase, |
| 2868 | cleanVars, |
| 2869 | i, |
| 2870 | p, |
| 2871 | pt, |
| 2872 | target, |
| 2873 | hasPriority, |
| 2874 | gsData, |
| 2875 | harness, |
| 2876 | plugin, |
| 2877 | ptLookup, |
| 2878 | index, |
| 2879 | harnessVars, |
| 2880 | overwritten; |
| 2881 | tl && (!keyframes || !ease) && (ease = "none"); |
| 2882 | tween._ease = _parseEase(ease, _defaults.ease); |
| 2883 | tween._rEase = reverseEase && (_parseEase(reverseEase) || tween._ease); |
| 2884 | tween._from = !tl && !!vars.runBackwards; //nested timelines should never run backwards - the backwards-ness is in the child tweens. |
| 2885 | |
| 2886 | if (tween._from) tween.ratio = 1; |
| 2887 | |
| 2888 | if (!tl || keyframes && !vars.stagger) { |
| 2889 | //if there's an internal timeline, skip all the parsing because we passed that task down the chain. |
| 2890 | harness = targets[0] ? _getCache(targets[0]).harness : 0; |
| 2891 | harnessVars = harness && vars[harness.prop]; //someone may need to specify CSS-specific values AND non-CSS values, like if the element has an "x" property plus it's a standard DOM element. We allow people to distinguish by wrapping plugin-specific stuff in a css:{} object for example. |
| 2892 | |
| 2893 | cleanVars = _copyExcluding(vars, _reservedProps); |
| 2894 | |
| 2895 | if (prevStartAt) { |
| 2896 | prevStartAt._zTime < 0 && prevStartAt.progress(1); // in case it's a lazy startAt that hasn't rendered yet. |
| 2897 | |
| 2898 | time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig); // if it's a "startAt" (not "from()" or runBackwards: true), we only need to do a shallow revert (keep transforms cached in CSSPlugin) |
| 2899 | // don't just _removeFromParent(prevStartAt.render(-1, true)) because that'll leave inline styles. We're creating a new _startAt for "startAt" tweens that re-capture things to ensure that if the pre-tween values changed since the tween was created, they're recorded. |
| 2900 | |
| 2901 | prevStartAt._lazy = 0; |
| 2902 | } |
| 2903 | |
| 2904 | if (startAt) { |
| 2905 | _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({ |
| 2906 | data: "isStart", |
no test coverage detected
searching dependent graphs…