Merge "Revert "Adding a bit more documentation to mw.loader.using""
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sun, 20 Jul 2014 22:08:49 +0000 (22:08 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sun, 20 Jul 2014 22:08:49 +0000 (22:08 +0000)
1  2 
resources/src/mediawiki/mediawiki.js

                         * Format:
                         *     {
                         *         'moduleName': {
 +                       *             // At registry
                         *             'version': ############## (unix timestamp),
                         *             'dependencies': ['required.foo', 'bar.also', ...], (or) function () {}
                         *             'group': 'somegroup', (or) null,
                         *             'source': 'local', 'someforeignwiki', (or) null
                         *             'state': 'registered', 'loaded', 'loading', 'ready', 'error' or 'missing'
 +                       *             'skip': 'return !!window.Example', (or) null
 +                       *
 +                       *             // Added during implementation
 +                       *             'skipped': true,
                         *             'script': ...,
                         *             'style': ...,
                         *             'messages': { 'key': 'value' },
                        /* Private methods */
  
                        function getMarker() {
 -                              // Cached ?
 -                              if ( $marker ) {
 -                                      return $marker;
 -                              }
 -
 -                              $marker = $( 'meta[name="ResourceLoaderDynamicStyles"]' );
 -                              if ( $marker.length ) {
 -                                      return $marker;
 +                              // Cached
 +                              if ( !$marker ) {
 +                                      $marker = $( 'meta[name="ResourceLoaderDynamicStyles"]' );
 +                                      if ( !$marker.length ) {
 +                                              mw.log( 'No <meta name="ResourceLoaderDynamicStyles"> found, inserting dynamically' );
 +                                              $marker = $( '<meta>' ).attr( 'name', 'ResourceLoaderDynamicStyles' ).appendTo( 'head' );
 +                                      }
                                }
 -                              mw.log( 'getMarker> No <meta name="ResourceLoaderDynamicStyles"> found, inserting dynamically.' );
 -                              $marker = $( '<meta>' ).attr( 'name', 'ResourceLoaderDynamicStyles' ).appendTo( 'head' );
 -
                                return $marker;
                        }
  
                                        skip = new Function( registry[module].skip );
                                        registry[module].skip = null;
                                        if ( skip() ) {
 +                                              registry[module].skipped = true;
                                                registry[module].dependencies = [];
                                                registry[module].state = 'ready';
                                                handlePending( module );
                                                crossDomain: true,
                                                cache: true,
                                                async: true
 -                                      } ).always( function () {
 -                                              if ( callback  ) {
 -                                                      callback();
 -                                              }
 -                                      } );
 +                                      } ).always( callback );
                                } else {
                                        /*jshint evil:true */
                                        document.write( mw.html.element( 'script', { 'src': src }, '' ) );
                                /**
                                 * Execute a function as soon as one or more required modules are ready.
                                 *
-                                * If the required modules are already loaded, the function will be
-                                * executed immediately and the modules will not be reloaded.
-                                *
                                 * Example of inline dependency on OOjs:
                                 *
                                 *     mw.loader.using( 'oojs', function () {