diff --git a/typo3/sysext/backend/Classes/Form/AbstractNode.php b/typo3/sysext/backend/Classes/Form/AbstractNode.php
index 67bea6c13fc8a968ec63fbd58c2ccb0fd277be06..6fd004abbb754263a4dc0bd1a1461dbd12916e41 100644
--- a/typo3/sysext/backend/Classes/Form/AbstractNode.php
+++ b/typo3/sysext/backend/Classes/Form/AbstractNode.php
@@ -108,7 +108,9 @@ abstract class AbstractNode implements NodeInterface, LoggerAwareInterface
     }
 
     /**
-     * Merge existing data with a child return array
+     * Merge existing data with a child return array.
+     * The incoming $childReturn array should be initialized
+     * using initializeResultArray() beforehand.
      *
      * @param array $existing Currently merged array
      * @param array $childReturn Array returned by child
@@ -120,27 +122,23 @@ abstract class AbstractNode implements NodeInterface, LoggerAwareInterface
         if ($mergeHtml && !empty($childReturn['html'])) {
             $existing['html'] .= LF . $childReturn['html'];
         }
-        foreach ($childReturn['additionalJavaScriptPost'] as $value) {
+        foreach ($childReturn['additionalJavaScriptPost'] ?? [] as $value) {
             $existing['additionalJavaScriptPost'][] = $value;
         }
-        foreach ($childReturn['additionalJavaScriptSubmit'] as $value) {
+        foreach ($childReturn['additionalJavaScriptSubmit'] ?? [] as $value) {
             $existing['additionalJavaScriptSubmit'][] = $value;
         }
-        foreach ($childReturn['additionalHiddenFields'] as $value) {
+        foreach ($childReturn['additionalHiddenFields'] ?? [] as $value) {
             $existing['additionalHiddenFields'][] = $value;
         }
-        foreach ($childReturn['stylesheetFiles'] as $value) {
+        foreach ($childReturn['stylesheetFiles'] ?? [] as $value) {
             $existing['stylesheetFiles'][] = $value;
         }
-        if (!empty($childReturn['requireJsModules'])) {
-            foreach ($childReturn['requireJsModules'] as $module) {
-                $existing['requireJsModules'][] = $module;
-            }
+        foreach ($childReturn['requireJsModules'] ?? [] as $module) {
+            $existing['requireJsModules'][] = $module;
         }
-        if (!empty($childReturn['additionalInlineLanguageLabelFiles'])) {
-            foreach ($childReturn['additionalInlineLanguageLabelFiles'] as $inlineLanguageLabelFile) {
-                $existing['additionalInlineLanguageLabelFiles'][] = $inlineLanguageLabelFile;
-            }
+        foreach ($childReturn['additionalInlineLanguageLabelFiles'] ?? [] as $inlineLanguageLabelFile) {
+            $existing['additionalInlineLanguageLabelFiles'][] = $inlineLanguageLabelFile;
         }
         if (!empty($childReturn['inlineData'])) {
             $existingInlineData = $existing['inlineData'];