JGonera has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/60346


Change subject: Call error on unknown dependencies in mw.loader.using()
......................................................................

Call error on unknown dependencies in mw.loader.using()

Previously using would throw an error on unknown (not registered)
dependencies which doesn't seem correct as there is an error callback.

Bug: 47296
Change-Id: Ic2f81b725acac2086178e33033f10c4c80ae1573
---
M resources/mediawiki/mediawiki.js
M tests/qunit/suites/resources/mediawiki/mediawiki.test.js
2 files changed, 25 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/46/60346/1

diff --git a/resources/mediawiki/mediawiki.js b/resources/mediawiki/mediawiki.js
index 6c7e697..3e23a3d 100644
--- a/resources/mediawiki/mediawiki.js
+++ b/resources/mediawiki/mediawiki.js
@@ -1436,7 +1436,15 @@
                                                dependencies = [ dependencies ];
                                        }
                                        // Resolve entire dependency map
-                                       dependencies = resolve( dependencies );
+                                       try {
+                                               dependencies = resolve( 
dependencies );
+                                       } catch ( e ) {
+                                               // Execute error immediately on 
unknown or circular dependencies
+                                               if ( $.isFunction( error ) ) {
+                                                       error( e, dependencies 
);
+                                               }
+                                               return;
+                                       }
                                        if ( allReady( dependencies ) ) {
                                                // Run ready immediately
                                                if ( $.isFunction( ready ) ) {
diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.test.js 
b/tests/qunit/suites/resources/mediawiki/mediawiki.test.js
index e338675..cc453a8 100644
--- a/tests/qunit/suites/resources/mediawiki/mediawiki.test.js
+++ b/tests/qunit/suites/resources/mediawiki/mediawiki.test.js
@@ -678,6 +678,22 @@
                );
        } );
 
+       QUnit.test( 'mw.loader unknown dependency', 1, function ( assert ) {
+               mw.loader.using(
+                       'test.module10',
+                       function () {
+                               assert.ok( false, 'Success fired despite 
unknown dependency' );
+                       },
+                       function ( e, dependencies ) {
+                               assert.deepEqual(
+                                       dependencies,
+                                       ['test.module10'],
+                                       'Error callback called with the module 
as a dependency'
+                               );
+                       }
+               );
+       } );
+
        QUnit.asyncTest( 'mw.loader dependency handling', 5, function ( assert 
) {
                mw.loader.addSource(
                        'testloader',

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic2f81b725acac2086178e33033f10c4c80ae1573
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: JGonera <jgon...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to