JScript User Command /O Argument Resolution

When I execute the following sample test script it fails(?) as shown in the last example. Being a JScript novice it's quite possible that I'm attempting to do something against the rules.

[code]// Called by Directory Opus to initialize the script
function OnInit(initData)
{
initData.name = "DeBug";
initData.desc = "Debugging template";
initData.copyright = "";
initData.version = "1.0";
initData.default_enable = true;

var cmd = initData.AddCommand();
cmd.name = initData.name;
cmd.method = "OnExecScript";
cmd.desc = initData.desc;
cmd.label = initData.name;
cmd.template = "a/o,b/o";
}

// This is the where the work is done
function OnExecScript(scriptCmdData) {
// If there is at least one open lister then..
// enable debugging if the Other Log panel is open
var dbg = (DOpus.listers.count == 0) ? false:DOpus.listers.lastactive.utilpane;
if (dbg) DOpus.output(scriptCmdData.cmdline);
// Initialise arguments object
var arg = {a:scriptCmdData.func.args.a, b:scriptCmdData.func.args.b};
if (dbg) {
DOpus.output("arguments as supplied:");
DOpus.output("arg.a = " + arg.a);
DOpus.output("arg.b = " + arg.b);
}
}[/code]
Debug output showing the results of various argument combinations:

DeBug: Script started successfully
DeBug: debug a="one" b="two"
DeBug: arguments as supplied:
DeBug: arg.a = one
DeBug: arg.b = two
DeBug: Script completed [as expected]

DeBug: Script started successfully
DeBug: debug a b="two"
DeBug: arguments as supplied:
DeBug: arg.a = true
DeBug: arg.b = two
DeBug: Script completed [as expected]

DeBug: Script started successfully
DeBug: debug b="two"
DeBug: arguments as supplied:
DeBug: arg.a = false
DeBug: arg.b = two
DeBug: Script completed [as expected]

DeBug: Script started successfully
DeBug: debug a="" b="two"
DeBug: arguments as supplied:
DeBug: arg.a = undefined
DeBug: arg.b = undefined

DeBug: Script completed [unexpected result]

Regards, AB