aboutsummaryrefslogtreecommitdiffstats
path: root/commandBookmarklet.js
diff options
context:
space:
mode:
Diffstat (limited to 'commandBookmarklet.js')
-rw-r--r--commandBookmarklet.js20
1 files changed, 13 insertions, 7 deletions
diff --git a/commandBookmarklet.js b/commandBookmarklet.js
index 48b43d5..829c9cd 100644
--- a/commandBookmarklet.js
+++ b/commandBookmarklet.js
@@ -11,7 +11,7 @@ let PLUGIN_INFO =
<description>convert bookmarklets to commands</description>
<description lang="ja">ブックマークレットをコマンドにする</description>
<author mail="halt.feits@gmail.com">halt feits</author>
-<version>0.6.5</version>
+<version>0.6.6</version>
<minVersion>2.0pre</minVersion>
<maxVersion>2.1pre</maxVersion>
<updateURL>http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/commandBookmarklet.js</updateURL>
@@ -84,11 +84,17 @@ items.forEach(function (item) {
);
});
-function stringToBoolean(str, defaultValue) {
- return !str ? defaultValue
- : str.toLowerCase() === 'false' ? false
- : /^\d+$/.test(str) ? parseInt(str)
- : true;
+function toBoolean (value, def) {
+ switch (typeof value) {
+ case 'undefined':
+ return def;
+ case 'number':
+ return !!value;
+ case 'string':
+ return !/^(\d+|false)$/i.test(value) || parseInt(value);
+ default:
+ return !!value;
+ }
}
function evalInSandbox (str) {
@@ -98,7 +104,7 @@ function evalInSandbox (str) {
}
function evalScript (url) {
- if (stringToBoolean(liberator.globalVariables.command_bookmarklet_use_sandbox, false)) {
+ if (toBoolean(liberator.globalVariables.command_bookmarklet_use_sandbox, false)) {
evalInSandbox(decodeURIComponent(url.replace(/^\s*javascript:/i, '')));
} else {
liberator.open(url);