jenkins-bot has submitted this change and it was merged. Change subject: resourceloader: Inverse hasOwn() check to fix require in debug mode ......................................................................
resourceloader: Inverse hasOwn() check to fix require in debug mode Follows-up 94c1162400. Makes require and module work in debug mode. Bug: T108655 Change-Id: I68ea05a31d5bde530e5e80aeff076df6b9924bac --- M resources/src/mediawiki/mediawiki.js A tests/qunit/data/defineCallMwLoaderTestCallback.js A tests/qunit/data/requireCallMwLoaderTestCallback.js M tests/qunit/suites/resources/mediawiki/mediawiki.test.js 4 files changed, 24 insertions(+), 1 deletion(-) Approvals: Krinkle: Looks good to me, approved Jdlrobson: Looks good to me, but someone else must approve jenkins-bot: Verified diff --git a/resources/src/mediawiki/mediawiki.js b/resources/src/mediawiki/mediawiki.js index f282db6..4aad2ba 100644 --- a/resources/src/mediawiki/mediawiki.js +++ b/resources/src/mediawiki/mediawiki.js @@ -1193,7 +1193,7 @@ var r = $.Deferred(); pendingRequests.push( function () { - if ( moduleName && !hasOwn.call( registry, moduleName ) ) { + if ( moduleName && hasOwn.call( registry, moduleName ) ) { window.require = mw.loader.require; window.module = registry[ moduleName ].module; } diff --git a/tests/qunit/data/defineCallMwLoaderTestCallback.js b/tests/qunit/data/defineCallMwLoaderTestCallback.js new file mode 100644 index 0000000..afd886c --- /dev/null +++ b/tests/qunit/data/defineCallMwLoaderTestCallback.js @@ -0,0 +1 @@ +module.exports = 'Define worked.'; diff --git a/tests/qunit/data/requireCallMwLoaderTestCallback.js b/tests/qunit/data/requireCallMwLoaderTestCallback.js new file mode 100644 index 0000000..8bc087b --- /dev/null +++ b/tests/qunit/data/requireCallMwLoaderTestCallback.js @@ -0,0 +1,2 @@ +var x = require( 'test.require.define' ); +module.exports = 'Require worked.' + x; diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.test.js index ce4ea8b..dd43c55 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.test.js @@ -1127,4 +1127,24 @@ }, /is not loaded/, 'Requesting non-existent modules throws error.' ); } ); + QUnit.asyncTest( 'mw.loader require in debug mode', 1, function ( assert ) { + var path = mw.config.get( 'wgScriptPath' ); + mw.loader.register( [ + [ 'test.require.define', '0' ], + [ 'test.require.callback', '0', [ 'test.require.define' ] ] + ] ); + mw.loader.implement( 'test.require.callback', [ QUnit.fixurl( path + '/tests/qunit/data/requireCallMwLoaderTestCallback.js' ) ] ); + mw.loader.implement( 'test.require.define', [ QUnit.fixurl( path + '/tests/qunit/data/defineCallMwLoaderTestCallback.js' ) ] ); + + mw.loader.using( 'test.require.callback', function () { + QUnit.start(); + var exported = mw.loader.require( 'test.require.callback' ); + assert.strictEqual( exported, 'Require worked.Define worked.', + 'module.exports worked in debug mode' ); + }, function () { + QUnit.start(); + assert.ok( false, 'Error callback fired while loader.using "test.require.callback" module' ); + } ); + } ); + }( mediaWiki, jQuery ) ); -- To view, visit https://gerrit.wikimedia.org/r/271921 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I68ea05a31d5bde530e5e80aeff076df6b9924bac Gerrit-PatchSet: 8 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Jdlrobson <jrob...@wikimedia.org> Gerrit-Reviewer: Edokter <er...@darcoury.nl> Gerrit-Reviewer: Jack Phoenix <j...@countervandalism.net> Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org> Gerrit-Reviewer: Krinkle <krinklem...@gmail.com> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits