protected function sendPreBody($pre_body, array
$no_js_placeholders, AttachedAssetsInterface
$cumulative_assets) { // If there are no no-JS BigPipe placeholders, we can send the pre-</body>
// part of the page immediately.
if (empty($no_js_placeholders)) { $this->
sendChunk($pre_body);
return;
} // Extract the scripts_bottom markup: the no-JS BigPipe placeholders that we
// will render may attach additional asset libraries, and if so, it will be
// necessary to re-render scripts_bottom.
[$pre_scripts_bottom,
$scripts_bottom,
$post_scripts_bottom] =
explode('<drupal-big-pipe-scripts-bottom-marker>',
$pre_body, 3
);
$cumulative_assets_initial =
clone $cumulative_assets;
$this->
sendNoJsPlaceholders($pre_scripts_bottom .
$post_scripts_bottom,
$no_js_placeholders,
$cumulative_assets);