resourceloader: Remove redundant calls to getState() in mw.loader.enqueue()
authorTimo Tijhof <krinklemail@gmail.com>
Fri, 24 Aug 2018 02:36:40 +0000 (03:36 +0100)
committerTimo Tijhof <krinklemail@gmail.com>
Sun, 26 Aug 2018 04:25:16 +0000 (05:25 +0100)
The list of module names are known to be registered there.
Thus, no need for getState() and its hasOwn.call(registry) check.

If it was possible for an unknown module name to make its way to this code,
it would break both before and after this commit due to the setting of
registry[module].state which would throw TypeError for setting on undefined.

Change-Id: Ie3cccc7e4c57648279325852f362d5eb72128306

resources/src/startup/mediawiki.js

index 0aa15db..1ec2470 100644 (file)
                                        if ( ready !== undefined ) {
                                                ready();
                                        }
-
                                        return;
                                }
 
                                                        dependencies
                                                );
                                        }
-
                                        return;
                                }
 
                                        jobs.push( {
                                                // Narrow down the list to modules that are worth waiting for
                                                dependencies: dependencies.filter( function ( module ) {
-                                                       var state = mw.loader.getState( module );
+                                                       var state = registry[ module ].state;
                                                        return state === 'registered' || state === 'loaded' || state === 'loading' || state === 'executing';
                                                } ),
                                                ready: ready,
                                }
 
                                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).
-                                       if ( state === 'registered' && queue.indexOf( module ) === -1 ) {
+                                       if ( registry[ module ].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' ) {