File: jquery.migrate-3.3.2.patch

package info (click to toggle)
mediawiki 1%3A1.35.13-1%2Bdeb11u2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 274,932 kB
  • sloc: php: 677,563; javascript: 572,709; sql: 11,565; python: 4,447; xml: 3,145; sh: 892; perl: 788; ruby: 496; pascal: 365; makefile: 128
file content (86 lines) | stat: -rw-r--r-- 3,094 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
diff --git a/resources/lib/jquery/jquery.migrate.js b/resources/lib/jquery/jquery.migrate.js
index 7917349ea8..429a66bc12 100644
--- a/resources/lib/jquery/jquery.migrate.js
+++ b/resources/lib/jquery/jquery.migrate.js
@@ -1,6 +1,16 @@
 /*!
  * jQuery Migrate - v3.3.2 - 2020-11-17T23:22Z
  * Copyright OpenJS Foundation and other contributors
+ *
+ * Patched for MediaWiki:
+ - 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.
+ * - Don't warn for using features which have no plans for removal.
+ * - Explicit call to UNSAFE_restoreLegacyHtmlPrefilter()
  */
 ( function( factory ) {
 	"use strict";
@@ -19,7 +29,8 @@
 	} else {
 
 		// Browser globals
-		factory( jQuery, window );
+		// PATCH: Qualify jQuery lookup as window.jQuery. --Krinkle
+		factory( window.jQuery, window );
 	}
 } )( function( jQuery, window ) {
 "use strict";
@@ -82,7 +93,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
@@ -96,6 +108,14 @@ function migrateWarn( msg ) {
 	if ( !jQuery.migrateDeduplicateWarnings || !warnedAbout[ msg ] ) {
 		warnedAbout[ msg ] = true;
 		jQuery.migrateWarnings.push( msg );
+		// PATCH: Add instrumentation for statistics --Krinkle
+		if ( window.mw && window.mw.track ) {
+			window.mw.track( "mw.deprecate", "jquery-migrate" );
+		}
+
+		// PATCH: Disable extra console.trace() call --Krinkle
+		jQuery.migrateTrace = false;
+
 		if ( console && console.warn && !jQuery.migrateMute ) {
 			console.warn( "JQMIGRATE: " + msg );
 			if ( jQuery.migrateTrace && console.trace ) {
@@ -672,19 +692,7 @@ jQuery.each( [ "load", "unload", "error" ], function( _, name ) {
 
 } );
 
-jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
-	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
-	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
-	function( _i, name ) {
-
-	// Handle event binding
-	jQuery.fn[ name ] = function( data, fn ) {
-		migrateWarn( "jQuery.fn." + name + "() event shorthand is deprecated" );
-		return arguments.length > 0 ?
-			this.on( name, null, data, fn ) :
-			this.trigger( name );
-	};
-} );
+// PATCH: Don't warn for using features which have no plans for removal. --Krinkle
 
 // Trigger "ready" event only once, on document ready
 jQuery( function() {
@@ -855,5 +863,8 @@ jQuery.Deferred.exceptionHook = oldDeferred.exceptionHook;
 
 }
 
+// PATCH: Enable this migration option (disabled by default) to avoid breakage. --JDF/Krinkle
+jQuery.UNSAFE_restoreLegacyHtmlPrefilter()
+
 return jQuery;
 } );