<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[57327] trunk: Script Modules API: Rename `wp_module` to `wp_script_module`</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/57327">57327</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/57327","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>dmsnell</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2024-01-23 03:32:03 +0000 (Tue, 23 Jan 2024)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Script Modules API: Rename `wp_module` to `wp_script_module`

Renames all mentions to "module" with "script module", including function names, comments, and tests.

Follow up to <a href="https://core.trac.wordpress.org/changeset/57269">[57269]</a>

The list of functions renamed are:

 - `wp_module()`          -> `wp_script_module()`.
 - `wp_register_module()` -> `wp_register_script_module()`.
 - `wp_enqueue_module()`  -> `wp_enqueue_script_module()`.
 - `wp_dequeue_module()`  -> `wp_dequeue_script_module()`.
 - `WP_Script_Modules::print_enqueued_modules()` -> `WP_Script_Modules::print_enqueued_script_modules()`.
 - `WP_Script_Modules::print_module_preloads()`  -> `WP_Script_Modules::print_script_module_preloads()`.

It also adds PHP 7 typing to all the functions and improves the types of the `$deps` argument of `wp_register_script_module()` and `wp_enqueue_script_module()` using `@type`.

Props luisherranz, idad5, costdev, nefff, joemcgill, jorbin, swisspidy, jonsurrel, flixos90, gziolo, westonruter, bernhard-reiter, kamranzafar4343
See <a href="https://core.trac.wordpress.org/ticket/56313">#56313</a></pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpincludesclasswpscriptmodulesphp">trunk/src/wp-includes/class-wp-script-modules.php</a></li>
<li><a href="#trunksrcwpincludesscriptmodulesphp">trunk/src/wp-includes/script-modules.php</a></li>
<li><a href="#trunktestsphpunittestsscriptmoduleswpScriptModulesphp">trunk/tests/phpunit/tests/script-modules/wpScriptModules.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpincludesclasswpscriptmodulesphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/class-wp-script-modules.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/class-wp-script-modules.php 2024-01-23 01:49:06 UTC (rev 57326)
+++ trunk/src/wp-includes/class-wp-script-modules.php   2024-01-23 03:32:03 UTC (rev 57327)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,6 +1,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> <?php
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Modules API: WP_Script_Modules class.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Script Modules API: WP_Script_Modules class.
</ins><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Native support for ES Modules and Import Maps.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9,13 +9,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Core class used to register modules.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Core class used to register script modules.
</ins><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> class WP_Script_Modules {
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Holds the registered modules, keyed by module identifier.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Holds the registered script modules, keyed by script module identifier.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">         * @var array
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23,47 +23,46 @@
</span><span class="cx" style="display: block; padding: 0 10px">        private $registered = array();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Holds the module identifiers that were enqueued before registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Holds the script module identifiers that were enqueued before registered.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 6.5.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @var array
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @var array<string, true>
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        private $enqueued_before_registered = array();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Registers the module if no module with that module identifier has already
-        * been registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Registers the script module if no script module with that script module
+        * identifier has already been registered.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param string                                                        $module_id The identifier of the module.
-        *                                                                                 Should be unique. It will be used
-        *                                                                                 in the final import map.
-        * @param string                                                        $src       Full URL of the module, or path of
-        *                                                                                 the module relative to the
-        *                                                                                 WordPress root directory.
-        * @param array<string|array{id: string, import?: 'static'|'dynamic' }> $deps      Optional. An array of module
-        *                                                                                 identifiers of the dependencies of
-        *                                                                                 this module. The dependencies can
-        *                                                                                 be strings or arrays. If they are
-        *                                                                                 arrays, they need an `id` key with
-        *                                                                                 the module identifier, and can
-        *                                                                                 contain an `import` key with either
-        *                                                                                 `static` or `dynamic`. By default,
-        *                                                                                 dependencies that don't contain an
-        *                                                                                 `import` key are considered static.
-        * @param string|false|null                                             $version   Optional. String specifying the
-        *                                                                                 module version number. Defaults to
-        *                                                                                 false. It is added to the URL as a
-        *                                                                                 query string for cache busting
-        *                                                                                 purposes. If $version is set to
-        *                                                                                 false, the version number is the
-        *                                                                                 currently installed WordPress
-        *                                                                                 version. If $version is set to
-        *                                                                                 null, no version is added.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param string            $id       The identifier of the script module. Should be unique. It will be used in the
+        *                                    final import map.
+        * @param string            $src      Optional. Full URL of the script module, or path of the script module relative
+        *                                    to the WordPress root directory. If it is provided and the script module has
+        *                                    not been registered yet, it will be registered.
+        * @param array             $deps     {
+        *                                        Optional. List of dependencies.
+        *
+        *                                        @type string|array $0... {
+        *                                            An array of script module identifiers of the dependencies of this script
+        *                                            module. The dependencies can be strings or arrays. If they are arrays,
+        *                                            they need an `id` key with the script module identifier, and can contain
+        *                                            an `import` key with either `static` or `dynamic`. By default,
+        *                                            dependencies that don't contain an `import` key are considered static.
+        *
+        *                                            @type string $id     The script module identifier.
+        *                                            @type string $import Optional. Import type. May be either `static` or
+        *                                                                 `dynamic`. Defaults to `static`.
+        *                                        }
+        *                                    }
+        * @param string|false|null $version  Optional. String specifying the script module version number. Defaults to false.
+        *                                    It is added to the URL as a query string for cache busting purposes. If $version
+        *                                    is set to false, the version number is the currently installed WordPress version.
+        *                                    If $version is set to null, no version is added.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function register( $module_id, $src, $deps = array(), $version = false ) {
-               if ( ! isset( $this->registered[ $module_id ] ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function register( string $id, string $src, array $deps = array(), $version = false ) {
+               if ( ! isset( $this->registered[ $id ] ) ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         $dependencies = array();
</span><span class="cx" style="display: block; padding: 0 10px">                        foreach ( $deps as $dependency ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                if ( is_array( $dependency ) ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -85,10 +84,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $this->registered[ $module_id ] = array(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $this->registered[ $id ] = array(
</ins><span class="cx" style="display: block; padding: 0 10px">                                 'src'          => $src,
</span><span class="cx" style="display: block; padding: 0 10px">                                'version'      => $version,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                'enqueue'      => isset( $this->enqueued_before_registered[ $module_id ] ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         'enqueue'      => isset( $this->enqueued_before_registered[ $id ] ),
</ins><span class="cx" style="display: block; padding: 0 10px">                                 'dependencies' => $dependencies,
</span><span class="cx" style="display: block; padding: 0 10px">                                'enqueued'     => false,
</span><span class="cx" style="display: block; padding: 0 10px">                                'preloaded'    => false,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -97,116 +96,113 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Marks the module to be enqueued in the page the next time
-        * `prints_enqueued_modules` is called.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Marks the script module to be enqueued in the page the next time
+        * `print_enqueued_script_modules` is called.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * If a src is provided and the module has not been registered yet, it will be
-        * registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * If a src is provided and the script module has not been registered yet, it
+        * will be registered.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param string                                                        $module_id The identifier of the module.
-        *                                                                                 Should be unique. It will be used
-        *                                                                                 in the final import map.
-        * @param string                                                        $src       Optional. Full URL of the module,
-        *                                                                                 or path of the module relative to
-        *                                                                                 the WordPress root directory. If
-        *                                                                                 it is provided and the module has
-        *                                                                                 not been registered yet, it will be
-        *                                                                                 registered.
-        * @param array<string|array{id: string, import?: 'static'|'dynamic' }> $deps      Optional. An array of module
-        *                                                                                 identifiers of the dependencies of
-        *                                                                                 this module. The dependencies can
-        *                                                                                 be strings or arrays. If they are
-        *                                                                                 arrays, they need an `id` key with
-        *                                                                                 the module identifier, and can
-        *                                                                                 contain an `import` key with either
-        *                                                                                 `static` or `dynamic`. By default,
-        *                                                                                 dependencies that don't contain an
-        *                                                                                 `import` key are considered static.
-        * @param string|false|null                                             $version   Optional. String specifying the
-        *                                                                                 module version number. Defaults to
-        *                                                                                 false. It is added to the URL as a
-        *                                                                                 query string for cache busting
-        *                                                                                 purposes. If $version is set to
-        *                                                                                 false, the version number is the
-        *                                                                                 currently installed WordPress
-        *                                                                                 version. If $version is set to
-        *                                                                                 null, no version is added.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param string            $id       The identifier of the script module. Should be unique. It will be used in the
+        *                                    final import map.
+        * @param string            $src      Optional. Full URL of the script module, or path of the script module relative
+        *                                    to the WordPress root directory. If it is provided and the script module has
+        *                                    not been registered yet, it will be registered.
+        * @param array             $deps     {
+        *                                        Optional. List of dependencies.
+        *
+        *                                        @type string|array $0... {
+        *                                            An array of script module identifiers of the dependencies of this script
+        *                                            module. The dependencies can be strings or arrays. If they are arrays,
+        *                                            they need an `id` key with the script module identifier, and can contain
+        *                                            an `import` key with either `static` or `dynamic`. By default,
+        *                                            dependencies that don't contain an `import` key are considered static.
+        *
+        *                                            @type string $id     The script module identifier.
+        *                                            @type string $import Optional. Import type. May be either `static` or
+        *                                                                 `dynamic`. Defaults to `static`.
+        *                                        }
+        *                                    }
+        * @param string|false|null $version  Optional. String specifying the script module version number. Defaults to false.
+        *                                    It is added to the URL as a query string for cache busting purposes. If $version
+        *                                    is set to false, the version number is the currently installed WordPress version.
+        *                                    If $version is set to null, no version is added.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function enqueue( $module_id, $src = '', $deps = array(), $version = false ) {
-               if ( isset( $this->registered[ $module_id ] ) ) {
-                       $this->registered[ $module_id ]['enqueue'] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function enqueue( string $id, string $src = '', array $deps = array(), $version = false ) {
+               if ( isset( $this->registered[ $id ] ) ) {
+                       $this->registered[ $id ]['enqueue'] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">                 } elseif ( $src ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $this->register( $module_id, $src, $deps, $version );
-                       $this->registered[ $module_id ]['enqueue'] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $this->register( $id, $src, $deps, $version );
+                       $this->registered[ $id ]['enqueue'] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">                 } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $this->enqueued_before_registered[ $module_id ] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $this->enqueued_before_registered[ $id ] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Unmarks the module so it will no longer be enqueued in the page.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Unmarks the script module so it will no longer be enqueued in the page.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param string $module_id The identifier of the module.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param string $id The identifier of the script module.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function dequeue( $module_id ) {
-               if ( isset( $this->registered[ $module_id ] ) ) {
-                       $this->registered[ $module_id ]['enqueue'] = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function dequeue( string $id ) {
+               if ( isset( $this->registered[ $id ] ) ) {
+                       $this->registered[ $id ]['enqueue'] = false;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                unset( $this->enqueued_before_registered[ $module_id ] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         unset( $this->enqueued_before_registered[ $id ] );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Adds the hooks to print the import map, enqueued modules and module
-        * preloads.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Adds the hooks to print the import map, enqueued script modules and script
+        * module preloads.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * It adds the actions to print the enqueued modules and module preloads to
-        * both `wp_head` and `wp_footer` because in classic themes, the modules
-        * used by the theme and plugins will likely be able to be printed in the
-        * `head`, but the ones used by the blocks will need to be enqueued in the
-        * `footer`.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * It adds the actions to print the enqueued script modules and script module
+        * preloads to both `wp_head` and `wp_footer` because in classic themes, the
+        * script modules used by the theme and plugins will likely be able to be
+        * printed in the `head`, but the ones used by the blocks will need to be
+        * enqueued in the `footer`.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * As all modules are deferred and dependencies are handled by the browser,
-        * the order of the modules is not important, but it's still better to print
-        * the ones that are available when the `wp_head` is rendered, so the browser
-        * starts downloading those as soon as possible.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * As all script modules are deferred and dependencies are handled by the
+        * browser, the order of the script modules is not important, but it's still
+        * better to print the ones that are available when the `wp_head` is rendered,
+        * so the browser starts downloading those as soon as possible.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * The import map is also printed in the footer to be able to include the
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * dependencies of all the modules, including the ones printed in the footer.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * dependencies of all the script modules, including the ones printed in the
+        * footer.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function add_hooks() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                add_action( 'wp_head', array( $this, 'print_enqueued_modules' ) );
-               add_action( 'wp_head', array( $this, 'print_module_preloads' ) );
-               add_action( 'wp_footer', array( $this, 'print_enqueued_modules' ) );
-               add_action( 'wp_footer', array( $this, 'print_module_preloads' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         add_action( 'wp_head', array( $this, 'print_enqueued_script_modules' ) );
+               add_action( 'wp_head', array( $this, 'print_script_module_preloads' ) );
+               add_action( 'wp_footer', array( $this, 'print_enqueued_script_modules' ) );
+               add_action( 'wp_footer', array( $this, 'print_script_module_preloads' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">                 add_action( 'wp_footer', array( $this, 'print_import_map' ) );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Prints the enqueued modules using script tags with type="module"
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Prints the enqueued script modules using script tags with type="module"
</ins><span class="cx" style="display: block; padding: 0 10px">          * attributes.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * If a enqueued module has already been printed, it will not be printed again
-        * on subsequent calls to this function.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * If a enqueued script module has already been printed, it will not be
+        * printed again on subsequent calls to this function.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function print_enqueued_modules() {
-               foreach ( $this->get_marked_for_enqueue() as $module_id => $module ) {
-                       if ( false === $module['enqueued'] ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function print_enqueued_script_modules() {
+               foreach ( $this->get_marked_for_enqueue() as $id => $script_module ) {
+                       if ( false === $script_module['enqueued'] ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 // Mark it as enqueued so it doesn't get enqueued again.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                $this->registered[ $module_id ]['enqueued'] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         $this->registered[ $id ]['enqueued'] = true;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                                wp_print_script_tag(
</span><span class="cx" style="display: block; padding: 0 10px">                                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                                'type' => 'module',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                'src'  => $this->get_versioned_src( $module ),
-                                               'id'   => $module_id . '-js-module',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                         'src'  => $this->get_versioned_src( $script_module ),
+                                               'id'   => $id . '-js-module',
</ins><span class="cx" style="display: block; padding: 0 10px">                                         )
</span><span class="cx" style="display: block; padding: 0 10px">                                );
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -214,26 +210,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Prints the the static dependencies of the enqueued modules using link tags
-        * with rel="modulepreload" attributes.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Prints the the static dependencies of the enqueued script modules using
+        * link tags with rel="modulepreload" attributes.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * If a module is marked for enqueue, it will not be preloaded. If a preloaded
-        * module has already been printed, it will not be printed again on subsequent
-        * calls to this function.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * If a script module is marked for enqueue, it will not be preloaded. If a
+        * preloaded script module has already been printed, it will not be printed
+        * again on subsequent calls to this function.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function print_module_preloads() {
-               foreach ( $this->get_dependencies( array_keys( $this->get_marked_for_enqueue() ), array( 'static' ) ) as $module_id => $module ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function print_script_module_preloads() {
+               foreach ( $this->get_dependencies( array_keys( $this->get_marked_for_enqueue() ), array( 'static' ) ) as $id => $script_module ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         // Don't preload if it's marked for enqueue or has already been preloaded.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if ( true !== $module['enqueue'] && false === $module['preloaded'] ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 if ( true !== $script_module['enqueue'] && false === $script_module['preloaded'] ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 // Mark it as preloaded so it doesn't get preloaded again.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                $this->registered[ $module_id ]['preloaded'] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         $this->registered[ $id ]['preloaded'] = true;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                                echo sprintf(
</span><span class="cx" style="display: block; padding: 0 10px">                                        '<link rel="modulepreload" href="%s" id="%s">',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        esc_url( $this->get_versioned_src( $module ) ),
-                                       esc_attr( $module_id . '-js-modulepreload' )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 esc_url( $this->get_versioned_src( $script_module ) ),
+                                       esc_attr( $id . '-js-modulepreload' )
</ins><span class="cx" style="display: block; padding: 0 10px">                                 );
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -262,29 +258,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return array Array with an `imports` key mapping to an array of module identifiers and their respective URLs,
-        *               including the version query.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return array Array with an `imports` key mapping to an array of script module identifiers and their respective
+        *               URLs, including the version query.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        private function get_import_map() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ private function get_import_map(): array {
</ins><span class="cx" style="display: block; padding: 0 10px">                 $imports = array();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                foreach ( $this->get_dependencies( array_keys( $this->get_marked_for_enqueue() ) ) as $module_id => $module ) {
-                       $imports[ $module_id ] = $this->get_versioned_src( $module );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         foreach ( $this->get_dependencies( array_keys( $this->get_marked_for_enqueue() ) ) as $id => $script_module ) {
+                       $imports[ $id ] = $this->get_versioned_src( $script_module );
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">                return array( 'imports' => $imports );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Retrieves the list of modules marked for enqueue.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Retrieves the list of script modules marked for enqueue.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return array Modules marked for enqueue, keyed by module identifier.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return array Script modules marked for enqueue, keyed by script module identifier.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        private function get_marked_for_enqueue() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ private function get_marked_for_enqueue(): array {
</ins><span class="cx" style="display: block; padding: 0 10px">                 $enqueued = array();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                foreach ( $this->registered as $module_id => $module ) {
-                       if ( true === $module['enqueue'] ) {
-                               $enqueued[ $module_id ] = $module;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         foreach ( $this->registered as $id => $script_module ) {
+                       if ( true === $script_module['enqueue'] ) {
+                               $enqueued[ $id ] = $script_module;
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">                return $enqueued;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -291,8 +287,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Retrieves all the dependencies for the given module identifiers, filtered
-        * by import types.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Retrieves all the dependencies for the given script module identifiers,
+        * filtered by import types.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * It will consolidate an array containing a set of unique dependencies based
</span><span class="cx" style="display: block; padding: 0 10px">         * on the requested import types: 'static', 'dynamic', or both. This method is
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -300,26 +296,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array $module_ids   The identifiers of the modules for which to gather dependencies.
-        * @param array $import_types Optional. Import types of dependencies to retrieve: 'static', 'dynamic', or both.
-        *                            Default is both.
-        * @return array List of dependencies, keyed by module identifier.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+        * @param string[] $ids          The identifiers of the script modules for which to gather dependencies.
+        * @param array    $import_types Optional. Import types of dependencies to retrieve: 'static', 'dynamic', or both.
+        *                               Default is both.
+        * @return array List of dependencies, keyed by script module identifier.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        private function get_dependencies( $module_ids, $import_types = array( 'static', 'dynamic' ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ private function get_dependencies( array $ids, array $import_types = array( 'static', 'dynamic' ) ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 return array_reduce(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $module_ids,
-                       function ( $dependency_modules, $module_id ) use ( $import_types ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $ids,
+                       function ( $dependency_script_modules, $id ) use ( $import_types ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 $dependencies = array();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                foreach ( $this->registered[ $module_id ]['dependencies'] as $dependency ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         foreach ( $this->registered[ $id ]['dependencies'] as $dependency ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                         if (
</span><span class="cx" style="display: block; padding: 0 10px">                                        in_array( $dependency['import'], $import_types, true ) &&
</span><span class="cx" style="display: block; padding: 0 10px">                                        isset( $this->registered[ $dependency['id'] ] ) &&
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        ! isset( $dependency_modules[ $dependency['id'] ] )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 ! isset( $dependency_script_modules[ $dependency['id'] ] )
</ins><span class="cx" style="display: block; padding: 0 10px">                                         ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                                $dependencies[ $dependency['id'] ] = $this->registered[ $dependency['id'] ];
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                return array_merge( $dependency_modules, $dependencies, $this->get_dependencies( array_keys( $dependencies ), $import_types ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         return array_merge( $dependency_script_modules, $dependencies, $this->get_dependencies( array_keys( $dependencies ), $import_types ) );
</ins><span class="cx" style="display: block; padding: 0 10px">                         },
</span><span class="cx" style="display: block; padding: 0 10px">                        array()
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -326,7 +323,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Gets the versioned URL for a module src.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Gets the versioned URL for a script module src.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * If $version is set to false, the version number is the currently installed
</span><span class="cx" style="display: block; padding: 0 10px">         * WordPress version. If $version is set to null, no version is added.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -334,19 +331,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array $module The module.
-        * @return string The module src with a version if relevant.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array $script_module The script module.
+        * @return string The script module src with a version if relevant.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        private function get_versioned_src( array $module ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ private function get_versioned_src( array $script_module ): string {
</ins><span class="cx" style="display: block; padding: 0 10px">                 $args = array();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( false === $module['version'] ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( false === $script_module['version'] ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         $args['ver'] = get_bloginfo( 'version' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                } elseif ( null !== $module['version'] ) {
-                       $args['ver'] = $module['version'];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         } elseif ( null !== $script_module['version'] ) {
+                       $args['ver'] = $script_module['version'];
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">                if ( $args ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return add_query_arg( $args, $module['src'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return add_query_arg( $args, $script_module['src'] );
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                return $module['src'];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         return $script_module['src'];
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunksrcwpincludesscriptmodulesphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/script-modules.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/script-modules.php  2024-01-23 01:49:06 UTC (rev 57326)
+++ trunk/src/wp-includes/script-modules.php    2024-01-23 03:32:03 UTC (rev 57327)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,6 +1,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> <?php
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Script Modules API: Module functions
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Script Modules API: Script Module functions
</ins><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18,7 +18,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @return WP_Script_Modules The main WP_Script_Modules instance.
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-function wp_modules() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function wp_script_modules(): WP_Script_Modules {
</ins><span class="cx" style="display: block; padding: 0 10px">         static $instance = null;
</span><span class="cx" style="display: block; padding: 0 10px">        if ( is_null( $instance ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                $instance = new WP_Script_Modules();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -28,89 +28,84 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Registers the module if no module with that module identifier has already
- * been registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Registers the script module if no script module with that script module
+ * identifier has already been registered.
</ins><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param string                                                        $module_id The identifier of the module.
- *                                                                                 Should be unique. It will be used
- *                                                                                 in the final import map.
- * @param string                                                        $src       Full URL of the module, or path of
- *                                                                                 the module relative to the
- *                                                                                 WordPress root directory.
- * @param array<string|array{id: string, import?: 'static'|'dynamic' }> $deps      Optional. An array of module
- *                                                                                 identifiers of the dependencies of
- *                                                                                 this module. The dependencies can
- *                                                                                 be strings or arrays. If they are
- *                                                                                 arrays, they need an `id` key with
- *                                                                                 the module identifier, and can
- *                                                                                 contain an `import` key with either
- *                                                                                 `static` or `dynamic`. By default,
- *                                                                                 dependencies that don't contain an
- *                                                                                 `import` key are considered static.
- * @param string|false|null                                             $version   Optional. String specifying the
- *                                                                                 module version number. Defaults to
- *                                                                                 false. It is added to the URL as a
- *                                                                                 query string for cache busting
- *                                                                                 purposes. If $version is set to
- *                                                                                 false, the version number is the
- *                                                                                 currently installed WordPress
- *                                                                                 version. If $version is set to
- *                                                                                 null, no version is added.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param string            $id       The identifier of the script module. Should be unique. It will be used in the
+ *                                    final import map.
+ * @param string            $src      Optional. Full URL of the script module, or path of the script module relative
+ *                                    to the WordPress root directory. If it is provided and the script module has
+ *                                    not been registered yet, it will be registered.
+ * @param array             $deps     {
+ *                                        Optional. List of dependencies.
+ *
+ *                                        @type string|array $0... {
+ *                                            An array of script module identifiers of the dependencies of this script
+ *                                            module. The dependencies can be strings or arrays. If they are arrays,
+ *                                            they need an `id` key with the script module identifier, and can contain
+ *                                            an `import` key with either `static` or `dynamic`. By default,
+ *                                            dependencies that don't contain an `import` key are considered static.
+ *
+ *                                            @type string $id     The script module identifier.
+ *                                            @type string $import Optional. Import type. May be either `static` or
+ *                                                                 `dynamic`. Defaults to `static`.
+ *                                        }
+ *                                    }
+ * @param string|false|null $version  Optional. String specifying the script module version number. Defaults to false.
+ *                                    It is added to the URL as a query string for cache busting purposes. If $version
+ *                                    is set to false, the version number is the currently installed WordPress version.
+ *                                    If $version is set to null, no version is added.
</ins><span class="cx" style="display: block; padding: 0 10px">  */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-function wp_register_module( $module_id, $src, $deps = array(), $version = false ) {
-       wp_modules()->register( $module_id, $src, $deps, $version );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function wp_register_script_module( string $id, string $src, array $deps = array(), $version = false ) {
+       wp_script_modules()->register( $id, $src, $deps, $version );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Marks the module to be enqueued in the page.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Marks the script module to be enqueued in the page.
</ins><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * If a src is provided and the module has not been registered yet, it will be
- * registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * If a src is provided and the script module has not been registered yet, it
+ * will be registered.
</ins><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param string                                                        $module_id The identifier of the module.
- *                                                                                 Should be unique. It will be used
- *                                                                                 in the final import map.
- * @param string                                                        $src       Optional. Full URL of the module,
- *                                                                                 or path of the module relative to
- *                                                                                 the WordPress root directory. If
- *                                                                                 it is provided and the module has
- *                                                                                 not been registered yet, it will be
- *                                                                                 registered.
- * @param array<string|array{id: string, import?: 'static'|'dynamic' }> $deps      Optional. An array of module
- *                                                                                 identifiers of the dependencies of
- *                                                                                 this module. The dependencies can
- *                                                                                 be strings or arrays. If they are
- *                                                                                 arrays, they need an `id` key with
- *                                                                                 the module identifier, and can
- *                                                                                 contain an `import` key with either
- *                                                                                 `static` or `dynamic`. By default,
- *                                                                                 dependencies that don't contain an
- *                                                                                 `import` key are considered static.
- * @param string|false|null                                             $version   Optional. String specifying the
- *                                                                                 module version number. Defaults to
- *                                                                                 false. It is added to the URL as a
- *                                                                                 query string for cache busting
- *                                                                                 purposes. If $version is set to
- *                                                                                 false, the version number is the
- *                                                                                 currently installed WordPress
- *                                                                                 version. If $version is set to
- *                                                                                 null, no version is added.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param string            $id       The identifier of the script module. Should be unique. It will be used in the
+ *                                    final import map.
+ * @param string            $src      Optional. Full URL of the script module, or path of the script module relative
+ *                                    to the WordPress root directory. If it is provided and the script module has
+ *                                    not been registered yet, it will be registered.
+ * @param array             $deps     {
+ *                                        Optional. List of dependencies.
+ *
+ *                                        @type string|array $0... {
+ *                                            An array of script module identifiers of the dependencies of this script
+ *                                            module. The dependencies can be strings or arrays. If they are arrays,
+ *                                            they need an `id` key with the script module identifier, and can contain
+ *                                            an `import` key with either `static` or `dynamic`. By default,
+ *                                            dependencies that don't contain an `import` key are considered static.
+ *
+ *                                            @type string $id     The script module identifier.
+ *                                            @type string $import Optional. Import type. May be either `static` or
+ *                                                                 `dynamic`. Defaults to `static`.
+ *                                        }
+ *                                    }
+ * @param string|false|null $version  Optional. String specifying the script module version number. Defaults to false.
+ *                                    It is added to the URL as a query string for cache busting purposes. If $version
+ *                                    is set to false, the version number is the currently installed WordPress version.
+ *                                    If $version is set to null, no version is added.
</ins><span class="cx" style="display: block; padding: 0 10px">  */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-function wp_enqueue_module( $module_id, $src = '', $deps = array(), $version = false ) {
-       wp_modules()->enqueue( $module_id, $src, $deps, $version );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function wp_enqueue_script_module( string $id, string $src = '', array $deps = array(), $version = false ) {
+       wp_script_modules()->enqueue( $id, $src, $deps, $version );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Unmarks the module so it is no longer enqueued in the page.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Unmarks the script module so it is no longer enqueued in the page.
</ins><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param string $module_id The identifier of the module.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param string $id The identifier of the script module.
</ins><span class="cx" style="display: block; padding: 0 10px">  */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-function wp_dequeue_module( $module_id ) {
-       wp_modules()->dequeue( $module_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function wp_dequeue_script_module( string $id ) {
+       wp_script_modules()->dequeue( $id );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunktestsphpunittestsscriptmoduleswpScriptModulesphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/phpunit/tests/script-modules/wpScriptModules.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/script-modules/wpScriptModules.php      2024-01-23 01:49:06 UTC (rev 57326)
+++ trunk/tests/phpunit/tests/script-modules/wpScriptModules.php        2024-01-23 03:32:03 UTC (rev 57327)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17,7 +17,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @var WP_Script_Modules
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        protected $modules;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ protected $script_modules;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Set up.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,90 +24,84 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function set_up() {
</span><span class="cx" style="display: block; padding: 0 10px">                parent::set_up();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules = new WP_Script_Modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules = new WP_Script_Modules();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Gets a list of the enqueued modules.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Gets a list of the enqueued script modules.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return array Enqueued module URLs, keyed by module identifier.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return array Enqueued script module URLs, keyed by script module identifier.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function get_enqueued_modules() {
-               $modules_markup   = get_echo( array( $this->modules, 'print_enqueued_modules' ) );
-               $p                = new WP_HTML_Tag_Processor( $modules_markup );
-               $enqueued_modules = array();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function get_enqueued_script_modules() {
+               $script_modules_markup   = get_echo( array( $this->script_modules, 'print_enqueued_script_modules' ) );
+               $p                       = new WP_HTML_Tag_Processor( $script_modules_markup );
+               $enqueued_script_modules = array();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                while ( $p->next_tag(
-                       array(
-                               'tag'    => 'SCRIPT',
-                               'import' => 'module',
-                       )
-               ) ) {
-                       $id                      = preg_replace( '/-js-module$/', '', $p->get_attribute( 'id' ) );
-                       $enqueued_modules[ $id ] = $p->get_attribute( 'src' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         while ( $p->next_tag( array( 'tag' => 'SCRIPT' ) ) ) {
+                       if ( 'module' === $p->get_attribute( 'type' ) ) {
+                               $id                             = preg_replace( '/-js-module$/', '', $p->get_attribute( 'id' ) );
+                               $enqueued_script_modules[ $id ] = $p->get_attribute( 'src' );
+                       }
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                return $enqueued_modules;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         return $enqueued_script_modules;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Gets the modules listed in the import map.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Gets the script modules listed in the import map.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return array Import map entry URLs, keyed by module identifier.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return array Import map entry URLs, keyed by script module identifier.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_import_map() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $import_map_markup = get_echo( array( $this->modules, 'print_import_map' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $import_map_markup = get_echo( array( $this->script_modules, 'print_import_map' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">                 preg_match( '/<script type="importmap" id="wp-importmap">.*?(\{.*\}).*?<\/script>/s', $import_map_markup, $import_map_string );
</span><span class="cx" style="display: block; padding: 0 10px">                return json_decode( $import_map_string[1], true )['imports'];
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Gets a list of preloaded modules.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Gets a list of preloaded script modules.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return array Preloaded module URLs, keyed by module identifier.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return array Preloaded script module URLs, keyed by script module identifier.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function get_preloaded_modules() {
-               $preloaded_markup  = get_echo( array( $this->modules, 'print_module_preloads' ) );
-               $p                 = new WP_HTML_Tag_Processor( $preloaded_markup );
-               $preloaded_modules = array();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function get_preloaded_script_modules() {
+               $preloaded_markup         = get_echo( array( $this->script_modules, 'print_script_module_preloads' ) );
+               $p                        = new WP_HTML_Tag_Processor( $preloaded_markup );
+               $preloaded_script_modules = array();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                while ( $p->next_tag(
-                       array(
-                               'tag' => 'LINK',
-                               'rel' => 'modulepreload',
-                       )
-               ) ) {
-                       $id                       = preg_replace( '/-js-modulepreload$/', '', $p->get_attribute( 'id' ) );
-                       $preloaded_modules[ $id ] = $p->get_attribute( 'href' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         while ( $p->next_tag( array( 'tag' => 'LINK' ) ) ) {
+                       if ( 'modulepreload' === $p->get_attribute( 'rel' ) ) {
+                               $id                              = preg_replace( '/-js-modulepreload$/', '', $p->get_attribute( 'id' ) );
+                               $preloaded_script_modules[ $id ] = $p->get_attribute( 'href' );
+                       }
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                return $preloaded_modules;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         return $preloaded_script_modules;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Tests that a module gets enqueued correctly after being registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Tests that a script module gets enqueued correctly after being registered.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function test_wp_enqueue_module() {
-               $this->modules->register( 'foo', '/foo.js' );
-               $this->modules->register( 'bar', '/bar.js' );
-               $this->modules->enqueue( 'foo' );
-               $this->modules->enqueue( 'bar' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueue_script_module() {
+               $this->script_modules->register( 'foo', '/foo.js' );
+               $this->script_modules->register( 'bar', '/bar.js' );
+               $this->script_modules->enqueue( 'foo' );
+               $this->script_modules->enqueue( 'bar' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertCount( 2, $enqueued_modules );
-               $this->assertStringStartsWith( '/foo.js', $enqueued_modules['foo'] );
-               $this->assertStringStartsWith( '/bar.js', $enqueued_modules['bar'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertCount( 2, $enqueued_script_modules );
+               $this->assertStringStartsWith( '/foo.js', $enqueued_script_modules['foo'] );
+               $this->assertStringStartsWith( '/bar.js', $enqueued_script_modules['bar'] );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        * Tests that a module can be dequeued after being enqueued.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that a script module can be dequeued after being enqueued.
</ins><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">        * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">        *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -114,47 +108,47 @@
</span><span class="cx" style="display: block; padding: 0 10px">        * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px">        * @covers ::enqueue()
</span><span class="cx" style="display: block; padding: 0 10px">        * @covers ::dequeue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function test_wp_dequeue_module() {
-               $this->modules->register( 'foo', '/foo.js' );
-               $this->modules->register( 'bar', '/bar.js' );
-               $this->modules->enqueue( 'foo' );
-               $this->modules->enqueue( 'bar' );
-               $this->modules->dequeue( 'foo' ); // Dequeued.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_dequeue_script_module() {
+               $this->script_modules->register( 'foo', '/foo.js' );
+               $this->script_modules->register( 'bar', '/bar.js' );
+               $this->script_modules->enqueue( 'foo' );
+               $this->script_modules->enqueue( 'bar' );
+               $this->script_modules->dequeue( 'foo' ); // Dequeued.
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertCount( 1, $enqueued_modules );
-               $this->assertFalse( isset( $enqueued_modules['foo'] ) );
-               $this->assertTrue( isset( $enqueued_modules['bar'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertCount( 1, $enqueued_script_modules );
+               $this->assertFalse( isset( $enqueued_script_modules['foo'] ) );
+               $this->assertTrue( isset( $enqueued_script_modules['bar'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        * Tests that a module can be enqueued before it is registered, and will be
-       * handled correctly once registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that a script module can be enqueued before it is registered, and will
+       * be handled correctly once registered.
</ins><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">        * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">        *
</span><span class="cx" style="display: block; padding: 0 10px">        * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px">        * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function test_wp_enqueue_module_works_before_register() {
-               $this->modules->enqueue( 'foo' );
-               $this->modules->register( 'foo', '/foo.js' );
-               $this->modules->enqueue( 'bar' ); // Not registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueue_script_module_works_before_register() {
+               $this->script_modules->enqueue( 'foo' );
+               $this->script_modules->register( 'foo', '/foo.js' );
+               $this->script_modules->enqueue( 'bar' ); // Not registered.
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertCount( 1, $enqueued_modules );
-               $this->assertStringStartsWith( '/foo.js', $enqueued_modules['foo'] );
-               $this->assertFalse( isset( $enqueued_modules['bar'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertCount( 1, $enqueued_script_modules );
+               $this->assertStringStartsWith( '/foo.js', $enqueued_script_modules['foo'] );
+               $this->assertFalse( isset( $enqueued_script_modules['bar'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Tests that a module can be dequeued before it is registered and ensures
-        * that it is not enqueued after registration.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Tests that a script module can be dequeued before it is registered and
+        * ensures that it is not enqueued after registration.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -161,25 +155,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::dequeue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function test_wp_dequeue_module_works_before_register() {
-               $this->modules->enqueue( 'foo' );
-               $this->modules->enqueue( 'bar' );
-               $this->modules->dequeue( 'foo' );
-               $this->modules->register( 'foo', '/foo.js' );
-               $this->modules->register( 'bar', '/bar.js' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_dequeue_script_module_works_before_register() {
+               $this->script_modules->enqueue( 'foo' );
+               $this->script_modules->enqueue( 'bar' );
+               $this->script_modules->dequeue( 'foo' );
+               $this->script_modules->register( 'foo', '/foo.js' );
+               $this->script_modules->register( 'bar', '/bar.js' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertCount( 1, $enqueued_modules );
-               $this->assertFalse( isset( $enqueued_modules['foo'] ) );
-               $this->assertTrue( isset( $enqueued_modules['bar'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertCount( 1, $enqueued_script_modules );
+               $this->assertFalse( isset( $enqueued_script_modules['foo'] ) );
+               $this->assertTrue( isset( $enqueued_script_modules['bar'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Tests that dependencies for a registered module are added to the import map
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * when the module is enqueued.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * when the script module is enqueued.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -188,10 +182,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::print_import_map()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_import_map_dependencies() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register( 'foo', '/foo.js', array( 'dep' ) );
-               $this->modules->register( 'dep', '/dep.js' );
-               $this->modules->register( 'no-dep', '/no-dep.js' );
-               $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register( 'foo', '/foo.js', array( 'dep' ) );
+               $this->script_modules->register( 'dep', '/dep.js' );
+               $this->script_modules->register( 'no-dep', '/no-dep.js' );
+               $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $import_map = $this->get_import_map();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -202,7 +196,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Tests that dependencies are not duplicated in the import map when multiple
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * modules require the same dependency.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * script modules require the same dependency.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -211,11 +205,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::print_import_map()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_import_map_no_duplicate_dependencies() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register( 'foo', '/foo.js', array( 'dep' ) );
-               $this->modules->register( 'bar', '/bar.js', array( 'dep' ) );
-               $this->modules->register( 'dep', '/dep.js' );
-               $this->modules->enqueue( 'foo' );
-               $this->modules->enqueue( 'bar' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register( 'foo', '/foo.js', array( 'dep' ) );
+               $this->script_modules->register( 'bar', '/bar.js', array( 'dep' ) );
+               $this->script_modules->register( 'dep', '/dep.js' );
+               $this->script_modules->enqueue( 'foo' );
+               $this->script_modules->enqueue( 'bar' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $import_map = $this->get_import_map();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -234,7 +228,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::print_import_map()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_import_map_recursive_dependencies() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'foo',
</span><span class="cx" style="display: block; padding: 0 10px">                        '/foo.js',
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -245,7 +239,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                ),
</span><span class="cx" style="display: block; padding: 0 10px">                        )
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'static-dep',
</span><span class="cx" style="display: block; padding: 0 10px">                        '/static-dep.js',
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -259,11 +253,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                ),
</span><span class="cx" style="display: block; padding: 0 10px">                        )
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register( 'dynamic-dep', '/dynamic-dep.js' );
-               $this->modules->register( 'nested-static-dep', '/nested-static-dep.js' );
-               $this->modules->register( 'nested-dynamic-dep', '/nested-dynamic-dep.js' );
-               $this->modules->register( 'no-dep', '/no-dep.js' );
-               $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register( 'dynamic-dep', '/dynamic-dep.js' );
+               $this->script_modules->register( 'nested-static-dep', '/nested-static-dep.js' );
+               $this->script_modules->register( 'nested-dynamic-dep', '/nested-dynamic-dep.js' );
+               $this->script_modules->register( 'no-dep', '/no-dep.js' );
+               $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $import_map = $this->get_import_map();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -285,10 +279,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::print_import_map()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_import_map_doesnt_print_if_no_dependencies() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register( 'foo', '/foo.js' ); // No deps.
-               $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register( 'foo', '/foo.js' ); // No deps.
+               $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $import_map_markup = get_echo( array( $this->modules, 'print_import_map' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $import_map_markup = get_echo( array( $this->script_modules, 'print_import_map' ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertEmpty( $import_map_markup );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -301,10 +295,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_module_preloads()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_script_module_preloads()
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_enqueue_preloaded_static_dependencies() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'foo',
</span><span class="cx" style="display: block; padding: 0 10px">                        '/foo.js',
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -315,7 +309,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                ),
</span><span class="cx" style="display: block; padding: 0 10px">                        )
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'static-dep',
</span><span class="cx" style="display: block; padding: 0 10px">                        '/static-dep.js',
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -329,20 +323,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                ),
</span><span class="cx" style="display: block; padding: 0 10px">                        )
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register( 'dynamic-dep', '/dynamic-dep.js' );
-               $this->modules->register( 'nested-static-dep', '/nested-static-dep.js' );
-               $this->modules->register( 'nested-dynamic-dep', '/nested-dynamic-dep.js' );
-               $this->modules->register( 'no-dep', '/no-dep.js' );
-               $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register( 'dynamic-dep', '/dynamic-dep.js' );
+               $this->script_modules->register( 'nested-static-dep', '/nested-static-dep.js' );
+               $this->script_modules->register( 'nested-dynamic-dep', '/nested-dynamic-dep.js' );
+               $this->script_modules->register( 'no-dep', '/no-dep.js' );
+               $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $preloaded_modules = $this->get_preloaded_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $preloaded_script_modules = $this->get_preloaded_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertCount( 2, $preloaded_modules );
-               $this->assertStringStartsWith( '/static-dep.js', $preloaded_modules['static-dep'] );
-               $this->assertStringStartsWith( '/nested-static-dep.js', $preloaded_modules['nested-static-dep'] );
-               $this->assertFalse( isset( $preloaded_modules['no-dep'] ) );
-               $this->assertFalse( isset( $preloaded_modules['dynamic-dep'] ) );
-               $this->assertFalse( isset( $preloaded_modules['nested-dynamic-dep'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertCount( 2, $preloaded_script_modules );
+               $this->assertStringStartsWith( '/static-dep.js', $preloaded_script_modules['static-dep'] );
+               $this->assertStringStartsWith( '/nested-static-dep.js', $preloaded_script_modules['nested-static-dep'] );
+               $this->assertFalse( isset( $preloaded_script_modules['no-dep'] ) );
+               $this->assertFalse( isset( $preloaded_script_modules['dynamic-dep'] ) );
+               $this->assertFalse( isset( $preloaded_script_modules['nested-dynamic-dep'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -352,10 +346,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_module_preloads()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_script_module_preloads()
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_dont_preload_static_dependencies_of_dynamic_dependencies() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'foo',
</span><span class="cx" style="display: block; padding: 0 10px">                        '/foo.js',
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -366,32 +360,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                ),
</span><span class="cx" style="display: block; padding: 0 10px">                        )
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register( 'static-dep', '/static-dep.js' );
-               $this->modules->register( 'dynamic-dep', '/dynamic-dep.js', array( 'nested-static-dep' ) );
-               $this->modules->register( 'nested-static-dep', '/nested-static-dep.js' );
-               $this->modules->register( 'no-dep', '/no-dep.js' );
-               $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register( 'static-dep', '/static-dep.js' );
+               $this->script_modules->register( 'dynamic-dep', '/dynamic-dep.js', array( 'nested-static-dep' ) );
+               $this->script_modules->register( 'nested-static-dep', '/nested-static-dep.js' );
+               $this->script_modules->register( 'no-dep', '/no-dep.js' );
+               $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $preloaded_modules = $this->get_preloaded_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $preloaded_script_modules = $this->get_preloaded_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertCount( 1, $preloaded_modules );
-               $this->assertStringStartsWith( '/static-dep.js', $preloaded_modules['static-dep'] );
-               $this->assertFalse( isset( $preloaded_modules['dynamic-dep'] ) );
-               $this->assertFalse( isset( $preloaded_modules['nested-static-dep'] ) );
-               $this->assertFalse( isset( $preloaded_modules['no-dep'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertCount( 1, $preloaded_script_modules );
+               $this->assertStringStartsWith( '/static-dep.js', $preloaded_script_modules['static-dep'] );
+               $this->assertFalse( isset( $preloaded_script_modules['dynamic-dep'] ) );
+               $this->assertFalse( isset( $preloaded_script_modules['nested-static-dep'] ) );
+               $this->assertFalse( isset( $preloaded_script_modules['no-dep'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Tests that preloaded dependencies don't include enqueued modules.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Tests that preloaded dependencies don't include enqueued script modules.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_module_preloads()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_script_module_preloads()
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function test_wp_preloaded_dependencies_filter_enqueued_modules() {
-               $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_preloaded_dependencies_filter_enqueued_script_modules() {
+               $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'foo',
</span><span class="cx" style="display: block; padding: 0 10px">                        '/foo.js',
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -399,21 +393,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                'enqueued-dep',
</span><span class="cx" style="display: block; padding: 0 10px">                        )
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register( 'dep', '/dep.js' );
-               $this->modules->register( 'enqueued-dep', '/enqueued-dep.js' );
-               $this->modules->enqueue( 'foo' );
-               $this->modules->enqueue( 'enqueued-dep' ); // Not preloaded.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register( 'dep', '/dep.js' );
+               $this->script_modules->register( 'enqueued-dep', '/enqueued-dep.js' );
+               $this->script_modules->enqueue( 'foo' );
+               $this->script_modules->enqueue( 'enqueued-dep' ); // Not preloaded.
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $preloaded_modules = $this->get_preloaded_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $preloaded_script_modules = $this->get_preloaded_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertCount( 1, $preloaded_modules );
-               $this->assertTrue( isset( $preloaded_modules['dep'] ) );
-               $this->assertFalse( isset( $preloaded_modules['enqueued-dep'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertCount( 1, $preloaded_script_modules );
+               $this->assertTrue( isset( $preloaded_script_modules['dep'] ) );
+               $this->assertFalse( isset( $preloaded_script_modules['enqueued-dep'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Tests that enqueued modules with dependants correctly add both the module
-        * and its dependencies to the import map.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Tests that enqueued script modules with dependants correctly add both the
+        * script module and its dependencies to the import map.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -421,8 +415,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::print_import_map()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function test_wp_enqueued_modules_with_dependants_add_import_map() {
-               $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueued_script_modules_with_dependants_add_import_map() {
+               $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'foo',
</span><span class="cx" style="display: block; padding: 0 10px">                        '/foo.js',
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -430,10 +424,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                'enqueued-dep',
</span><span class="cx" style="display: block; padding: 0 10px">                        )
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register( 'dep', '/dep.js' );
-               $this->modules->register( 'enqueued-dep', '/enqueued-dep.js' );
-               $this->modules->enqueue( 'foo' );
-               $this->modules->enqueue( 'enqueued-dep' ); // Also in the import map.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register( 'dep', '/dep.js' );
+               $this->script_modules->register( 'enqueued-dep', '/enqueued-dep.js' );
+               $this->script_modules->enqueue( 'foo' );
+               $this->script_modules->enqueue( 'enqueued-dep' ); // Also in the import map.
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $import_map = $this->get_import_map();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -451,7 +445,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::get_versioned_src()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_get_versioned_src() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $get_versioned_src = new ReflectionMethod( $this->modules, 'get_versioned_src' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $get_versioned_src = new ReflectionMethod( $this->script_modules, 'get_versioned_src' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $get_versioned_src->setAccessible( true );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $module_with_version = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -459,7 +453,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        'version' => '1.0',
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $result = $get_versioned_src->invoke( $this->modules, $module_with_version );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $result = $get_versioned_src->invoke( $this->script_modules, $module_with_version );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertEquals( 'http://example.com/module.js?ver=1.0', $result );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $module_without_version = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -467,7 +461,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        'version' => null,
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $result = $get_versioned_src->invoke( $this->modules, $module_without_version );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $result = $get_versioned_src->invoke( $this->script_modules, $module_without_version );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertEquals( 'http://example.com/module.js', $result );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $module_with_wp_version = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -475,7 +469,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        'version' => false,
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $result = $get_versioned_src->invoke( $this->modules, $module_with_wp_version );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $result = $get_versioned_src->invoke( $this->script_modules, $module_with_wp_version );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertEquals( 'http://example.com/module.js?ver=' . get_bloginfo( 'version' ), $result );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $module_with_existing_query_string = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -483,25 +477,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        'version' => '1.0',
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $result = $get_versioned_src->invoke( $this->modules, $module_with_existing_query_string );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $result = $get_versioned_src->invoke( $this->script_modules, $module_with_existing_query_string );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertEquals( 'http://example.com/module.js?foo=bar&ver=1.0', $result );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Tests that the correct version is propagated to the import map, enqueued
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * modules and preloaded modules.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * script modules and preloaded script modules.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px">          * @covers ::print_import_map()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_module_preloads()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_script_module_preloads()
</ins><span class="cx" style="display: block; padding: 0 10px">          * @covers ::get_version_query_string()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_version_is_propagated_correctly() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'foo',
</span><span class="cx" style="display: block; padding: 0 10px">                        '/foo.js',
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -509,160 +503,162 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        ),
</span><span class="cx" style="display: block; padding: 0 10px">                        '1.0'
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register( 'dep', '/dep.js', array(), '2.0' );
-               $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register( 'dep', '/dep.js', array(), '2.0' );
+               $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
-               $this->assertEquals( '/foo.js?ver=1.0', $enqueued_modules['foo'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
+               $this->assertEquals( '/foo.js?ver=1.0', $enqueued_script_modules['foo'] );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $import_map = $this->get_import_map();
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertEquals( '/dep.js?ver=2.0', $import_map['dep'] );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $preloaded_modules = $this->get_preloaded_modules();
-               $this->assertEquals( '/dep.js?ver=2.0', $preloaded_modules['dep'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $preloaded_script_modules = $this->get_preloaded_script_modules();
+               $this->assertEquals( '/dep.js?ver=2.0', $preloaded_script_modules['dep'] );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Tests that it can print the enqueued modules multiple times, and it will
-        * only print the modules that have not been printed before.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Tests that it can print the enqueued script modules multiple times, and it
+        * will only print the script modules that have not been printed before.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function test_print_enqueued_modules_can_be_called_multiple_times() {
-               $this->modules->register( 'foo', '/foo.js' );
-               $this->modules->register( 'bar', '/bar.js' );
-               $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_print_enqueued_script_modules_can_be_called_multiple_times() {
+               $this->script_modules->register( 'foo', '/foo.js' );
+               $this->script_modules->register( 'bar', '/bar.js' );
+               $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
-               $this->assertCount( 1, $enqueued_modules );
-               $this->assertTrue( isset( $enqueued_modules['foo'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
+               $this->assertCount( 1, $enqueued_script_modules );
+               $this->assertTrue( isset( $enqueued_script_modules['foo'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->enqueue( 'bar' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->enqueue( 'bar' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
-               $this->assertCount( 1, $enqueued_modules );
-               $this->assertTrue( isset( $enqueued_modules['bar'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
+               $this->assertCount( 1, $enqueued_script_modules );
+               $this->assertTrue( isset( $enqueued_script_modules['bar'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
-               $this->assertCount( 0, $enqueued_modules );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
+               $this->assertCount( 0, $enqueued_script_modules );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Tests that it can print the preloaded modules multiple times, and it will
-        * only print the modules that have not been printed before.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Tests that it can print the preloaded script modules multiple times, and it
+        * will only print the script modules that have not been printed before.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_module_preloads()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_script_module_preloads()
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function test_print_preloaded_modules_can_be_called_multiple_times() {
-               $this->modules->register( 'foo', '/foo.js', array( 'static-dep-1', 'static-dep-2' ) );
-               $this->modules->register( 'bar', '/bar.js', array( 'static-dep-3' ) );
-               $this->modules->register( 'static-dep-1', '/static-dep-1.js' );
-               $this->modules->register( 'static-dep-3', '/static-dep-3.js' );
-               $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_print_preloaded_script_modules_can_be_called_multiple_times() {
+               $this->script_modules->register( 'foo', '/foo.js', array( 'static-dep-1', 'static-dep-2' ) );
+               $this->script_modules->register( 'bar', '/bar.js', array( 'static-dep-3' ) );
+               $this->script_modules->register( 'static-dep-1', '/static-dep-1.js' );
+               $this->script_modules->register( 'static-dep-3', '/static-dep-3.js' );
+               $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $preloaded_modules = $this->get_preloaded_modules();
-               $this->assertCount( 1, $preloaded_modules );
-               $this->assertTrue( isset( $preloaded_modules['static-dep-1'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $preloaded_script_modules = $this->get_preloaded_script_modules();
+               $this->assertCount( 1, $preloaded_script_modules );
+               $this->assertTrue( isset( $preloaded_script_modules['static-dep-1'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->register( 'static-dep-2', '/static-dep-2.js' );
-               $this->modules->enqueue( 'bar' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->register( 'static-dep-2', '/static-dep-2.js' );
+               $this->script_modules->enqueue( 'bar' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $preloaded_modules = $this->get_preloaded_modules();
-               $this->assertCount( 2, $preloaded_modules );
-               $this->assertTrue( isset( $preloaded_modules['static-dep-2'] ) );
-               $this->assertTrue( isset( $preloaded_modules['static-dep-3'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $preloaded_script_modules = $this->get_preloaded_script_modules();
+               $this->assertCount( 2, $preloaded_script_modules );
+               $this->assertTrue( isset( $preloaded_script_modules['static-dep-2'] ) );
+               $this->assertTrue( isset( $preloaded_script_modules['static-dep-3'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $preloaded_modules = $this->get_preloaded_modules();
-               $this->assertCount( 0, $preloaded_modules );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $preloaded_script_modules = $this->get_preloaded_script_modules();
+               $this->assertCount( 0, $preloaded_script_modules );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Tests that a module is not registered when calling enqueue without a valid
-        * src.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Tests that a script module is not registered when calling enqueue without a
+        * valid src.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function test_wp_enqueue_module_doesnt_register_without_a_valid_src() {
-               $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueue_script_module_doesnt_register_without_a_valid_src() {
+               $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertCount( 0, $enqueued_modules );
-               $this->assertFalse( isset( $enqueued_modules['foo'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertCount( 0, $enqueued_script_modules );
+               $this->assertFalse( isset( $enqueued_script_modules['foo'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Tests that a module is registered when calling enqueue with a valid src.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Tests that a script module is registered when calling enqueue with a valid
+        * src.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function test_wp_enqueue_module_registers_with_valid_src() {
-               $this->modules->enqueue( 'foo', '/foo.js' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueue_script_module_registers_with_valid_src() {
+               $this->script_modules->enqueue( 'foo', '/foo.js' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertCount( 1, $enqueued_modules );
-               $this->assertStringStartsWith( '/foo.js', $enqueued_modules['foo'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertCount( 1, $enqueued_script_modules );
+               $this->assertStringStartsWith( '/foo.js', $enqueued_script_modules['foo'] );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Tests that a module is registered when calling enqueue with a valid src the
-        * second time.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Tests that a script module is registered when calling enqueue with a valid
+        * src the second time.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function test_wp_enqueue_module_registers_with_valid_src_the_second_time() {
-               $this->modules->enqueue( 'foo' ); // Not valid src.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueue_script_module_registers_with_valid_src_the_second_time() {
+               $this->script_modules->enqueue( 'foo' ); // Not valid src.
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertCount( 0, $enqueued_modules );
-               $this->assertFalse( isset( $enqueued_modules['foo'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertCount( 0, $enqueued_script_modules );
+               $this->assertFalse( isset( $enqueued_script_modules['foo'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->modules->enqueue( 'foo', '/foo.js' ); // Valid src.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->script_modules->enqueue( 'foo', '/foo.js' ); // Valid src.
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertCount( 1, $enqueued_modules );
-               $this->assertStringStartsWith( '/foo.js', $enqueued_modules['foo'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertCount( 1, $enqueued_script_modules );
+               $this->assertStringStartsWith( '/foo.js', $enqueued_script_modules['foo'] );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Tests that a module is registered with all the params when calling enqueue.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Tests that a script module is registered with all the params when calling
+        * enqueue.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px">          * @covers ::print_import_map()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function test_wp_enqueue_module_registers_all_params() {
-               $this->modules->enqueue( 'foo', '/foo.js', array( 'dep' ), '1.0' );
-               $this->modules->register( 'dep', '/dep.js' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueue_script_module_registers_all_params() {
+               $this->script_modules->enqueue( 'foo', '/foo.js', array( 'dep' ), '1.0' );
+               $this->script_modules->register( 'dep', '/dep.js' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $enqueued_modules = $this->get_enqueued_modules();
-               $import_map       = $this->get_import_map();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $enqueued_script_modules = $this->get_enqueued_script_modules();
+               $import_map              = $this->get_import_map();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertCount( 1, $enqueued_modules );
-               $this->assertEquals( '/foo.js?ver=1.0', $enqueued_modules['foo'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertCount( 1, $enqueued_script_modules );
+               $this->assertEquals( '/foo.js?ver=1.0', $enqueued_script_modules['foo'] );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertCount( 1, $import_map );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertStringStartsWith( '/dep.js', $import_map['dep'] );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span></span></pre>
</div>
</div>

</body>
</html>