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 "resourceloader: Use null-objects for 'sources' and 'registry'"
[lhc/web/wiklou.git]
/
resources
/
src
/
startup
/
mediawiki.js
diff --git
a/resources/src/startup/mediawiki.js
b/resources/src/startup/mediawiki.js
index
06190a8
..
97fc027
100644
(file)
--- a/
resources/src/startup/mediawiki.js
+++ b/
resources/src/startup/mediawiki.js
@@
-13,7
+13,6
@@
'use strict';
var mw, StringSet, log,
'use strict';
var mw, StringSet, log,
- hasOwn = Object.prototype.hasOwnProperty,
trackQueue = [];
/**
trackQueue = [];
/**
@@
-580,7
+579,7
@@
* @property
* @private
*/
* @property
* @private
*/
- var registry =
{}
,
+ var registry =
Object.create( null )
,
// Mapping of sources, keyed by source-id, values are strings.
//
// Format:
// Mapping of sources, keyed by source-id, values are strings.
//
// Format:
@@
-589,7
+588,7
@@
// 'sourceId': 'http://example.org/w/load.php'
// }
//
// 'sourceId': 'http://example.org/w/load.php'
// }
//
- sources =
{}
,
+ sources =
Object.create( null )
,
// For queueModuleScript()
handlingPendingRequests = false,
// For queueModuleScript()
handlingPendingRequests = false,
@@
-927,7
+926,7
@@
function sortDependencies( module, resolved, unresolved ) {
var i, deps, skip;
function sortDependencies( module, resolved, unresolved ) {
var i, deps, skip;
- if ( !
hasOwn.call( registry, module
) ) {
+ if ( !
( module in registry
) ) {
throw new Error( 'Unknown dependency: ' + module );
}
throw new Error( 'Unknown dependency: ' + module );
}
@@
-1057,7
+1056,7
@@
function queueModuleScript( src, moduleName, callback ) {
pendingRequests.push( function () {
// Keep in sync with execute()/runScript().
function queueModuleScript( src, moduleName, callback ) {
pendingRequests.push( function () {
// Keep in sync with execute()/runScript().
- if ( moduleName !== 'jquery'
&& hasOwn.call( registry, moduleName )
) {
+ if ( moduleName !== 'jquery' ) {
window.require = mw.loader.require;
window.module = registry[ moduleName ].module;
}
window.require = mw.loader.require;
window.module = registry[ moduleName ].module;
}
@@
-1192,9
+1191,6
@@
var key, value, media, i, urls, cssHandle, siteDeps, siteDepErr, runScript,
cssPending = 0;
var key, value, media, i, urls, cssHandle, siteDeps, siteDepErr, runScript,
cssPending = 0;
- if ( !hasOwn.call( registry, module ) ) {
- throw new Error( 'Module has not been registered yet: ' + module );
- }
if ( registry[ module ].state !== 'loaded' ) {
throw new Error( 'Module in state "' + registry[ module ].state + '" may not be executed: ' + module );
}
if ( registry[ module ].state !== 'loaded' ) {
throw new Error( 'Module in state "' + registry[ module ].state + '" may not be executed: ' + module );
}
@@
-1635,8
+1631,7
@@
* or null if the module does not exist
*/
function getModuleKey( module ) {
* or null if the module does not exist
*/
function getModuleKey( module ) {
- return hasOwn.call( registry, module ) ?
- ( module + '@' + registry[ module ].version ) : null;
+ return module in registry ? ( module + '@' + registry[ module ].version ) : null;
}
/**
}
/**
@@
-1668,7
+1663,7
@@
* @param {string} [skip]
*/
function registerOne( module, version, dependencies, group, source, skip ) {
* @param {string} [skip]
*/
function registerOne( module, version, dependencies, group, source, skip ) {
- if (
hasOwn.call( registry, module )
) {
+ if (
module in registry
) {
throw new Error( 'module already registered: ' + module );
}
registry[ module ] = {
throw new Error( 'module already registered: ' + module );
}
registry[ module ] = {
@@
-1721,7
+1716,7
@@
// Appends a list of modules from the queue to the batch
for ( q = 0; q < queue.length; q++ ) {
// Only load modules which are registered
// Appends a list of modules from the queue to the batch
for ( q = 0; q < queue.length; q++ ) {
// Only load modules which are registered
- if (
hasOwn.call( registry, queue[ q ] )
&& registry[ queue[ q ] ].state === 'registered' ) {
+ if (
queue[ q ] in registry
&& registry[ queue[ q ] ].state === 'registered' ) {
// Prevent duplicate entries
if ( batch.indexOf( queue[ q ] ) === -1 ) {
batch.push( queue[ q ] );
// Prevent duplicate entries
if ( batch.indexOf( queue[ q ] ) === -1 ) {
batch.push( queue[ q ] );
@@
-1798,7
+1793,7
@@
addSource: function ( ids ) {
var id;
for ( id in ids ) {
addSource: function ( ids ) {
var id;
for ( id in ids ) {
- if (
hasOwn.call( sources, id )
) {
+ if (
id in sources
) {
throw new Error( 'source already registered: ' + id );
}
sources[ id ] = ids[ id ];
throw new Error( 'source already registered: ' + id );
}
sources[ id ] = ids[ id ];
@@
-1877,7
+1872,7
@@
name = split.name,
version = split.version;
// Automatically register module
name = split.name,
version = split.version;
// Automatically register module
- if ( !
hasOwn.call( registry, name
) ) {
+ if ( !
( name in registry
) ) {
mw.loader.register( name );
}
// Check for duplicate implementation
mw.loader.register( name );
}
// Check for duplicate implementation
@@
-1960,13
+1955,13
@@
/**
* Change the state of one or more modules.
*
/**
* Change the state of one or more modules.
*
- * @param {Object}
modul
es Object of module name/state pairs
+ * @param {Object}
stat
es Object of module name/state pairs
*/
*/
- state: function (
modul
es ) {
+ state: function (
stat
es ) {
var module, state;
var module, state;
- for ( module in
modul
es ) {
- state =
modul
es[ module ];
- if ( !
hasOwn.call( registry, module
) ) {
+ for ( module in
stat
es ) {
+ state =
stat
es[ module ];
+ if ( !
( module in registry
) ) {
mw.loader.register( module );
}
setAndPropagate( module, state );
mw.loader.register( module );
}
setAndPropagate( module, state );
@@
-1981,7
+1976,7
@@
* in the registry.
*/
getVersion: function ( module ) {
* in the registry.
*/
getVersion: function ( module ) {
- return
hasOwn.call( registry, module )
? registry[ module ].version : null;
+ return
module in registry
? registry[ module ].version : null;
},
/**
},
/**
@@
-1992,7
+1987,7
@@
* in the registry.
*/
getState: function ( module ) {
* in the registry.
*/
getState: function ( module ) {
- return
hasOwn.call( registry, module )
? registry[ module ].state : null;
+ return
module in registry
? registry[ module ].state : null;
},
/**
},
/**