You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reworded the description of the dependency graph for element() to make it more obvious that it's declarative. Added a clause about host-language elements that depend on other things.
<p>The ''element()'' function can produce nonsensical circular relationships,
467
467
such as an element using itself as its own background. These relationships
468
468
can be easily and reliably detected and resolved, however, by keeping
469
469
track of a dependency graph and using common cycle-detection algorithms.</p>
470
470
471
-
<p>Populate the dependency graph initially by having every element depend
472
-
on each of its children. Then, whenever a property on an element A uses
473
-
the ''element()'' function to refer to an element B, add an edge to the
474
-
graph by having A depend on B. If a dependency cycle is detected, any
475
-
''element()'' functions that produced a dependency in the cycle must represent
476
-
a fully transparent image with no intrinsic dimensions.</p>
471
+
<p>The dependency graph consists of edges such that:</p>
472
+
473
+
<ul>
474
+
<li>every element depends on its children</li>
475
+
476
+
<li>for any element A with a property using the ''element()'' function pointing to an element B, A depends on B</li>
477
+
478
+
<li>if a host language defines a way for elements to refer to the rendering of other elements, the referencing element depends on the referenced element. For example, in SVG, a <use> element depends on the element it referenced.</li>
479
+
</ul>
480
+
481
+
<p>If the graph contains a cycle, any ''element()'' functions participating in the cycle must represent a fully transparent image with no intrinsic dimensions.</p>
477
482
478
483
<pclass=issue>Someone else needs to review this and make sure that I'm
0 commit comments