1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-22 03:47:58 +01:00

Fix some option validators. Closes issue #78.

This commit is contained in:
Kris Maglione
2010-10-12 11:04:57 -04:00
parent 2cdd59b1d4
commit 8582ea8ba5
2 changed files with 11 additions and 3 deletions

View File

@@ -597,8 +597,12 @@ const CompletionContext = Class("CompletionContext", {
if (!context.autoComplete && !context.tabPressed && context.editor)
context.waitingForTab = true;
else if (completer)
return completer.apply(self || this, [context].concat(Array.slice(arguments, fork.length)));
else if (completer) {
let res = completer.apply(self || this, [context].concat(Array.slice(arguments, fork.length)));
if (res && !isArray(res) && !isArray(res.__proto__))
return [k for (k in res)];
return res;
}
if (completer)
return null;
return context;

View File

@@ -8,6 +8,8 @@
/** @scope modules */
let ValueError = Class("ValueError", Error);
// do NOT create instances of this class yourself, use the helper method
// options.add() instead
/**
@@ -227,6 +229,8 @@ const Option = Class("Option", {
return this.invalidArgument(str || this.stringify(values), operator);
}
catch (e) {
if (!(e instanceof ValueError))
dactyl.reportError(e);
return this.invalidArgument(str || this.stringify(values), operator) + ": " + e.message;
}
@@ -563,7 +567,7 @@ const Option = Class("Option", {
validIf: function (test, error) {
if (test)
return true;
throw Error(error);
throw ValueError(error);
},
// TODO: Run this by default?