1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-20 08:37:59 +01:00

Pass proper objects to -js autocommands rather than stringified imitations.

This commit is contained in:
Kris Maglione
2010-12-17 13:21:55 -05:00
parent 9fb3febe95
commit 556c5b1903
3 changed files with 16 additions and 19 deletions

View File

@@ -314,12 +314,13 @@ const Command = Class("Command", {
replacementText: null
}, {
bindMacro: function (args, default_, params) {
let process = String;
let makeParams = function makeParams()
let (args = arguments)
params.map(function (name, i) [name, args[i]]).toObject();
params.map(function (name, i) [name, process(args[i])]).toObject();
if (callable(params))
makeParams = params;
else
makeParams = function makeParams(args) array(Iterator(params.apply(this, arguments))).map(function ([k, v]) [k, process(v)]).toObject();
else if (params)
params = array(params);
let rhs = args.literalArg;
@@ -345,6 +346,7 @@ const Command = Class("Command", {
action = dactyl.userEval("(function action() { with (action.makeParams.apply(this, arguments)) {" + args.literalArg + "} })")
else
action = dactyl.userFunc.apply(dactyl, params.concat(args.literalArg).array);
process = function (param) isObject(param) && param.valueOf ? param.valueOf() : param;
action.makeParams = makeParams;
break;
}