[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