jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/403970 )
Change subject: Use native ES5 Array prototype methods instead of jQuery
......................................................................
Use native ES5 Array prototype methods instead of jQuery
Replace
* $.each( array, function ( index, value ) { ... } ) by
array.forEach( function ( value, index ) { ... } )
* $.grep( array, function ( value ) { ... } ) by
array.filter( function ( value ) { ... } )
* $.map( array, function ( value ) { ... } ) by
array.map( function ( value ) { ... } )
* $.inArray( value, array ) by
array.indexOf( value )
This change is a follow-up to 1edba8029a561919febf8b90f5df689d090665dd.
Change-Id: I16134642c52002de0eacb987bed5143f528bf627
---
M resources/src/jquery/jquery.suggestions.js
M resources/src/jquery/jquery.tablesorter.js
M resources/src/mediawiki.action/mediawiki.action.edit.stash.js
M resources/src/mediawiki.special/mediawiki.special.apisandbox.js
M resources/src/mediawiki.special/mediawiki.special.block.js
M resources/src/mediawiki.special/mediawiki.special.upload.js
M resources/src/mediawiki/api.js
M resources/src/mediawiki/mediawiki.jqueryMsg.js
M resources/src/mediawiki/page/image-pagination.js
M tests/qunit/suites/resources/jquery/jquery.textSelection.test.js
M tests/qunit/suites/resources/mediawiki.api/mediawiki.api.options.test.js
M tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
M tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
13 files changed, 37 insertions(+), 41 deletions(-)
Approvals:
Krinkle: Looks good to me, approved
jenkins-bot: Verified
Jforrester: Looks good to me, but someone else must approve
diff --git a/resources/src/jquery/jquery.suggestions.js
b/resources/src/jquery/jquery.suggestions.js
index 4f4edc9..39c601f 100644
--- a/resources/src/jquery/jquery.suggestions.js
+++ b/resources/src/jquery/jquery.suggestions.js
@@ -293,7 +293,7 @@
expandFrom = 'left';
// Catch
invalid values, default to 'auto'
- } else if (
$.inArray( expandFrom, [ 'left', 'right', 'start', 'end', 'auto' ] ) === -1 ) {
+ } else if ( [
'left', 'right', 'start', 'end', 'auto' ].indexOf( expandFrom ) === -1 ) {
expandFrom = 'auto';
}
@@ -757,7 +757,7 @@
];
if (
context.data.keypressedCount === 0 &&
e.which ===
context.data.keypressed &&
- $.inArray( e.which,
allowed ) !== -1
+ allowed.indexOf(
e.which ) !== -1
) {
$.suggestions.keypress(
e, context, context.data.keypressed );
}
diff --git a/resources/src/jquery/jquery.tablesorter.js
b/resources/src/jquery/jquery.tablesorter.js
index 21209f6..6d67ade 100644
--- a/resources/src/jquery/jquery.tablesorter.js
+++ b/resources/src/jquery/jquery.tablesorter.js
@@ -289,8 +289,8 @@
function uniqueElements( array ) {
var uniques = [];
- $.each( array, function ( i, elem ) {
- if ( elem !== undefined && $.inArray( elem, uniques )
=== -1 ) {
+ array.forEach( function ( elem ) {
+ if ( elem !== undefined && uniques.indexOf( elem ) ===
-1 ) {
uniques.push( elem );
}
} );
@@ -925,9 +925,8 @@
cell = this;
// Get current column index
columns =
config.headerToColumns[ $cell.data( 'headerIndex' ) ];
- newSortList = $.map( columns,
function ( c ) {
- // jQuery "helpfully"
flattens the arrays...
- return [ [ c,
$cell.data( 'order' ) ] ];
+ newSortList = columns.map(
function ( c ) {
+ return [ c, $cell.data(
'order' ) ];
} );
// Index of first column
belonging to this header
i = columns[ 0 ];
diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.stash.js
b/resources/src/mediawiki.action/mediawiki.action.edit.stash.js
index 31c22af..5ae91e8 100644
--- a/resources/src/mediawiki.action/mediawiki.action.edit.stash.js
+++ b/resources/src/mediawiki.action/mediawiki.action.edit.stash.js
@@ -156,7 +156,7 @@
mw.util.getParamValue( 'undo' ) !== null ||
// Pressing "show changes" and "preview" also signify
that the user will
// probably save the page soon
- $.inArray( $form.find( '#mw-edit-mode' ).val(), [
'preview', 'diff' ] ) > -1
+ [ 'preview', 'diff' ].indexOf( $form.find(
'#mw-edit-mode' ).val() ) > -1
) {
checkStash();
}
diff --git a/resources/src/mediawiki.special/mediawiki.special.apisandbox.js
b/resources/src/mediawiki.special/mediawiki.special.apisandbox.js
index a6450e9..35d82b2 100644
--- a/resources/src/mediawiki.special/mediawiki.special.apisandbox.js
+++ b/resources/src/mediawiki.special/mediawiki.special.apisandbox.js
@@ -1420,7 +1420,7 @@
for ( j = 0; j <
tmp.length; j++ ) {
availableFormats[ tmp[ j ] ] = true;
}
- pi.parameters[ i ].type
= $.grep( tmp, filterFmModules );
+ pi.parameters[ i ].type
= tmp.filter( filterFmModules );
pi.parameters[ i ][
'default' ] = 'json';
pi.parameters[ i
].required = true;
}
@@ -1429,7 +1429,7 @@
// Hide the 'wrappedhtml' parameter on format
modules
if ( pi.group === 'format' ) {
- pi.parameters = $.grep( pi.parameters,
function ( p ) {
+ pi.parameters = pi.parameters.filter(
function ( p ) {
return p.name !== 'wrappedhtml';
} );
}
@@ -1451,7 +1451,7 @@
popup: {
width: 'auto',
padded: true,
- $content: $( '<ul>'
).append( $.map( pi.helpurls, function ( link ) {
+ $content: $( '<ul>'
).append( pi.helpurls.map( function ( link ) {
return $(
'<li>' ).append( $( '<a>' )
.attr(
{ href: link, target: '_blank' } )
.text(
link )
@@ -1469,7 +1469,7 @@
popup: {
width: 'auto',
padded: true,
- $content: $( '<ul>'
).append( $.map( pi.examples, function ( example ) {
+ $content: $( '<ul>'
).append( pi.examples.map( function ( example ) {
var a = $(
'<a>' )
.attr(
'href', '#' + example.query )
.html(
example.description );
diff --git a/resources/src/mediawiki.special/mediawiki.special.block.js
b/resources/src/mediawiki.special/mediawiki.special.block.js
index 491a1ff..49e471e 100644
--- a/resources/src/mediawiki.special/mediawiki.special.block.js
+++ b/resources/src/mediawiki.special/mediawiki.special.block.js
@@ -31,8 +31,8 @@
expiryValue =
expiryWidget.dropdowninput.getValue(),
// infinityValues are the values the
SpecialBlock class accepts as infinity (sf. wfIsInfinity)
infinityValues = [ 'infinite', 'indefinite',
'infinity', 'never' ],
- isIndefinite = $.inArray( expiryValue,
infinityValues ) !== -1 ||
- ( expiryValue === 'other' && $.inArray(
expiryWidget.textinput.getValue(), infinityValues ) !== -1 );
+ isIndefinite = infinityValues.indexOf(
expiryValue ) !== -1 ||
+ ( expiryValue === 'other' &&
infinityValues.indexOf( expiryWidget.textinput.getValue() ) !== -1 );
if ( enableAutoblockField ) {
enableAutoblockField.toggle( !( isNonEmptyIp )
);
diff --git a/resources/src/mediawiki.special/mediawiki.special.upload.js
b/resources/src/mediawiki.special/mediawiki.special.upload.js
index 214ee60..1a3f26c 100644
--- a/resources/src/mediawiki.special/mediawiki.special.upload.js
+++ b/resources/src/mediawiki.special/mediawiki.special.upload.js
@@ -219,17 +219,14 @@
if (
mw.config.get( 'wgCheckFileExtensions'
) &&
mw.config.get( 'wgStrictFileExtensions'
) &&
- mw.config.get( 'wgFileExtensions' ) &&
+ Array.isArray( mw.config.get(
'wgFileExtensions' ) ) &&
$( this ).attr( 'id' ) !==
'wpUploadFileURL'
) {
if (
fname.lastIndexOf( '.' ) === -1
||
- $.inArray(
- fname.slice(
fname.lastIndexOf( '.' ) + 1 ).toLowerCase(),
- $.map( mw.config.get(
'wgFileExtensions' ), function ( element ) {
- return
element.toLowerCase();
- } )
- ) === -1
+ mw.config.get(
'wgFileExtensions' ).map( function ( element ) {
+ return
element.toLowerCase();
+ } ).indexOf( fname.slice(
fname.lastIndexOf( '.' ) + 1 ).toLowerCase() ) === -1
) {
// Not a valid extension
// Clear the upload and set
mw-upload-permitted to error
@@ -291,7 +288,7 @@
function fileIsPreviewable( file ) {
var known = [ 'image/png', 'image/gif', 'image/jpeg',
'image/svg+xml' ],
tooHuge = 10 * 1024 * 1024;
- return ( $.inArray( file.type, known ) !== -1 ) &&
file.size > 0 && file.size < tooHuge;
+ return ( known.indexOf( file.type ) !== -1 ) &&
file.size > 0 && file.size < tooHuge;
}
/**
diff --git a/resources/src/mediawiki/api.js b/resources/src/mediawiki/api.js
index 2fcb4be..2e5a92e 100644
--- a/resources/src/mediawiki/api.js
+++ b/resources/src/mediawiki/api.js
@@ -42,7 +42,7 @@
'import',
'options'
];
- if ( $.inArray( action, csrfActions ) !== -1 ) {
+ if ( csrfActions.indexOf( action ) !== -1 ) {
mw.track( 'mw.deprecate', 'apitoken_' + action );
mw.log.warn( 'Use of the "' + action + '" token is
deprecated. Use "csrf" instead.' );
return 'csrf';
diff --git a/resources/src/mediawiki/mediawiki.jqueryMsg.js
b/resources/src/mediawiki/mediawiki.jqueryMsg.js
index e1681fa..8b25a0b 100644
--- a/resources/src/mediawiki/mediawiki.jqueryMsg.js
+++ b/resources/src/mediawiki/mediawiki.jqueryMsg.js
@@ -698,14 +698,14 @@
startTagName = startTagName.toLowerCase();
endTagName = endTagName.toLowerCase();
- if ( startTagName !== endTagName || $.inArray(
startTagName, settings.allowedHtmlElements ) === -1 ) {
+ if ( startTagName !== endTagName ||
settings.allowedHtmlElements.indexOf( startTagName ) === -1 ) {
return false;
}
for ( i = 0, len = attributes.length; i < len;
i += 2 ) {
attributeName = attributes[ i ];
- if ( $.inArray( attributeName,
settings.allowedHtmlCommonAttributes ) === -1 &&
- $.inArray( attributeName,
settings.allowedHtmlAttributesByElement[ startTagName ] || [] ) === -1 ) {
+ if (
settings.allowedHtmlCommonAttributes.indexOf( attributeName ) === -1 &&
+ (
settings.allowedHtmlAttributesByElement[ startTagName ] || [] ).indexOf(
attributeName ) === -1 ) {
return false;
}
}
diff --git a/resources/src/mediawiki/page/image-pagination.js
b/resources/src/mediawiki/page/image-pagination.js
index 6a7d0b9..06c34a5 100644
--- a/resources/src/mediawiki/page/image-pagination.js
+++ b/resources/src/mediawiki/page/image-pagination.js
@@ -23,7 +23,7 @@
// Try the cache
if ( cache[ url ] ) {
// Update access freshness
- cacheOrder.splice( $.inArray( url, cacheOrder ), 1 );
+ cacheOrder.splice( cacheOrder.indexOf( url ), 1 );
cacheOrder.push( url );
return $.Deferred().resolve( cache[ url ] ).promise();
}
diff --git a/tests/qunit/suites/resources/jquery/jquery.textSelection.test.js
b/tests/qunit/suites/resources/jquery/jquery.textSelection.test.js
index 5b3c2ed..32cda7e 100644
--- a/tests/qunit/suites/resources/jquery/jquery.textSelection.test.js
+++ b/tests/qunit/suites/resources/jquery/jquery.textSelection.test.js
@@ -224,7 +224,7 @@
function among( actual, expected, message ) {
if ( Array.isArray( expected ) ) {
- assert.ok( $.inArray( actual, expected
) !== -1, message + ' (got ' + actual + '; expected one of ' + expected.join(
', ' ) + ')' );
+ assert.ok( expected.indexOf( actual )
!== -1, message + ' (got ' + actual + '; expected one of ' + expected.join( ',
' ) + ')' );
} else {
assert.equal( actual, expected, message
);
}
diff --git
a/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.options.test.js
b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.options.test.js
index 4ee8038..997a42c 100644
--- a/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.options.test.js
+++ b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.options.test.js
@@ -30,7 +30,7 @@
// Requests are POST, match requestBody instead of url
this.server.respond( function ( request ) {
- if ( $.inArray( request.requestBody, [
+ if ( [
// simple
'action=options&format=json&formatversion=2&change=foo%3Dbar&token=%2B%5C',
// two options
@@ -43,7 +43,7 @@
'action=options&format=json&formatversion=2&change=foo&token=%2B%5C',
// reset an option, not bundleable
'action=options&format=json&formatversion=2&optionname=foo%7Cbar%3Dquux&token=%2B%5C'
- ] ) !== -1 ) {
+ ].indexOf( request.requestBody ) !== -1 ) {
assert.ok( true, 'Repond to ' +
request.requestBody );
request.respond( 200, { 'Content-Type':
'application/json' },
'{ "options": "success" }' );
@@ -88,7 +88,7 @@
// Requests are POST, match requestBody instead of url
this.server.respond( function ( request ) {
- if ( $.inArray( request.requestBody, [
+ if ( [
// simple
'action=options&format=json&formatversion=2&change=foo%3Dbar&token=%2B%5C',
// two options
@@ -102,7 +102,7 @@
'action=options&format=json&formatversion=2&change=foo&token=%2B%5C',
// reset an option, not bundleable
'action=options&format=json&formatversion=2&optionname=foo%7Cbar%3Dquux&token=%2B%5C'
- ] ) !== -1 ) {
+ ].indexOf( request.requestBody ) !== -1 ) {
assert.ok( true, 'Repond to ' +
request.requestBody );
request.respond(
200,
diff --git a/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
index 5a92da4..417ad3d 100644
--- a/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
+++ b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
@@ -18,7 +18,7 @@
}
function sequenceBodies( status, headers, bodies ) {
- jQuery.each( bodies, function ( i, body ) {
+ bodies.forEach( function ( body, i ) {
bodies[ i ] = [ status, headers, body ];
} );
return sequence( bodies );
diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
b/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
index 67ee3b8..2a563c8 100644
--- a/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
+++ b/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
@@ -504,11 +504,11 @@
]
];
- $.each( testCases, function () {
+ testCases.forEach( function ( testCase ) {
var
- key = this[ 0 ],
- input = this[ 1 ],
- output = this[ 2 ];
+ key = testCase[ 0 ],
+ input = testCase[ 1 ],
+ output = testCase[ 2 ];
mw.messages.set( key, input );
assert.htmlEqual(
formatParse( key ),
@@ -592,11 +592,11 @@
]
];
- $.each( testCases, function () {
+ testCases.forEach( function ( testCase ) {
var
- key = this[ 0 ],
- input = this[ 1 ],
- output = this[ 2 ],
+ key = testCase[ 0 ],
+ input = testCase[ 1 ],
+ output = testCase[ 2 ],
paramHref = key.slice( 0, 8 ) === 'wikilink' ?
'Example' : 'http://example.com',
paramText = 'Text';
mw.messages.set( key, input );
--
To view, visit https://gerrit.wikimedia.org/r/403970
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I16134642c52002de0eacb987bed5143f528bf627
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Fomafix <[email protected]>
Gerrit-Reviewer: Anomie <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: Mattflaschen <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits