Gerrit Patch Uploader has uploaded a new change for review.

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

Change subject: mediawiki.inspect: Guard against Object.prototype keys as 
module names
......................................................................

mediawiki.inspect: Guard against Object.prototype keys as module names

This avoids conflicts where we confuse an Object method for a
registered module.

Change-Id: Ic32b0706e7dc7755ae096e1be2d5d941347d6123
---
M resources/src/mediawiki/mediawiki.inspect.js
1 file changed, 10 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/47/179447/1

diff --git a/resources/src/mediawiki/mediawiki.inspect.js 
b/resources/src/mediawiki/mediawiki.inspect.js
index 8e9fc89..4f02e06 100644
--- a/resources/src/mediawiki/mediawiki.inspect.js
+++ b/resources/src/mediawiki/mediawiki.inspect.js
@@ -7,6 +7,9 @@
 /*jshint devel:true */
 ( function ( mw, $ ) {
 
+       var inspect,
+               hasOwn = Object.prototype.hasOwnProperty;
+
        function sortByProperty( array, prop, descending ) {
                var order = descending ? -1 : 1;
                return array.sort( function ( a, b ) {
@@ -25,7 +28,7 @@
         * @class mw.inspect
         * @singleton
         */
-       var inspect = {
+       inspect = {
 
                /**
                 * Return a map of all dependency relationships between loaded 
modules.
@@ -39,11 +42,15 @@
                        $.each( modules, function ( moduleIndex, moduleName ) {
                                var dependencies = 
mw.loader.moduleRegistry[moduleName].dependencies || [];
 
-                               graph[moduleName] = graph[moduleName] || { 
requiredBy: [] };
+                               if ( !hasOwn.call( graph, moduleName ) ) {
+                                       graph[moduleName] = { requiredBy: [] };
+                               }
                                graph[moduleName].requires = dependencies;
 
                                $.each( dependencies, function ( depIndex, 
depName ) {
-                                       graph[depName] = graph[depName] || { 
requiredBy: [] };
+                                       if ( !hasOwn.call( graph, depName ) ) {
+                                               graph[depName] = { requiredBy: 
[] };
+                                       }
                                        graph[depName].requiredBy.push( 
moduleName );
                                } );
                        } );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic32b0706e7dc7755ae096e1be2d5d941347d6123
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Gerrit Patch Uploader <gerritpatchuploa...@gmail.com>
Gerrit-Reviewer: Gerrit Patch Uploader <gerritpatchuploa...@gmail.com>

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

Reply via email to