[Pkg-mozext-commits] [greasemonkey] 19/41: Remove usage of __noSuchMethod__ in the `util` module.
David Prévot
taffit at moszumanska.debian.org
Thu Apr 30 22:06:33 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository greasemonkey.
commit 81c6e5a0ed0f724eef28f4c15e5d16ad672bb642
Author: Anthony Lieuallen <arantius at gmail.com>
Date: Thu Apr 2 16:46:46 2015 -0400
Remove usage of __noSuchMethod__ in the `util` module.
Instead, prepopulate lazy getters at "build" time.
Fixes #2104
---
build.sh | 2 ++
modules/util.js | 59 +++++++++++++++++++++++++++++++++++--------
modules/util/parseMetaLine.js | 2 +-
util.sh | 11 ++++++++
4 files changed, 62 insertions(+), 12 deletions(-)
diff --git a/build.sh b/build.sh
index 45e4178..3ecbd8e 100755
--- a/build.sh
+++ b/build.sh
@@ -1,5 +1,7 @@
#!/bin/sh
+sh util.sh
+
# Set up variables
if [ "official" = "$1" ]; then
# For official builds, use the version in install.rdf.
diff --git a/modules/util.js b/modules/util.js
index d75709c..61ca95e 100644
--- a/modules/util.js
+++ b/modules/util.js
@@ -1,5 +1,8 @@
const EXPORTED_SYMBOLS = ['GM_util'];
+const Cu = Components.utils;
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+
/*
This "util" module separates all the methods into individual files, and lazily
imports them automatically, the first time each method is called. Simply import
@@ -17,14 +20,48 @@ all modules inside 'util/' should define and export exactly one function, with
the same name as the file. All other contents are privates to that method's
module.
*/
-var GM_util = {
- __noSuchMethod__ : function(aName, aArguments) {
- try {
- Components.utils.import('resource://greasemonkey/util/' + aName + '.js',
- GM_util);
- return GM_util[aName].apply(GM_util, aArguments);
- } catch (e) {
- throw new Error('Could not import util ' + aName + ':\n' + e);
- }
- }
-}
+var GM_util = {};
+
+// Do not edit below this line. Use `util.sh` to auto-populate.
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'alert', 'resource://greasemonkey/util/alert.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'anonWrap', 'resource://greasemonkey/util/anonWrap.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'checkCoralCache', 'resource://greasemonkey/util/checkCoralCache.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'compareFirefoxVersion', 'resource://greasemonkey/util/compareFirefoxVersion.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'emptyEl', 'resource://greasemonkey/util/emptyEl.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'enqueueRemoveFile', 'resource://greasemonkey/util/enqueueRemoveFile.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'findMessageManager', 'resource://greasemonkey/util/findMessageManager.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'getBestLocaleMatch', 'resource://greasemonkey/util/getBestLocaleMatch.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'getBinaryContents', 'resource://greasemonkey/util/getBinaryContents.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'getBrowserWindow', 'resource://greasemonkey/util/getBrowserWindow.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'getContents', 'resource://greasemonkey/util/getContents.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'getEditor', 'resource://greasemonkey/util/getEditor.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'getEnabled', 'resource://greasemonkey/util/getEnabled.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'getPreferredLocale', 'resource://greasemonkey/util/getPreferredLocale.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'getScriptSource', 'resource://greasemonkey/util/getScriptSource.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'getService', 'resource://greasemonkey/util/getService.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'getTempDir', 'resource://greasemonkey/util/getTempDir.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'getTempFile', 'resource://greasemonkey/util/getTempFile.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'getUriFromFile', 'resource://greasemonkey/util/getUriFromFile.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'hitch', 'resource://greasemonkey/util/hitch.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'inArray', 'resource://greasemonkey/util/inArray.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'installScriptFromSource', 'resource://greasemonkey/util/installScriptFromSource.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'isGreasemonkeyable', 'resource://greasemonkey/util/isGreasemonkeyable.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'logError', 'resource://greasemonkey/util/logError.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'memoize', 'resource://greasemonkey/util/memoize.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'newUserScript', 'resource://greasemonkey/util/newUserScript.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'openInEditor', 'resource://greasemonkey/util/openInEditor.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'parseMetaLine', 'resource://greasemonkey/util/parseMetaLine.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'scriptDir', 'resource://greasemonkey/util/scriptDir.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'scriptMatchesUrlAndRuns', 'resource://greasemonkey/util/scriptMatchesUrlAndRuns.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'setEditor', 'resource://greasemonkey/util/setEditor.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'setEnabled', 'resource://greasemonkey/util/setEnabled.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'sha1', 'resource://greasemonkey/util/sha1.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'showInstallDialog', 'resource://greasemonkey/util/showInstallDialog.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'sniffGrants', 'resource://greasemonkey/util/sniffGrants.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'timeout', 'resource://greasemonkey/util/timeout.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'uriFromUrl', 'resource://greasemonkey/util/uriFromUrl.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'uuid', 'resource://greasemonkey/util/uuid.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'windowIdForEvent', 'resource://greasemonkey/util/windowIdForEvent.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'windowId', 'resource://greasemonkey/util/windowId.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'windowIsClosed', 'resource://greasemonkey/util/windowIsClosed.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'writeToFile', 'resource://greasemonkey/util/writeToFile.js');
diff --git a/modules/util/parseMetaLine.js b/modules/util/parseMetaLine.js
index 1c5a891..0aabab5 100644
--- a/modules/util/parseMetaLine.js
+++ b/modules/util/parseMetaLine.js
@@ -1,4 +1,4 @@
-const EXPORTED_SYMBOLS = ['SyntaxError', 'parseMetaLine'];
+const EXPORTED_SYMBOLS = ['parseMetaLine'];
/*
* Generated by PEG.js 0.8.0.
diff --git a/util.sh b/util.sh
new file mode 100755
index 0000000..575bef3
--- /dev/null
+++ b/util.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+
+U=./modules/util.js
+sed -i -e '/util.sh/,$d' $U
+echo '// Do not edit below this line. Use `util.sh` to auto-populate.' >> $U
+(cd ./modules/util; ls *.js | sort | sed -e 's/\.js//') | while read F; do
+ #echo "Cu.import('resource://greasemonkey/util/$F.js', GM_util);" >> $U
+ echo "XPCOMUtils.defineLazyModuleGetter(GM_util, '$F', 'resource://greasemonkey/util/$F.js');" >> $U
+done
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/greasemonkey.git
More information about the Pkg-mozext-commits
mailing list