diff -r 3d4e9c994f10 -r a86126ab1dd4 wp/wp-includes/js/customize-base.js --- a/wp/wp-includes/js/customize-base.js Tue Oct 22 16:11:46 2019 +0200 +++ b/wp/wp-includes/js/customize-base.js Tue Dec 15 13:49:49 2020 +0100 @@ -17,25 +17,29 @@ * Similar to `goog.inherits`, but uses a hash of prototype properties and * class properties to be extended. * - * @param object parent Parent class constructor to inherit from. - * @param object protoProps Properties to apply to the prototype for use as class instance properties. - * @param object staticProps Properties to apply directly to the class constructor. - * @return child The subclassed constructor. + * @param object parent Parent class constructor to inherit from. + * @param object protoProps Properties to apply to the prototype for use as class instance properties. + * @param object staticProps Properties to apply directly to the class constructor. + * @return child The subclassed constructor. */ inherits = function( parent, protoProps, staticProps ) { var child; - // The constructor function for the new subclass is either defined by you - // (the "constructor" property in your `extend` definition), or defaulted - // by us to simply call `super()`. + /* + * The constructor function for the new subclass is either defined by you + * (the "constructor" property in your `extend` definition), or defaulted + * by us to simply call `super()`. + */ if ( protoProps && protoProps.hasOwnProperty( 'constructor' ) ) { child = protoProps.constructor; } else { child = function() { - // Storing the result `super()` before returning the value - // prevents a bug in Opera where, if the constructor returns - // a function, Opera will reject the return value in favor of - // the original object. This causes all sorts of trouble. + /* + * Storing the result `super()` before returning the value + * prevents a bug in Opera where, if the constructor returns + * a function, Opera will reject the return value in favor of + * the original object. This causes all sorts of trouble. + */ var result = parent.apply( this, arguments ); return result; }; @@ -44,19 +48,21 @@ // Inherit class (static) properties from parent. $.extend( child, parent ); - // Set the prototype chain to inherit from `parent`, without calling - // `parent`'s constructor function. + // Set the prototype chain to inherit from `parent`, + // without calling `parent`'s constructor function. ctor.prototype = parent.prototype; child.prototype = new ctor(); // Add prototype properties (instance properties) to the subclass, // if supplied. - if ( protoProps ) + if ( protoProps ) { $.extend( child.prototype, protoProps ); + } // Add static properties to the constructor function, if supplied. - if ( staticProps ) + if ( staticProps ) { $.extend( child, staticProps ); + } // Correctly set child's `prototype.constructor`. child.prototype.constructor = child; @@ -102,9 +108,9 @@ /** * Creates a subclass of the class. * - * @param object protoProps Properties to apply to the prototype. - * @param object staticProps Properties to apply directly to the class. - * @return child The subclass. + * @param object protoProps Properties to apply to the prototype. + * @param object staticProps Properties to apply directly to the class. + * @return child The subclass. */ api.Class.extend = function( protoProps, classProps ) { var child = inherits( this, protoProps, classProps ); @@ -132,10 +138,12 @@ var proto = this; while ( typeof proto.constructor !== 'undefined' ) { - if ( proto.constructor === constructor ) + if ( proto.constructor === constructor ) { return true; - if ( typeof proto.constructor.__super__ === 'undefined' ) + } + if ( typeof proto.constructor.__super__ === 'undefined' ) { return false; + } proto = proto.constructor.__super__; } return false; @@ -148,8 +156,9 @@ */ api.Events = { trigger: function( id ) { - if ( this.topics && this.topics[ id ] ) + if ( this.topics && this.topics[ id ] ) { this.topics[ id ].fireWith( this, slice.call( arguments, 1 ) ); + } return this; }, @@ -161,8 +170,9 @@ }, unbind: function( id ) { - if ( this.topics && this.topics[ id ] ) + if ( this.topics && this.topics[ id ] ) { this.topics[ id ].remove.apply( this.topics[ id ], slice.call( arguments, 1 ) ); + } return this; } }; @@ -178,10 +188,10 @@ api.Value = api.Class.extend(/** @lends wp.customize.Value.prototype */{ /** * @param {mixed} initial The initial value. - * @param {object} options + * @param {Object} options */ initialize: function( initial, options ) { - this._value = initial; // @todo: potentially change this to a this.set() call. + this._value = initial; // @todo Potentially change this to a this.set() call. this.callbacks = $.Callbacks(); this._dirty = false; @@ -210,7 +220,7 @@ /** * Set the value and trigger all bound callbacks. * - * @param {object} to New value. + * @param {Object} to New value. */ set: function( to ) { var from = this._value; @@ -344,15 +354,16 @@ * * @see {api.Values.when} * - * @param {string} id ID of the item. - * @param {...} Zero or more IDs of items to wait for and a callback - * function to invoke when they're available. Optional. - * @return {mixed} The item instance if only one ID was supplied. - * A Deferred Promise object if a callback function is supplied. + * @param {string} id ID of the item. + * @param {...} Zero or more IDs of items to wait for and a callback + * function to invoke when they're available. Optional. + * @return {mixed} The item instance if only one ID was supplied. + * A Deferred Promise object if a callback function is supplied. */ instance: function( id ) { - if ( arguments.length === 1 ) + if ( arguments.length === 1 ) { return this.value( id ); + } return this.when.apply( this, arguments ); }, @@ -360,8 +371,8 @@ /** * Get the instance of an item. * - * @param {string} id The ID of the item. - * @return {[type]} [description] + * @param {string} id The ID of the item. + * @return {[type]} [description] */ value: function( id ) { return this._value[ id ]; @@ -370,8 +381,8 @@ /** * Whether the collection has an item with the given ID. * - * @param {string} id The ID of the item to look for. - * @return {Boolean} + * @param {string} id The ID of the item to look for. + * @return {boolean} */ has: function( id ) { return typeof this._value[ id ] !== 'undefined'; @@ -424,9 +435,9 @@ * Create a new item of the collection using the collection's default constructor * and store it in the collection. * - * @param {string} id The ID of the item. - * @param {mixed} value Any extra arguments are passed into the item's initialize method. - * @return {mixed} The new item's instance. + * @param {string} id The ID of the item. + * @param {mixed} value Any extra arguments are passed into the item's initialize method. + * @return {mixed} The new item's instance. */ create: function( id ) { return this.add( id, new this.defaultConstructor( api.Class.applicator, slice.call( arguments, 1 ) ) ); @@ -435,8 +446,8 @@ /** * Iterate over all items in the collection invoking the provided callback. * - * @param {Function} callback Function to invoke. - * @param {object} context Object context to invoke the function with. Optional. + * @param {Function} callback Function to invoke. + * @param {Object} context Object context to invoke the function with. Optional. */ each: function( callback, context ) { context = typeof context === 'undefined' ? this : context; @@ -449,7 +460,7 @@ /** * Remove an item from the collection. * - * @param {string} id The ID of the item to remove. + * @param {string} id The ID of the item to remove. */ remove: function( id ) { var value = this.value( id ); @@ -482,24 +493,26 @@ * For example: * when( id1, id2, id3, function( value1, value2, value3 ) {} ); * - * @returns $.Deferred.promise(); + * @return $.Deferred.promise(); */ when: function() { var self = this, ids = slice.call( arguments ), dfd = $.Deferred(); - // If the last argument is a callback, bind it to .done() - if ( $.isFunction( ids[ ids.length - 1 ] ) ) + // If the last argument is a callback, bind it to .done(). + if ( $.isFunction( ids[ ids.length - 1 ] ) ) { dfd.done( ids.pop() ); + } /* * Create a stack of deferred objects for each item that is not * yet available, and invoke the supplied callback when they are. */ $.when.apply( $, $.map( ids, function( id ) { - if ( self.has( id ) ) + if ( self.has( id ) ) { return; + } /* * The requested item is not available yet, create a deferred @@ -546,7 +559,7 @@ * @param {string|jQuery collection} element */ api.ensure = function( element ) { - return typeof element == 'string' ? $( element ) : element; + return typeof element === 'string' ? $( element ) : element; }; /** @@ -657,10 +670,10 @@ /** * Create a new Value. * - * @param {string} key Unique identifier. - * @param {mixed} initial Initial value. - * @param {mixed} options Options hash. Optional. - * @return {Value} Class instance of the Value. + * @param {string} key Unique identifier. + * @param {mixed} initial Initial value. + * @param {mixed} options Options hash. Optional. + * @return {Value} Class instance of the Value. */ add: function( key, initial, options ) { return this[ key ] = new api.Value( initial, options ); @@ -669,11 +682,11 @@ /** * Initialize Messenger. * - * @param {object} params - Parameters to configure the messenger. - * {string} params.url - The URL to communicate with. - * {window} params.targetWindow - The window instance to communicate with. Default window.parent. - * {string} params.channel - If provided, will send the channel with each message and only accept messages a matching channel. - * @param {object} options - Extend any instance parameter or method with this object. + * @param {Object} params - Parameters to configure the messenger. + * {string} params.url - The URL to communicate with. + * {window} params.targetWindow - The window instance to communicate with. Default window.parent. + * {string} params.channel - If provided, will send the channel with each message and only accept messages a matching channel. + * @param {Object} options - Extend any instance parameter or method with this object. */ initialize: function( params, options ) { // Target the parent frame by default, but only if a parent frame exists. @@ -690,7 +703,7 @@ return urlParser.protocol + '//' + urlParser.host.replace( /:(80|443)$/, '' ); }); - // first add with no value + // First add with no value. this.add( 'targetWindow', null ); // This avoids SecurityErrors when setting a window object in x-origin iframe'd scenarios. this.targetWindow.set = function( to ) { @@ -710,15 +723,17 @@ return this; }; - // now set it + // Now set it. this.targetWindow( params.targetWindow || defaultTarget ); - // Since we want jQuery to treat the receive function as unique - // to this instance, we give the function a new guid. - // - // This will prevent every Messenger's receive function from being - // unbound when calling $.off( 'message', this.receive ); + /* + * Since we want jQuery to treat the receive function as unique + * to this instance, we give the function a new guid. + * + * This will prevent every Messenger's receive function from being + * unbound when calling $.off( 'message', this.receive ); + */ this.receive = $.proxy( this.receive, this ); this.receive.guid = $.guid++; @@ -732,7 +747,7 @@ /** * Receive data from the other window. * - * @param {jQuery.Event} event Event with embedded data. + * @param {jQuery.Event} event Event with embedded data. */ receive: function( event ) { var message; @@ -744,10 +759,11 @@ } // Check to make sure the origin is valid. - if ( this.origin() && event.origin !== this.origin() ) + if ( this.origin() && event.origin !== this.origin() ) { return; + } - // Ensure we have a string that's JSON.parse-able + // Ensure we have a string that's JSON.parse-able. if ( typeof event.data !== 'string' || event.data[0] !== '{' ) { return; } @@ -755,12 +771,14 @@ message = JSON.parse( event.data ); // Check required message properties. - if ( ! message || ! message.id || typeof message.data === 'undefined' ) + if ( ! message || ! message.id || typeof message.data === 'undefined' ) { return; + } // Check if channel names match. - if ( ( message.channel || this.channel() ) && this.channel() !== message.channel ) + if ( ( message.channel || this.channel() ) && this.channel() !== message.channel ) { return; + } this.trigger( message.id, message.data ); }, @@ -768,20 +786,22 @@ /** * Send data to the other window. * - * @param {string} id The event name. - * @param {object} data Data. + * @param {string} id The event name. + * @param {Object} data Data. */ send: function( id, data ) { var message; data = typeof data === 'undefined' ? null : data; - if ( ! this.url() || ! this.targetWindow() ) + if ( ! this.url() || ! this.targetWindow() ) { return; + } message = { id: id, data: data }; - if ( this.channel() ) + if ( this.channel() ) { message.channel = this.channel(); + } this.targetWindow().postMessage( JSON.stringify( message ), this.origin() ); } @@ -842,7 +862,7 @@ * @since 4.9.0 * * @param {string} code - Notification code. - * @param {object} params - Notification parameters. + * @param {Object} params - Notification parameters. * @param {string} params.message - Message. * @param {string} [params.type=error] - Type. * @param {string} [params.setting] - Related setting ID. @@ -876,7 +896,7 @@ * * @since 4.9.0 * - * @returns {jQuery} Notification container element. + * @return {jQuery} Notification container element. */ render: function() { var notification = this, container, data; @@ -914,7 +934,7 @@ * * @alias wp.customize.get * - * @return {object} + * @return {Object} */ api.get = function() { var result = {}; @@ -942,7 +962,7 @@ * @alias wp.customize.utils.parseQueryString * * @param {string} queryString Query string. - * @returns {object} Parsed query string. + * @return {Object} Parsed query string. */ api.utils.parseQueryString = function parseQueryString( queryString ) { var queryParams = {};