diff --git a/lib/settings.js b/lib/settings.js index f72051d..0bbc9b1 100644 --- a/lib/settings.js +++ b/lib/settings.js @@ -338,23 +338,25 @@ const resetSymbol = Symbol("reset"); function changeValue(name, newValue){ var settingDefinition = scope.getDefinition(name); - var oldValue = settings[name]; - if (newValue === resetSymbol){ - newValue = settingDefinition.defaultValue; - } - settings[name] = newValue; - ((eventHandler[name] || {})[defaultSymbol] || []).forEach(function(callback){ - callback({name, newValue, oldValue}); - }); - - if (settingDefinition.urlSpecific){ - urlContainer.get().forEach(function(entry){ - if (!entry.hasOwnProperty(name)){ - ((eventHandler[name] || {})[entry.url] || []).forEach(function(callback){ - callback({name, newValue, oldValue, url: entry.url}); - }); - } + if (settingDefinition){ + var oldValue = settings[name]; + if (newValue === resetSymbol){ + newValue = settingDefinition.defaultValue; + } + settings[name] = newValue; + ((eventHandler[name] || {})[defaultSymbol] || []).forEach(function(callback){ + callback({name, newValue, oldValue}); }); + + if (settingDefinition.urlSpecific){ + urlContainer.get().forEach(function(entry){ + if (!entry.hasOwnProperty(name)){ + ((eventHandler[name] || {})[entry.url] || []).forEach(function(callback){ + callback({name, newValue, oldValue, url: entry.url}); + }); + } + }); + } } }