Merge pull request #7819 from Snuffleupagus/issue-7804

For commands with with too few arguments, clear out `args` if it's an Array instead of replacing it with `null` in `EvaluatorPreprocessor_read` (issue 7804)
This commit is contained in:
Tim van der Meij 2016-11-18 19:04:30 +01:00 committed by GitHub
commit 043cea251d

View File

@ -2850,7 +2850,7 @@ var EvaluatorPreprocessor = (function EvaluatorPreprocessorClosure() {
argsLength--; argsLength--;
} }
while (argsLength < numArgs && nonProcessedArgs.length !== 0) { while (argsLength < numArgs && nonProcessedArgs.length !== 0) {
if (!args) { if (args === null) {
args = []; args = [];
} }
args.unshift(nonProcessedArgs.pop()); args.unshift(nonProcessedArgs.pop());
@ -2859,17 +2859,18 @@ var EvaluatorPreprocessor = (function EvaluatorPreprocessorClosure() {
} }
if (argsLength < numArgs) { if (argsLength < numArgs) {
// If we receive too few args, it's not possible to possible // If we receive too few arguments, it's not possible to execute
// to execute the command, so skip the command // the command, hence we skip the command.
info('Command ' + fn + ': because expected ' + warn('Skipping command ' + fn + ': expected ' + numArgs +
numArgs + ' args, but received ' + argsLength + ' args, but received ' + argsLength + ' args.');
' args; skipping'); if (args !== null) {
args = null; args.length = 0;
}
continue; continue;
} }
} else if (argsLength > numArgs) { } else if (argsLength > numArgs) {
info('Command ' + fn + ': expected [0,' + numArgs + info('Command ' + fn + ': expected [0,' + numArgs +
'] args, but received ' + argsLength + ' args'); '] args, but received ' + argsLength + ' args.');
} }
// TODO figure out how to type-check vararg functions // TODO figure out how to type-check vararg functions
@ -2884,7 +2885,7 @@ var EvaluatorPreprocessor = (function EvaluatorPreprocessorClosure() {
} }
// argument // argument
if (obj !== null) { if (obj !== null) {
if (!args) { if (args === null) {
args = []; args = [];
} }
args.push(obj); args.push(obj);