diff --git a/core/modules/system/system.js b/core/modules/system/system.js
index 66fd4f5..f355efd 100644
--- a/core/modules/system/system.js
+++ b/core/modules/system/system.js
@@ -28,18 +28,23 @@ Drupal.hideEmailAdministratorCheckbox = function () {
  */
 Drupal.behaviors.copyFieldValue = {
   attach: function (context, settings) {
-    for (var sourceId in settings.copyFieldValue) {
-      $('#' + sourceId, context).once('copy-field-values').bind('blur', function () {
-        // Get the list of target fields.
-        var targetIds = settings.copyFieldValue[sourceId];
-        // Add the behavior to update target fields on blur of the primary field.
-        for (var delta in targetIds) {
+    function blurCopyFieldValueHandler(e) {
+      // Get the list of target fields.
+      var targetIds = settings.copyFieldValue[sourceId];
+      // Add the behavior to update target fields on blur of the primary field.
+      for (var delta in targetIds) {
+        if (targetIds.copyFieldValue.hasOwnProperty(delta)) {
           var targetField = $('#' + targetIds[delta]);
           if (targetField.val() === '') {
-            targetField.val(this.value);
+            targetField.val(e.target.value);
           }
         }
-      });
+      }
+    }
+    for (var sourceId in settings.copyFieldValue) {
+      if (settings.copyFieldValue.hasOwnProperty(sourceId)) {
+        $('#' + sourceId, context).once('copy-field-values').bind('blur', blurCopyFieldValueHandler);
+      }
     }
   }
 };
@@ -49,21 +54,22 @@ Drupal.behaviors.copyFieldValue = {
  */
 Drupal.behaviors.dateTime = {
   attach: function (context, settings) {
-    for (var fieldName in settings.dateTime) {
+    var fieldSettings, fieldName, source, suffix;
+    function dateTimeHandler(e) {
+      var input = $(e.target);
+      var url = fieldSettings.lookup + (/\?q=/.test(fieldSettings.lookup) ? '&format=' : '?format=') + encodeURIComponent(input.val());
+      $.getJSON(url, function (data) {
+        $(suffix).empty().append(' ' + fieldSettings.text + ': <em>' + data + '</em>');
+      });
+    }
+    for (fieldName in settings.dateTime) {
       if (settings.dateTime.hasOwnProperty(fieldName)) {
-        (function (fieldSettings, fieldName) {
-          var source = '#edit-' + fieldName;
-          var suffix = source + '-suffix';
+        fieldSettings = settings.dateTime[fieldName];
+        source = '#edit-' + fieldName;
+        suffix = source + '-suffix';
 
-          // Attach keyup handler to custom format inputs.
-          $(context).find('input' + source).once('date-time').keyup(function () {
-            var input = $(this);
-            var url = fieldSettings.lookup + (/\?q=/.test(fieldSettings.lookup) ? '&format=' : '?format=') + encodeURIComponent(input.val());
-            $.getJSON(url, function (data) {
-              $(suffix).empty().append(' ' + fieldSettings.text + ': <em>' + data + '</em>');
-            });
-          });
-        })(settings.dateTime[fieldName], fieldName);
+        // Attach keyup handler to custom format inputs.
+        $(context).find('input' + source).once('date-time').keyup(dateTimeHandler);
       }
     }
   }
