dépôts
/
lhc
/
web
/
wiklou.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge "Remove perf tracking code that was moved to WikimediaEvents in Ib300af5c"
[lhc/web/wiklou.git]
/
resources
/
src
/
mediawiki
/
mediawiki.js
diff --git
a/resources/src/mediawiki/mediawiki.js
b/resources/src/mediawiki/mediawiki.js
index
0ae45b5
..
a661ae5
100644
(file)
--- a/
resources/src/mediawiki/mediawiki.js
+++ b/
resources/src/mediawiki/mediawiki.js
@@
-625,7
+625,7
@@
* @param {Function} callback
*/
trackUnsubscribe: function ( callback ) {
* @param {Function} callback
*/
trackUnsubscribe: function ( callback ) {
- trackHandlers =
$.grep( trackHandlers,
function ( fns ) {
+ trackHandlers =
trackHandlers.filter(
function ( fns ) {
if ( fns[ 1 ] === callback ) {
trackCallbacks.remove( fns[ 0 ] );
// Ensure the tuple is removed to avoid holding on to closures
if ( fns[ 1 ] === callback ) {
trackCallbacks.remove( fns[ 0 ] );
// Ensure the tuple is removed to avoid holding on to closures
@@
-1127,7
+1127,7
@@
registry[ module ].dependencies = [ registry[ module ].dependencies ];
}
}
registry[ module ].dependencies = [ registry[ module ].dependencies ];
}
}
- if (
$.inArray( module, resolved
) !== -1 ) {
+ if (
resolved.indexOf( module
) !== -1 ) {
// Module already resolved; nothing to do
return;
}
// Module already resolved; nothing to do
return;
}
@@
-1138,7
+1138,7
@@
// Tracks down dependencies
deps = registry[ module ].dependencies;
for ( i = 0; i < deps.length; i++ ) {
// Tracks down dependencies
deps = registry[ module ].dependencies;
for ( i = 0; i < deps.length; i++ ) {
- if (
$.inArray( deps[ i ], resolved
) === -1 ) {
+ if (
resolved.indexOf( deps[ i ]
) === -1 ) {
if ( unresolved.has( deps[ i ] ) ) {
throw new Error( mw.format(
'Circular reference detected: $1 -> $2',
if ( unresolved.has( deps[ i ] ) ) {
throw new Error( mw.format(
'Circular reference detected: $1 -> $2',
@@
-1465,7
+1465,7
@@
if ( ready !== undefined || error !== undefined ) {
jobs.push( {
// Narrow down the list to modules that are worth waiting for
if ( ready !== undefined || error !== undefined ) {
jobs.push( {
// Narrow down the list to modules that are worth waiting for
- dependencies:
$.grep( dependencies,
function ( module ) {
+ dependencies:
dependencies.filter(
function ( module ) {
var state = mw.loader.getState( module );
return state === 'registered' || state === 'loaded' || state === 'loading' || state === 'executing';
} ),
var state = mw.loader.getState( module );
return state === 'registered' || state === 'loaded' || state === 'loading' || state === 'executing';
} ),
@@
-1474,11
+1474,11
@@
} );
}
} );
}
-
$.each( dependencies, function ( idx,
module ) {
+
dependencies.forEach( function (
module ) {
var state = mw.loader.getState( module );
// Only queue modules that are still in the initial 'registered' state
// (not ones already loading, ready or error).
var state = mw.loader.getState( module );
// Only queue modules that are still in the initial 'registered' state
// (not ones already loading, ready or error).
- if ( state === 'registered' &&
$.inArray( module, queu
e ) === -1 ) {
+ if ( state === 'registered' &&
queue.indexOf( modul
e ) === -1 ) {
// Private modules must be embedded in the page. Don't bother queuing
// these as the server will deny them anyway (T101806).
if ( registry[ module ].group === 'private' ) {
// Private modules must be embedded in the page. Don't bother queuing
// these as the server will deny them anyway (T101806).
if ( registry[ module ].group === 'private' ) {
@@
-1499,9
+1499,7
@@
a = [];
for ( key in o ) {
a = [];
for ( key in o ) {
- if ( hasOwn.call( o, key ) ) {
- a.push( key );
- }
+ a.push( key );
}
a.sort();
for ( key = 0; key < a.length; key++ ) {
}
a.sort();
for ( key = 0; key < a.length; key++ ) {
@@
-1538,10
+1536,9
@@
* @param {string} sourceLoadScript URL of load.php
*/
function doRequest( moduleMap, currReqBase, sourceLoadScript ) {
* @param {string} sourceLoadScript URL of load.php
*/
function doRequest( moduleMap, currReqBase, sourceLoadScript ) {
- var query = $.extend(
- { modules: buildModulesString( moduleMap ) },
- currReqBase
- );
+ // Optimisation: Inherit (Object.create), not copy ($.extend)
+ var query = Object.create( currReqBase );
+ query.modules = buildModulesString( moduleMap );
query = sortQuery( query );
addScript( sourceLoadScript + '?' + $.param( query ) );
}
query = sortQuery( query );
addScript( sourceLoadScript + '?' + $.param( query ) );
}
@@
-1630,9
+1627,10
@@
// modules for this group from this source.
modules = splits[ source ][ group ];
// modules for this group from this source.
modules = splits[ source ][ group ];
- currReqBase = $.extend( {
- version: getCombinedVersion( modules )
- }, reqBase );
+ // Optimisation: Inherit (Object.create), not copy ($.extend)
+ currReqBase = Object.create( reqBase );
+ currReqBase.version = getCombinedVersion( modules );
+
// For user modules append a user name to the query string.
if ( group === 'user' && mw.config.get( 'wgUserName' ) !== null ) {
currReqBase.user = mw.config.get( 'wgUserName' );
// For user modules append a user name to the query string.
if ( group === 'user' && mw.config.get( 'wgUserName' ) !== null ) {
currReqBase.user = mw.config.get( 'wgUserName' );
@@
-1720,7
+1718,10
@@
function splitModuleKey( key ) {
var index = key.indexOf( '@' );
if ( index === -1 ) {
function splitModuleKey( key ) {
var index = key.indexOf( '@' );
if ( index === -1 ) {
- return { name: key };
+ return {
+ name: key,
+ version: ''
+ };
}
return {
name: key.slice( 0, index ),
}
return {
name: key.slice( 0, index ),
@@
-1761,7
+1762,7
@@
// Only load modules which are registered
if ( hasOwn.call( registry, queue[ q ] ) && registry[ queue[ q ] ].state === 'registered' ) {
// Prevent duplicate entries
// Only load modules which are registered
if ( hasOwn.call( registry, queue[ q ] ) && registry[ queue[ q ] ].state === 'registered' ) {
// Prevent duplicate entries
- if (
$.inArray( queue[ q ], batch
) === -1 ) {
+ if (
batch.indexOf( queue[ q ]
) === -1 ) {
batch.push( queue[ q ] );
// Mark registered modules as loading
registry[ queue[ q ] ].state = 'loading';
batch.push( queue[ q ] );
// Mark registered modules as loading
registry[ queue[ q ] ].state = 'loading';
@@
-1784,7
+1785,7
@@
if ( mw.loader.store.enabled ) {
implementations = [];
sourceModules = [];
if ( mw.loader.store.enabled ) {
implementations = [];
sourceModules = [];
- batch =
$.grep( batch,
function ( module ) {
+ batch =
batch.filter(
function ( module ) {
var implementation = mw.loader.store.get( module );
if ( implementation ) {
implementations.push( implementation );
var implementation = mw.loader.store.get( module );
if ( implementation ) {
implementations.push( implementation );
@@
-1809,7
+1810,7
@@
mw.track( 'resourceloader.exception', { exception: err, source: 'store-eval' } );
// Re-add the failed ones that are still pending back to the batch
mw.track( 'resourceloader.exception', { exception: err, source: 'store-eval' } );
// Re-add the failed ones that are still pending back to the batch
- failed =
$.grep( sourceModules,
function ( module ) {
+ failed =
sourceModules.filter(
function ( module ) {
return registry[ module ].state === 'loading';
} );
batchRequest( failed );
return registry[ module ].state === 'loading';
} );
batchRequest( failed );
@@
-1962,7
+1963,7
@@
registry[ name ].messages = messages || null;
registry[ name ].templates = templates || null;
// The module may already have been marked as erroneous
registry[ name ].messages = messages || null;
registry[ name ].templates = templates || null;
// The module may already have been marked as erroneous
- if (
$.inArray( registry[ name ].state, [ 'error', 'missing' ] ) === -1
) {
+ if (
registry[ name ].state !== 'error' && registry[ name ].state !== 'missing'
) {
registry[ name ].state = 'loaded';
if ( allReady( registry[ name ].dependencies ) ) {
execute( name );
registry[ name ].state = 'loaded';
if ( allReady( registry[ name ].dependencies ) ) {
execute( name );
@@
-2073,7
+2074,7
@@
}
// Filter out top-level modules that are unknown or failed to load before.
}
// Filter out top-level modules that are unknown or failed to load before.
- filtered =
$.grep( modules,
function ( module ) {
+ filtered =
modules.filter(
function ( module ) {
var state = mw.loader.getState( module );
return state !== 'error' && state !== 'missing';
} );
var state = mw.loader.getState( module );
return state !== 'error' && state !== 'missing';
} );
@@
-2110,7
+2111,7
@@
mw.loader.register( module );
}
registry[ module ].state = state;
mw.loader.register( module );
}
registry[ module ].state = state;
- if (
$.inArray( state, [ 'ready', 'error', 'missing' ] ) !== -1
) {
+ if (
state === 'ready' || state === 'error' || state === 'missing'
) {
// Make sure pending modules depending on this one get executed if their
// dependencies are now fulfilled!
handlePending( module );
// Make sure pending modules depending on this one get executed if their
// dependencies are now fulfilled!
handlePending( module );
@@
-2125,10
+2126,7
@@
* in the registry.
*/
getVersion: function ( module ) {
* in the registry.
*/
getVersion: function ( module ) {
- if ( !hasOwn.call( registry, module ) || registry[ module ].version === undefined ) {
- return null;
- }
- return registry[ module ].version;
+ return hasOwn.call( registry, module ) ? registry[ module ].version : null;
},
/**
},
/**
@@
-2139,10
+2137,7
@@
* in the registry.
*/
getState: function ( module ) {
* in the registry.
*/
getState: function ( module ) {
- if ( !hasOwn.call( registry, module ) || registry[ module ].state === undefined ) {
- return null;
- }
- return registry[ module ].state;
+ return hasOwn.call( registry, module ) ? registry[ module ].state : null;
},
/**
},
/**
@@
-2348,11
+2343,13
@@
// Module failed to load
descriptor.state !== 'ready' ||
// Unversioned, private, or site-/user-specific
// Module failed to load
descriptor.state !== 'ready' ||
// Unversioned, private, or site-/user-specific
- ( !descriptor.version || $.inArray( descriptor.group, [ 'private', 'user' ] ) !== -1 ) ||
+ !descriptor.version ||
+ descriptor.group === 'private' ||
+ descriptor.group === 'user' ||
// Partial descriptor
// (e.g. skipped module, or style module with state=ready)
// Partial descriptor
// (e.g. skipped module, or style module with state=ready)
-
$.inArray( undefined, [ descriptor.script, descriptor.style
,
- descriptor.
messages, descriptor.templates ]
) !== -1
+
[ descriptor.script, descriptor.style, descriptor.messages
,
+ descriptor.
templates ].indexOf( undefined
) !== -1
) {
// Decline to store
return false;
) {
// Decline to store
return false;
@@
-2775,7
+2772,7
@@
$( function () {
var loading, modules;
$( function () {
var loading, modules;
- modules =
$.grep( mw.loader.getModuleNames(),
function ( module ) {
+ modules =
mw.loader.getModuleNames().filter(
function ( module ) {
return mw.loader.getState( module ) === 'loading';
} );
// We only need a callback, not any actual module. First try a single using()
return mw.loader.getState( module ) === 'loading';
} );
// We only need a callback, not any actual module. First try a single using()