diff --git a/core/core.libraries.yml b/core/core.libraries.yml
index ce02ac4..2d7b077 100644
--- a/core/core.libraries.yml
+++ b/core/core.libraries.yml
@@ -33,8 +33,7 @@ drupal:
   version: VERSION
   js:
     misc/drupal.js: { weight: -18 }
-  dependencies:
-    - core/domready
+    misc/init.js: { scope: footer, attributes: { defer: true } }
 
 drupalSettings:
   version: VERSION
diff --git a/core/misc/drupal.js b/core/misc/drupal.js
index 458d385..6782153 100644
--- a/core/misc/drupal.js
+++ b/core/misc/drupal.js
@@ -13,7 +13,7 @@ if (window.jQuery) {
 
 // JavaScript should be made compatible with libraries other than jQuery by
 // wrapping it in an anonymous closure.
-(function (domready, Drupal, drupalSettings) {
+(function (Drupal, drupalSettings) {
 
   "use strict";
 
@@ -99,9 +99,6 @@ if (window.jQuery) {
     }
   };
 
-  // Attach all behaviors.
-  domready(function () { Drupal.attachBehaviors(document, drupalSettings); });
-
   /**
    * Detach registered behaviors from a page element.
    *
@@ -427,4 +424,4 @@ if (window.jQuery) {
     return '<em class="placeholder">' + Drupal.checkPlain(str) + '</em>';
   };
 
-})(domready, Drupal, window.drupalSettings);
+})(Drupal, window.drupalSettings);
diff --git a/core/misc/init.js b/core/misc/init.js
new file mode 100644
index 0000000..2390fb2
--- /dev/null
+++ b/core/misc/init.js
@@ -0,0 +1 @@
+Drupal.attachBehaviors(document, window.drupalSettings);
