Krinkle has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/381533 )

Change subject: mw.loader: Use Array#indexOf directly instead of jQuery.inArray
......................................................................

mw.loader: Use Array#indexOf directly instead of jQuery.inArray

Unlike other jQuery methods (which are quite often significantly
faster or slower than native methods), jQuery.inArray is quite
literally a wrapper around Array#indexOf. Use it directly where
possible.

Also:
* Replace `$.inArray(val, [a, b]) !== -1` pattern
  with `val === a || val === b` which is upto 10x faster.
* mw.loader.store.set.: Remove redundant parenthesis in nested expression.

Change-Id: Ia2b922b3245bfb39b609b57e84938317e9c89cd6
---
M resources/src/mediawiki/mediawiki.js
1 file changed, 11 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/33/381533/1

diff --git a/resources/src/mediawiki/mediawiki.js 
b/resources/src/mediawiki/mediawiki.js
index aae292d..9a347f2 100644
--- a/resources/src/mediawiki/mediawiki.js
+++ b/resources/src/mediawiki/mediawiki.js
@@ -1127,7 +1127,7 @@
                                                registry[ module ].dependencies 
= [ registry[ module ].dependencies ];
                                        }
                                }
-                               if ( $.inArray( module, resolved ) !== -1 ) {
+                               if ( resolved.indexOf( module ) !== -1 ) {
                                        // 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++ ) {
-                                       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',
@@ -1478,7 +1478,7 @@
                                        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, queue ) === -1 ) {
+                                       if ( state === 'registered' && 
queue.indexOf( module ) === -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' ) {
@@ -1759,7 +1759,7 @@
                                                // 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';
@@ -1960,7 +1960,7 @@
                                        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 );
@@ -2108,7 +2108,7 @@
                                                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 );
@@ -2340,11 +2340,13 @@
                                                        // 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)
-                                                       $.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;

-- 
To view, visit https://gerrit.wikimedia.org/r/381533
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia2b922b3245bfb39b609b57e84938317e9c89cd6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Krinkle <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to