<!DOCTYPE html>
<div id="outerStrict" style="contain:strict;">
<div id="multicol" style="columns:1; writing-mode:vertical-lr;">
<div id="multicolChild"></div>
<div id="notMarkedForLayout">
<div id="innerStrict" style="contain:strict;">
<table>
<thead id="thead"></thead>
<tbody>
<tr></tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
test(() => {
document.body.offsetTop;
// Will mark everything from #thead up to #innerStrict for layout
document.getElementById("thead").style.display = "none";
// Will mark everything from #multicolChild to #outerStrict for layout
document.getElementById("multicolChild").style.display = "none";
// At this point #notMarkedForLayout will remain not marked for layout,
// while both its parent and its child will be marked for
// layout. #innerStrict and #outerStrict can be laid out as separate
// subtrees in the next layout phase. #multicol establishes an
// orthogonal writing mode root. Writing mode roots need to be laid out
// before their ancestors (in order to get min/max intrinsic inline
// sizes correct). It is now important that the three objects
// (#innerStrict, #multicol, #outerStrict) be laid out in depth-first
// order, so that we don't skip over subtrees that need layout.
}, "no crash or assertion failure");
</script>