diff --git a/core/modules/node/content_types.js b/core/modules/node/content_types.js
index f6a545b..08438f3 100644
--- a/core/modules/node/content_types.js
+++ b/core/modules/node/content_types.js
@@ -3,52 +3,55 @@
  * Javascript for the node content editing form.
  */
 
-(function ($) {
+(function ($, Drupal, drupalSettings) {
 
 "use strict";
 
 Drupal.behaviors.contentTypes = {
-  attach: function (context) {
+  attach: function (context, settings) {
     var $context = $(context);
     // Provide the vertical tab summaries.
-    $context.find('#edit-submission').drupalSetSummary(function(context) {
-      var vals = [];
-      vals.push(Drupal.checkPlain($(context).find('#edit-title-label').val()) || Drupal.t('Requires a title'));
-      return vals.join(', ');
-    });
-    $context.find('#edit-workflow').drupalSetSummary(function(context) {
-      var vals = [];
-      $(context).find("input[name^='settings[node][options']:checked").parent().each(function() {
-        vals.push(Drupal.checkPlain($(this).text()));
+    $context.once('contentTypes', function () {
+
+      $('#edit-submission', context).drupalSetSummary(function (context) {
+        var vals = [];
+        vals.push(Drupal.checkPlain($context.find('#edit-title-label').val()) || Drupal.t('Requires a title'));
+        return vals.join(', ');
       });
-      if (!$(context).find('#edit-settings-node-options-status').is(':checked')) {
-        vals.unshift(Drupal.t('Not published'));
-      }
-      return vals.join(', ');
-    });
-    $('#edit-language', context).drupalSetSummary(function(context) {
-      var vals = [];
+      $('#edit-workflow', context).drupalSetSummary(function (context) {
+        var vals = [];
+        $(context).find("input[name^='settings[node][options']").filter(':checked').parent().each(function() {
+          vals.push(Drupal.checkPlain($(this).text()));
+        });
+        if (!$(context).find('#edit-settings-node-options-status').prop('checked')) {
+          vals.unshift(Drupal.t('Not published'));
+        }
+        return vals.join(', ');
+      });
+      $('#edit-language', context).drupalSetSummary(function (context) {
+        var vals = [];
 
-      vals.push($(".form-item-language-configuration-langcode select option:selected", context).text());
+        vals.push($(".form-item-language-configuration-langcode select option", context).filter(':selected'.text());
 
-      $('input:checked', context).next('label').each(function() {
-        vals.push(Drupal.checkPlain($(this).text()));
-      });
+        $('input', context).filter(':checked').next('label').each(function () {
+          vals.push(Drupal.checkPlain($(this).text()));
+        });
 
-      return vals.join(', ');
-    });
-    $context.find('#edit-display').drupalSetSummary(function(context) {
-      var vals = [];
-      var $context = $(context);
-      $context.find('input:checked').next('label').each(function() {
-        vals.push(Drupal.checkPlain($(this).text()));
+        return vals.join(', ');
+      });
+      $('#edit-display', context).drupalSetSummary(function (context) {
+        var vals = [];
+        var $context = $(context);
+        $context.find('input:checked').next('label').each(function () {
+          vals.push(Drupal.checkPlain($(this).text()));
+        });
+        if (!$context.find('#edit-settings-node-submitted').prop('checked')) {
+          vals.unshift(Drupal.t("Don't display post information"));
+        }
+        return vals.join(', ');
       });
-      if (!$context.find('#edit-settings-node-submitted').is(':checked')) {
-        vals.unshift(Drupal.t("Don't display post information"));
-      }
-      return vals.join(', ');
     });
   }
 };
 
-})(jQuery);
+})(jQuery, Drupal, drupalSettings);
diff --git a/core/modules/node/node.js b/core/modules/node/node.js
index f0b5a38..4e889a8 100644
--- a/core/modules/node/node.js
+++ b/core/modules/node/node.js
@@ -8,61 +8,64 @@
 "use strict";
 
 Drupal.behaviors.nodeDetailsSummaries = {
-  attach: function (context) {
+  attach: function (context, settings) {
     var $context = $(context);
-    $context.find('.node-form-revision-information').drupalSetSummary(function (context) {
-      var $context = $(context);
-      var revisionCheckbox = $context.find('.form-item-revision input');
+    $context.once('nodeDetailsSummaries', function () {
+      $context.find('.node-form-revision-information').drupalSetSummary(function (context) {
 
-      // Return 'New revision' if the 'Create new revision' checkbox is checked,
-      // or if the checkbox doesn't exist, but the revision log does. For users
-      // without the "Administer content" permission the checkbox won't appear,
-      // but the revision log will if the content type is set to auto-revision.
-      if (revisionCheckbox.is(':checked') || (!revisionCheckbox.length && $context.find('.form-item-log textarea').length)) {
-        return Drupal.t('New revision');
-      }
+        var $context = $(context),
+         $revisionCheckbox = $context.find('.form-item-revision input');
 
-      return Drupal.t('No revision');
-    });
+        // Return 'New revision' if the 'Create new revision' checkbox is checked,
+        // or if the checkbox doesn't exist, but the revision log does. For users
+        // without the "Administer content" permission the checkbox won't appear,
+        // but the revision log will if the content type is set to auto-revision.
+        if ($revisionCheckbox.prop('checked') || (!$revisionCheckbox.length && $context.find('.form-item-log textarea').length)) {
+          return Drupal.t('New revision');
+        }
 
-    $context.find('.node-form-author').drupalSetSummary(function (context) {
-      var $context = $(context);
-      var name = $context.find('.form-item-name input').val() || drupalSettings.anonymous,
-        date = $context.find('.form-item-date input').val();
-      return date ?
-        Drupal.t('By @name on @date', { '@name': name, '@date': date }) :
-        Drupal.t('By @name', { '@name': name });
-    });
+        return Drupal.t('No revision');
+      });
 
-    $context.find('.node-form-options').drupalSetSummary(function (context) {
-      var $context = $(context);
-      var vals = [];
+      $context.find('.node-form-author').drupalSetSummary(function (context) {
+        var $context = $(context),
+            date = $context.find('.form-item-date input').val(),
+            name = date || drupalSettings.anonymous;
+        return date ?
+          Drupal.t('By @name on @date', { '@name': name, '@date': date }) :
+          Drupal.t('By @name', { '@name': name });
+      });
 
-      if ($context.find('input').is(':checked')) {
-        $context.find('input:checked').parent().each(function () {
-          vals.push(Drupal.checkPlain($.trim($(this).text())));
-        });
-        return vals.join(', ');
-      }
-      else {
-        return Drupal.t('Not promoted');
-      }
-    });
+      $context.find('.node-form-options').drupalSetSummary(function (context) {
+        var $context = $(context),
+            vals = [];
+
+        if ($context.find('input').checked) {
+          $context.find('input').checked.parent().each(function () {
+            vals.push(Drupal.checkPlain($.trim($(this).text())));
+          });
+          return vals.join(', ');
+        }
+        else {
+          return Drupal.t('Not promoted');
+        }
+      });
 
-    $context.find('fieldset.node-translation-options').drupalSetSummary(function (context) {
-      var $context = $(context);
-      var translate;
-      var $checkbox = $context.find('.form-item-translation-translate input');
+      $context.find('.node-translation-options').drupalSetSummary(function (context) {
+        var $context = $(context),
+            translate,
+            $checkbox = $context.find('.form-item-translation-translate input');
 
-      if ($checkbox.size()) {
-        translate = $checkbox.is(':checked') ? Drupal.t('Needs to be updated') : Drupal.t('Does not need to be updated');
-      }
-      else {
-        $checkbox = $context.find('.form-item-translation-retranslate input');
-        translate = $checkbox.is(':checked') ? Drupal.t('Flag other translations as outdated') : Drupal.t('Do not flag other translations as outdated');
-      }
+        if ($checkbox.length) {
+          translate = $checkbox.prop('checked') ? Drupal.t('Needs to be updated') : Drupal.t('Does not need to be updated');
+        }
+        else {
+          $checkbox = $context.find('.form-item-translation-retranslate input');
+          translate = $checkbox.prop('checked') ? Drupal.t('Flag other translations as outdated') : Drupal.t('Do not flag other translations as outdated');
+        }
 
-      return translate;
+        return translate;
+      });
     });
   }
 };
diff --git a/core/modules/node/node.preview.js b/core/modules/node/node.preview.js
index 3be74e2..47217c9 100644
--- a/core/modules/node/node.preview.js
+++ b/core/modules/node/node.preview.js
@@ -1,4 +1,9 @@
-(function ($, Drupal) {
+/**
+ * @file
+ * Javascript for the node preview.
+ */
+
+(function ($, Drupal, drupalSettings) {
 
 "use strict";
 
@@ -7,7 +12,7 @@
  * in node previews to prevent users from leaving the page.
  */
 Drupal.behaviors.nodePreviewDestroyLinks = {
-  attach: function (context) {
+  attach: function (context, settings) {
     var $preview = $(context).find('.node').once('node-preview');
     if ($preview.length) {
       $preview.on('click.preview', 'a:not([href^=#])', function (e) {
