From 346ebe09931e7a2087d2fccb083aeb5e9da3e082 Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Tue, 6 Oct 2015 21:58:48 +0000 Subject: [PATCH] Customizer: Ensure that `wp.customize.Widgets.savedWidgetIds` is defined up front. In 4.3 the widget controls were fully initialized up front along with the sidebar controls. The sidebar control depended (unnecessarily) on the widget control to ensure that `wp.customize.Widgets.savedWidgetIds` was defined. So after [34563] there could be a situation where the widgets are added/removed from a sidebar before their controls are initialized (if the sidebar section is never expanded), resulting in an error attempting to get a property off of an undefined value. So this change does the right thing and defines `savedWidgetIds` up front. Also changes the `savedWidgetIds` variable type from an array to an object, to match how it is used as a dictionary lookup. See #33901. git-svn-id: https://develop.svn.wordpress.org/trunk@34883 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/js/customize-widgets.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/wp-admin/js/customize-widgets.js b/src/wp-admin/js/customize-widgets.js index 8edc02c12f..bd257575ac 100644 --- a/src/wp-admin/js/customize-widgets.js +++ b/src/wp-admin/js/customize-widgets.js @@ -8,6 +8,7 @@ l10n; api.Widgets = api.Widgets || {}; + api.Widgets.savedWidgetIds = {}; // Link settings api.Widgets.data = _wpCustomizeWidgetsSettings || {}; @@ -523,8 +524,6 @@ _setupModel: function() { var self = this, rememberSavedWidgetId; - api.Widgets.savedWidgetIds = api.Widgets.savedWidgetIds || []; - // Remember saved widgets so we know which to trash (move to inactive widgets sidebar) rememberSavedWidgetId = function() { api.Widgets.savedWidgetIds[self.params.widget_id] = true;