@@ -817,14 +817,6 @@ which is used to fix the animation's output <a>time value</a>, called its
817817<a>current time</a> , in circumstances such as pausing.
818818The <a>hold time</a> is initially <a>unresolved</a> .
819819
820- In addition to the <a>hold time</a> , an <a>animation</a> maintains a
821- <dfn>hold phase</dfn> which is set along with the <a>hold time</a> to determine
822- the <a>current phase</a> of an <a>animation</a> with a fixed
823- <a>current time</a> .
824- The <a>hold phase</a> has the same range of values as the [=timeline phase=] and
825- can be set or unset.
826- The <a>hold phase</a> is initially unset.
827-
828820In order to establish the relative ordering of conflicting <a>animations</a> ,
829821animations are appended to a <dfn>global animation list</dfn> in the order
830822in which they are created. Certain <a lt="animation class">classes of
@@ -844,7 +836,7 @@ follows:
8448361. Let the <a>timeline</a> of <var> animation</var> be <var> new timeline</var> .
8458371. If the [=start time=] of <var> animation</var> is <a
846838 lt=unresolved> resolved</a> , make <var> animation</var> 's <a>hold time</a>
847- <a>unresolved</a> and make <a>hold phase</a> unset .
839+ <a>unresolved</a> .
848840
849841 Note: This step ensures that the <a>finished play state</a> of
850842 <var> animation</var> is not “sticky” but is re-evaluated
@@ -933,37 +925,6 @@ matching condition from below:
933925
934926</div>
935927
936- ### The current phase of an animation ### {#the-current-phase-of-an-animation}
937-
938- In addition to their <a>current time</a> , <a>animations</a> provide their
939- <a>associated effects</a> with a <dfn>current phase</dfn> .
940- This is used in determining the animations effect's phase in certain boundary
941- conditions.
942-
943- An <a>animation's</a> <a>current phase</a> has the same range of values as the
944- [=timeline phase=] .
945-
946- The <a>current phase</a> is calculated from the first matching condition from
947- below:
948-
949- <div class="switch">
950-
951- : If the animation's <a>hold phase</a> is set,
952- :: The <a>current phase</a> is the animation's <a>hold phase</a> .
953-
954- : If <em> either</em> of the following are true:
955-
956- 1. the animation has no associated <a>timeline</a> , or
957- 1. the animation's [=start time=] is <a>unresolved</a> .
958-
959- :: The <a>current phase</a> is [=timeline inactive phase|inactive=] .
960-
961- : Otherwise,
962- :: The <a>current phase</a> is the [=timeline phase=] of the associated
963- <a>timeline</a> .
964-
965- </div>
966-
967928### Setting the current time of an animation ### {#setting-the-current-time-of-an-animation}
968929
969930The <a>current time</a> of an animation can be set to a new value to
@@ -997,9 +958,7 @@ an animation, <var>animation</var>, to <var>seek time</var> is as follows:
997958 <a lt="inactive timeline">inactive</a> , or
998959 * <var> animation</var> 's [=playback rate=] is 0,
999960
1000- :: 1. Set <var> animation</var> 's <a>hold time</a> to <var> seek time</var> .
1001- :: 1. Set <var> animation</var> 's <a>hold phase</a> to
1002- [=timeline active phase|active=] .
961+ :: Set <var> animation</var> 's <a>hold time</a> to <var> seek time</var> .
1003962
1004963 : Otherwise,
1005964 :: Set <var> animation</var> 's [=start time=] to the result of evaluating
@@ -1029,8 +988,6 @@ The procedure to <dfn>set the current time</dfn> of an animation,
10299881. If <var> animation</var> has a <a>pending pause task</a> , synchronously
1030989 complete the pause operation by performing the following steps:
1031990 1. Set <var> animation</var> 's <a>hold time</a> to <var> seek time</var> .
1032- 1. Set <var> animation</var> 's <a>hold phase</a> to
1033- [=timeline active phase|active=] .
1034991 1. [=Apply any pending playback rate=] to |animation|.
1035992 1. Make <var> animation</var> 's [=start time=] <a>unresolved</a> .
1036993 1. Cancel the <a>pending pause task</a> .
@@ -1054,7 +1011,7 @@ is as follows:
10541011
105510121. If <var> timeline time</var> is <a>unresolved</a> and <var> new start
10561013 time</var> is <a lt="unresolved">resolved</a> , make <var> animation</var> 's
1057- <a>hold time</a> <a>unresolved</a> and make <a>hold phase</a> unset .
1014+ <a>hold time</a> <a>unresolved</a> .
10581015
10591016 <p class=note>
10601017 This preserves the invariant that when we don't have an active timeline it
@@ -1069,29 +1026,23 @@ is as follows:
10691026 previous step which may cause the <a>current time</a> to become
10701027 <a>unresolved</a> .
10711028
1072- 1. Let <var> previous current phase</var> be <var> animation</var> 's <a>current
1073- phase</a> .
1074-
107510291. [=Apply any pending playback rate=] on |animation|.
10761030
107710311. Set <var> animation</var> 's [=start time=] to <var> new start time</var> .
10781032
1079- 1. Update <var> animation</var> 's <a>hold time</a> and <a>hold phase</a> based
1080- on the first matching condition from the following,
1033+ 1. Update <var> animation</var> 's <a>hold time</a> based on the first matching
1034+ condition from the following,
10811035
10821036 <div class="switch">
10831037
10841038 : If <var> new start time</var> is <a lt="unresolved">resolved</a> ,
10851039 :: If <var> animation</var> 's [=playback rate=] is not zero,
1086- make <var> animation</var> 's <a>hold time</a> <a>unresolved</a> and make
1087- <a>hold phase</a> unset.
1040+ make <var> animation</var> 's <a>hold time</a> <a>unresolved</a> .
10881041
10891042 : Otherwise (<var> new start time</var> is <a>unresolved</a> ),
10901043 :: Set <var> animation</var> 's <a>hold time</a> to <var> previous current
10911044 time</var> even if <var> previous current time</var> is
10921045 <a>unresolved</a> .
1093- :: Set <var> animation</var> 's <a>hold phase</a> to <var> previous current
1094- phase</var> .
10951046
10961047 </div>
10971048
@@ -1239,13 +1190,10 @@ as CSS Animations [[CSS-ANIMATIONS-1]].
12391190
12401191 : If |has finite timeline| is true,
12411192 :: 1. Set <var> animation</var> 's <a>start time</a> to <var> seek time</var> .
1242- 1. Let |animation|'s [=hold time=] be <a>unresolved</a> and
1243- <a>hold phase</a> be unset.
1193+ 1. Let |animation|'s [=hold time=] be <a>unresolved</a> .
12441194 1. [=Apply any pending playback rate=] on |animation|.
12451195 : Otherwise,
1246- :: 1. Set <var> animation</var> 's <a>hold time</a> to <var> seek time</var> .
1247- 1. Set <var> animation</var> 's <a>hold phase</a> to
1248- [=timeline active phase|active=] .
1196+ :: Set <var> animation</var> 's <a>hold time</a> to <var> seek time</var> .
12491197
12501198 </div>
12511199
@@ -1299,7 +1247,7 @@ as CSS Animations [[CSS-ANIMATIONS-1]].
12991247 1. Set the [=start time=] of |animation| to |new start time|.
13001248
13011249 1. If |animation|'s [=playback rate=] is not 0, make |animation|' s
1302- [=hold time=] [=unresolved=] and make [=hold phase=] unset .
1250+ [=hold time=] [=unresolved=] .
13031251
13041252 : If |animation|'s [=start time=] is resolved and |animation| has
13051253 a [=pending playback rate=] ,
@@ -1311,8 +1259,7 @@ as CSS Animations [[CSS-ANIMATIONS-1]].
13111259 1. [=Apply any pending playback rate=] on |animation|.
13121260
13131261 1. If |animation|'s [=playback rate=] is zero, let |animation|' s
1314- [=hold time=] be |current time to match| and let [=hold phase=]
1315- be the |animation|'s [=current phase=] .
1262+ [=hold time=] be |current time to match|.
13161263
13171264 1. Let |new start time| be the result of evaluating
13181265 <code> |ready time| - |current time to match| /
@@ -1425,10 +1372,7 @@ follows:
14251372 : If |has finite timeline| is true,
14261373 :: Set <var> animation</var> 's <a>start time</a> to <var> seek time</var> .
14271374 : Otherwise,
1428- :: 1. Set <var> animation</var> 's <a>hold time</a> to
1429- <var> seek time</var> .
1430- 1. Set <var> animation</var> 's <a>hold phase</a> to
1431- [=timeline active phase|active=] .
1375+ :: Set <var> animation</var> 's <a>hold time</a> to <var> seek time</var> .
14321376
14331377 </div>
14341378
@@ -1459,8 +1403,7 @@ follows:
14591403 <em> not</em> resolved,
14601404 let <var> animation</var> 's <a>hold time</a> be the result of evaluating
14611405 <code> (<var> ready time</var> - [=start time=] ) ×
1462- [=playback rate=] </code> and let <var> animation</var> 's
1463- <a>hold phase</a> be the <var> animation</var> 's <a>current phase</a> .
1406+ [=playback rate=] </code> .
14641407
14651408 Note: The <a>hold time</a> might be already set if the animation
14661409 is <a lt="finished play state">finished</a> , or if the animation
@@ -1610,34 +1553,29 @@ follows:
16101553 * <var> animation</var> does <em> not</em> have a <a>pending play task</a>
16111554 or a <a>pending pause task</a> ,
16121555
1613- then update <var> animation</var> 's <a>hold time</a> and <a>hold phase</a>
1614- based on the first matching condition for <var> animation</var> from below,
1615- if any:
1556+ then update <var> animation</var> 's <a>hold time</a> based on the first
1557+ matching condition for <var> animation</var> from below, if any:
16161558
16171559 <div class='switch'>
16181560
16191561 : If [=playback rate=] > 0 and
16201562 <var> unconstrained current time</var> is greater than or equal to
16211563 <a>associated effect end</a> ,
16221564 :: If <var> did seek</var> is true, let the <a>hold time</a>
1623- be the value of <var> unconstrained current time</var> and let
1624- <a>hold phase</a> be [=timeline active phase|active=] .
1565+ be the value of <var> unconstrained current time</var> .
16251566
16261567 If <var> did seek</var> is false, let the <a>hold time</a> be the maximum
1627- value of <a>previous current time</a> and <a>associated effect end</a>
1628- and let <a>hold phase</a> be the <a>current phase</a> .
1568+ value of <a>previous current time</a> and <a>associated effect end</a> .
16291569 If the <a>previous current time</a> is
16301570 <a>unresolved</a> , let the <a>hold time</a> be <a>associated
16311571 effect end</a> .
16321572 : If [=playback rate=] < 0 and
16331573 <var> unconstrained current time</var> is less than or equal to 0,
16341574 :: If <var> did seek</var> is true, let the <a>hold time</a>
1635- be the value of <var> unconstrained current time</var> and let
1636- <a>hold phase</a> be [=timeline active phase|active=] .
1575+ be the value of <var> unconstrained current time</var> .
16371576
16381577 If <var> did seek</var> is false, let the <a>hold time</a> be the
1639- minimum value of <a>previous current time</a> and zero and let
1640- <a>hold phase</a> be the <a>current phase</a> .
1578+ minimum value of <a>previous current time</a> and zero.
16411579 If the <a>previous current time</a> is
16421580 <a>unresolved</a> , let the <a>hold time</a> be zero.
16431581 : If [=playback rate=] ≠ 0, and
@@ -1653,7 +1591,6 @@ follows:
16531591 of <a>timeline</a> associated with <var> animation</var> .
16541592
16551593 1. Let the <a>hold time</a> be <a>unresolved</a> .
1656- 1. Let the <a>hold phase</a> be unset.
16571594
16581595 </div>
16591596
@@ -1801,8 +1738,6 @@ for <var>animation</var> defined below:
18011738 unresolved except in the case when the animation was previously <a
18021739 lt="idle play state"> idle</a> .</div>
18031740
1804- 1. Let the <a>hold phase</a> be unset.
1805-
18061741 1. Cancel the <a>pending pause task</a> .
18071742
18081743 1. <a lt="resolve a Promise">Resolve</a> the <a>current ready promise</a>
@@ -1868,7 +1803,6 @@ as follows:
18681803 source=] .
18691804
187018051. Make <var> animation</var> 's <a>hold time</a> <a>unresolved</a> .
1871- 1. Make <var> animation</var> 's <a>hold phase</a> unset.
187218061. Make <var> animation</var> 's [=start time=] <a>unresolved</a> .
18731807
18741808### Speed control ### {#speed-control}
@@ -2411,27 +2345,19 @@ definitions:
24112345
24122346An <a>animation effect</a> is in the <dfn>before phase</dfn> if the
24132347animation effect's <a>local time</a> is not <a>unresolved</a> and
2414- <em> any </em> of the following conditions are met:
2348+ <em> either </em> of the following conditions are met:
24152349
241623501. the <a>local time</a> is less than the <a>before-active boundary time</a> ,
24172351 <em> or</em>
2418- 1. the effect is <a>associated with an animation</a> <em> and</em> the
2419- associated <a>animation</a> 's <a>current phase</a> is
2420- [=timeline before phase|before=] <em> and</em> the <a>local time</a> is equal
2421- to the <a>before-active boundary time</a> , <em> or</em>
242223521. the <a>animation direction</a> is ‘backwards’ and the <a>local
24232353 time</a> is equal to the <a>before-active boundary time</a> .
24242354
24252355An <a>animation effect</a> is in the <dfn>after phase</dfn> if the
24262356animation effect's <a>local time</a> is not <a>unresolved</a> and
2427- <em> any </em> of the following conditions are met:
2357+ <em> either </em> of the following conditions are met:
24282358
242923591. the <a>local time</a> is greater than the <a>active-after boundary
24302360 time</a> , <em> or</em>
2431- 1. the effect is <a>associated with an animation</a> <em> and</em> the
2432- associated <a>animation</a> 's <a>current phase</a> is
2433- [=timeline after phase|after=] <em> and</em> the <a>local time</a> is equal
2434- to the <a>active-after boundary time</a> , <em> or</em>
243523611. the <a>animation direction</a> is ‘forwards’ and the <a>local
24362362 time</a> is equal to the <a>active-after boundary time</a> .
24372363
0 commit comments