From: Fomafix Date: Wed, 9 Apr 2014 06:52:05 +0000 (+0000) Subject: mw.hook: Use hasOwnProperty X-Git-Tag: 1.31.0-rc.0~16240^2 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22auteur_infos%22%2C%20%22id_auteur=%24id%22%29%20.%20%22?a=commitdiff_plain;h=ea741f8c1a35ed65a914c2941722f143da97d4e8;p=lhc%2Fweb%2Fwiklou.git mw.hook: Use hasOwnProperty This allows hooks with name of predefined methods. Change-Id: I71823a61a43787c14b410bc732f934fe7545fcee --- diff --git a/resources/src/mediawiki/mediawiki.js b/resources/src/mediawiki/mediawiki.js index 57f85d8516..f6154eeb0d 100644 --- a/resources/src/mediawiki/mediawiki.js +++ b/resources/src/mediawiki/mediawiki.js @@ -2371,7 +2371,9 @@ var mw = ( function ( $, undefined ) { * @return {mw.hook} */ return function ( name ) { - var list = lists[name] || ( lists[name] = $.Callbacks( 'memory' ) ); + var list = hasOwn.call( lists, name ) ? + lists[name] : + lists[name] = $.Callbacks( 'memory' ); return { /** diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.test.js index e1fcb6a9f5..6f81155572 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.test.js @@ -854,7 +854,7 @@ } ); - QUnit.test( 'mw.hook', 12, function ( assert ) { + QUnit.test( 'mw.hook', 13, function ( assert ) { var hook, add, fire, chars, callback; mw.hook( 'test.hook.unfired' ).add( function () { @@ -866,6 +866,11 @@ } ); mw.hook( 'test.hook.basic' ).fire(); + mw.hook( 'hasOwnProperty' ).add( function () { + assert.ok( true, 'hook with name of predefined method' ); + } ); + mw.hook( 'hasOwnProperty' ).fire(); + mw.hook( 'test.hook.data' ).add( function ( data1, data2 ) { assert.equal( data1, 'example', 'Fire with data (string param)' ); assert.deepEqual( data2, ['two'], 'Fire with data (array param)' );