Return a default falsey value for unknown params based on param type

This commit is contained in:
Paul Kaplan 2017-12-06 11:21:00 -05:00
parent 8203eb2c91
commit 2d2b691b6f
2 changed files with 17 additions and 4 deletions

View file

@ -15,8 +15,8 @@ class Scratch3ProcedureBlocks {
return {
procedures_definition: this.definition,
procedures_call: this.call,
argument_reporter_string_number: this.param,
argument_reporter_boolean: this.param
argument_reporter_string_number: this.argumentReporterStringNumber,
argument_reporter_boolean: this.argumentReporterBoolean
};
}
@ -47,8 +47,19 @@ class Scratch3ProcedureBlocks {
}
}
param (args, util) {
argumentReporterStringNumber (args, util) {
const value = util.getParam(args.VALUE);
if (value === null) {
return '';
}
return value;
}
argumentReporterBoolean (args, util) {
const value = util.getParam(args.VALUE);
if (value === null) {
return false;
}
return value;
}
}

View file

@ -110,6 +110,8 @@ test('PushGetParam', t => {
th.pushParam('testParam', 'testValue');
t.strictEquals(th.peekStackFrame().params.testParam, 'testValue');
t.strictEquals(th.getParam('testParam'), 'testValue');
// Params outside of define stack always evaluate to null
t.strictEquals(th.getParam('nonExistentParam'), null);
t.end();
});