Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: lib/prefs.js

Issue 29332780: Issue 3418 - Replace expression closures in prefs.js (Closed)
Patch Set: Created Dec. 16, 2015, 10:06 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/prefs.js
===================================================================
--- a/lib/prefs.js
+++ b/lib/prefs.js
@@ -1,14 +1,14 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+let {Services} = Cu.import("resource://gre/modules/Services.jsm", {});
+let {XPCOMUtils} = Cu.import("resource://gre/modules/XPCOMUtils.jsm", {});
let {addonRoot, addonName} = require("info");
let branchName = "extensions." + addonName + ".";
let branch = Services.prefs.getBranch(branchName);
let preconfiguredBranch =
Services.prefs.getBranch(branchName + "preconfigured.");
let ignorePrefChanges = false;
@@ -39,65 +39,68 @@ function init()
setter(defaultBranch, pref, value);
defineProperty(pref, false, getter, setter);
}
// Add preference change observer
try
{
branch.QueryInterface(Ci.nsIPrefBranch2).addObserver("", Prefs, true);
- onShutdown.add(function() branch.removeObserver("", Prefs));
+ onShutdown.add(() => branch.removeObserver("", Prefs));
}
catch (e)
{
Cu.reportError(e);
}
}
/**
* Sets up getter/setter on Prefs object for preference.
*/
function defineProperty(/**String*/ name, defaultValue, /**Function*/ readFunc, /**Function*/ writeFunc)
{
let value = defaultValue;
- Prefs["_update_" + name] = function()
+ Prefs["_update_" + name] = () =>
{
try
{
value = readFunc(branch, name);
triggerListeners(name);
}
catch(e)
{
Cu.reportError(e);
}
};
- Prefs.__defineGetter__(name, function() value);
- Prefs.__defineSetter__(name, function(newValue)
- {
- if (value == newValue)
+ Object.defineProperty(Prefs, name, {
+ enumerable: true,
+ get: () => value,
+ set: (newValue) =>
+ {
+ if (value == newValue)
+ return value;
+
+ try
+ {
+ ignorePrefChanges = true;
+ writeFunc(branch, name, newValue);
+ value = newValue;
+ Services.prefs.savePrefFile(null);
+ triggerListeners(name);
+ }
+ catch(e)
+ {
+ Cu.reportError(e);
+ }
+ finally
+ {
+ ignorePrefChanges = false;
+ }
return value;
-
- try
- {
- ignorePrefChanges = true;
- writeFunc(branch, name, newValue);
- value = newValue;
- Services.prefs.savePrefFile(null);
- triggerListeners(name);
}
- catch(e)
- {
- Cu.reportError(e);
- }
- finally
- {
- ignorePrefChanges = false;
- }
- return value;
});
Prefs["_update_" + name]();
}
let listeners = [];
function triggerListeners(/**String*/ name)
{
for (let i = 0; i < listeners.length; i++)
@@ -164,35 +167,35 @@ let Prefs = exports.Prefs =
if ("_update_" + data in this)
this["_update_" + data]();
},
QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObserver])
};
+let getIntPref = (branch, pref) => branch.getIntPref(pref);
+let setIntPref = (branch, pref, newValue) => branch.setIntPref(pref, newValue);
+
+let getBoolPref = (branch, pref) => branch.getBoolPref(pref);
+let setBoolPref = (branch, pref, newValue) => branch.setBoolPref(pref, newValue);
+
+let getCharPref = (branch, pref) => branch.getComplexValue(pref, Ci.nsISupportsString).data;
+let setCharPref = (branch, pref, newValue) =>
+{
+ let str = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString);
+ str.data = newValue;
+ branch.setComplexValue(pref, Ci.nsISupportsString, str);
+};
+
+let getJSONPref = (branch, pref) => JSON.parse(getCharPref(branch, pref));
+let setJSONPref = (branch, pref, newValue) => setCharPref(branch, pref, JSON.stringify(newValue));
+
// Getter/setter functions for difference preference types
let typeMap =
{
boolean: [getBoolPref, setBoolPref],
number: [getIntPref, setIntPref],
string: [getCharPref, setCharPref],
object: [getJSONPref, setJSONPref]
};
-function getIntPref(branch, pref) branch.getIntPref(pref)
-function setIntPref(branch, pref, newValue) branch.setIntPref(pref, newValue)
-
-function getBoolPref(branch, pref) branch.getBoolPref(pref)
-function setBoolPref(branch, pref, newValue) branch.setBoolPref(pref, newValue)
-
-function getCharPref(branch, pref) branch.getComplexValue(pref, Ci.nsISupportsString).data
-function setCharPref(branch, pref, newValue)
-{
- let str = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString);
- str.data = newValue;
- branch.setComplexValue(pref, Ci.nsISupportsString, str);
-}
-
-function getJSONPref(branch, pref) JSON.parse(getCharPref(branch, pref))
-function setJSONPref(branch, pref, newValue) setCharPref(branch, pref, JSON.stringify(newValue))
-
init();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld