SECURITY: resources: Patch jQuery 3.3.1 for CVE-2019-11358
[lhc/web/wiklou.git] / resources / lib / jquery / jquery.migrate.js
index 70512e0..711e424 100644 (file)
@@ -1,12 +1,14 @@
 /*!
- * jQuery Migrate - v3.0.1-pre - 2017-08-17
+ * jQuery Migrate - v3.0.1 - 2017-09-26
  * Copyright jQuery Foundation and other contributors
  *
  * Patched for MediaWiki:
- * - Preserve handler of uncaught exceptions in promise chains
- *   https://gerrit.wikimedia.org/r/#/c/360999/
- *   https://github.com/jquery/jquery-migrate/pull/262
+ * - Qualify the global lookup for 'jQuery' as 'window.jQuery',
+ *   because within mw.loader.implement() for 'jquery', the closure
+ *   specifies '$' and 'jQuery', which are undefined.
  * - Add mw.track instrumentation for statistics.
+ * - Disable jQuery.migrateTrace by default. They are slow and
+ *   redundant given console.warn() already provides a trace.
  */
 ;( function( factory ) {
        if ( typeof define === "function" && define.amd ) {
        } else {
 
                // Browser globals
-               factory( jQuery, window );
+               // PATCH: Qualify jQuery lookup as window.jQuery. --Krinkle
+               factory( window.jQuery, window );
        }
 } )( function( jQuery, window ) {
 "use strict";
 
 
-jQuery.migrateVersion = "3.0.1-pre";
+jQuery.migrateVersion = "3.0.1";
 
 /* exported migrateWarn, migrateWarnFunc, migrateWarnProp */
 
 ( function() {
 
+       var rbadVersions = /^[12]\./;
+
        // Support: IE9 only
        // IE9 only creates console object when dev tools are first opened
-       // Also, avoid Function#bind here to simplify PhantomJS usage
-       var log = window.console && window.console.log &&
-               function() {
-                       window.console.log.apply( window.console, arguments );
-               },
-               rbadVersions = /^[12]\./;
-
-       if ( !log ) {
+       // IE9 console is a host object, callable but doesn't have .apply()
+       if ( !window.console || !window.console.log ) {
                return;
        }
 
        // Need jQuery 3.0.0+ and no older Migrate loaded
        if ( !jQuery || rbadVersions.test( jQuery.fn.jquery ) ) {
-               log( "JQMIGRATE: jQuery 3.0.0+ REQUIRED" );
+               window.console.log( "JQMIGRATE: jQuery 3.0.0+ REQUIRED" );
        }
        if ( jQuery.migrateWarnings ) {
-               log( "JQMIGRATE: Migrate plugin loaded multiple times" );
+               window.console.log( "JQMIGRATE: Migrate plugin loaded multiple times" );
        }
 
        // Show a message on the console so devs know we're active
-       log( "JQMIGRATE: Migrate is installed" +
+       window.console.log( "JQMIGRATE: Migrate is installed" +
                ( jQuery.migrateMute ? "" : " with logging active" ) +
                ", version " + jQuery.migrateVersion );
 
@@ -68,7 +67,8 @@ jQuery.migrateWarnings = [];
 
 // Set to false to disable traces that appear with warnings
 if ( jQuery.migrateTrace === undefined ) {
-       jQuery.migrateTrace = true;
+       // PATCH: Disable extra console.trace() call --Krinkle
+       jQuery.migrateTrace = false;
 }
 
 // Forget any warnings we've already given; public
@@ -214,6 +214,9 @@ jQuery.isNumeric = function( val ) {
        return oldValue;
 };
 
+migrateWarnFunc( jQuery, "holdReady", jQuery.holdReady,
+       "jQuery.holdReady is deprecated" );
+
 migrateWarnFunc( jQuery, "unique", jQuery.uniqueSort,
        "jQuery.unique is deprecated; use jQuery.uniqueSort" );
 
@@ -375,19 +378,17 @@ jQuery.data = function( elem, name, value ) {
 };
 
 var oldTweenRun = jQuery.Tween.prototype.run;
+var linearEasing = function( pct ) {
+               return pct;
+       };
 
 jQuery.Tween.prototype.run = function( ) {
        if ( jQuery.easing[ this.easing ].length > 1 ) {
                migrateWarn(
-                       "easing function " +
-                       "\"jQuery.easing." + this.easing.toString() +
-                       "\" should use only first argument"
+                       "'jQuery.easing." + this.easing.toString() + "' should use only one argument"
                );
 
-               var oldEasing = jQuery.easing[ this.easing ];
-               jQuery.easing[ this.easing ] = function( percent ) {
-                       return oldEasing.call( jQuery.easing, percent, percent, 0, 1, 1 );
-               }.bind( this );
+               jQuery.easing[ this.easing ] = linearEasing;
        }
 
        oldTweenRun.apply( this, arguments );
@@ -511,6 +512,10 @@ jQuery.fn.extend( {
                return arguments.length === 1 ?
                        this.off( selector, "**" ) :
                        this.off( types, selector || "**", fn );
+       },
+       hover: function( fnOver, fnOut ) {
+               migrateWarn( "jQuery.fn.hover() is deprecated" );
+               return this.on( "mouseenter", fnOver ).on( "mouseleave", fnOut || fnOver );
        }
 } );