ignore set menu item fields
authorZeke Sikelianos <zeke@sikelianos.com>
Thu, 17 Mar 2016 23:20:23 +0000 (16:20 -0700)
committerZeke Sikelianos <zeke@sikelianos.com>
Thu, 17 Mar 2016 23:20:23 +0000 (16:20 -0700)
lib/browser/api/menu.js

index cfb00bd45277d403e58da160a6feedf7239e5f42..4effa10238e648d83c4fe24e4ec4d666c39d512f 100644 (file)
@@ -269,7 +269,7 @@ Menu.getApplicationMenu = function() {
 Menu.sendActionToFirstResponder = bindings.sendActionToFirstResponder;
 
 Menu.buildFromTemplate = function(template) {
-  var insertIndex, item, j, k, key, len, len1, menu, menuItem, positionedTemplate, value;
+  var insertIndex, item, j, k, key, len, len1, menu, menuItem, positionedTemplate;
   if (!Array.isArray(template)) {
     throw new TypeError('Invalid template for Menu');
   }
@@ -293,9 +293,9 @@ Menu.buildFromTemplate = function(template) {
     }
     menuItem = new MenuItem(item);
     for (key in item) {
-      value = item[key];
-      if (menuItem[key] == null) {
-        menuItem[key] = value;
+      // Preserve extra fields specified by user
+      if (!menuItem.hasOwnProperty(key)) {
+        menuItem[key] = item[key];
       }
     }
     menu.append(menuItem);