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.

Built from https://develop.svn.wordpress.org/trunk@34883


git-svn-id: http://core.svn.wordpress.org/trunk@34848 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Weston Ruter 2015-10-06 21:59:25 +00:00
parent 8286a4f214
commit aa044b054e
3 changed files with 3 additions and 4 deletions

View File

@ -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;

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
$wp_version = '4.4-alpha-34882';
$wp_version = '4.4-alpha-34883';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.