Fix exception when setting invalid bool value

This commit is contained in:
Zaid Abdulla committed 2017-09-16 22:19:10 -07:00
1 parent f2d64d7676
commit ed3239e4db
1 file changed
+20 -3
+20 -3
View File
@@ -28,12 +28,26 @@ const CHANGE_FLAGS = {
};
function parseBool(v) {
v = "" + v;
if (v === "true" || v === "TRUE" || v === "True" || v === "1")
return true;
else if (v === "false" || v === "FALSE" || v === "False" || v === "0")
return false;
else
return null;
}
function sanitizeParameterValue(parameterValue) {
if (parameterValue[0] != null) {
switch (parameterValue[1]) {
case 'xsd:boolean':
if (typeof parameterValue[0] !== 'boolean') {
parameterValue[0] = !!JSON.parse(parameterValue[0]);
let v = parseBool(parameterValue[0]);
if (v == null)
v = '' + parameterValue[0];
parameterValue[0] = v;
}
break;
case 'xsd:string':
@@ -44,12 +58,15 @@ function sanitizeParameterValue(parameterValue) {
case 'xsd:int':
case 'xsd:unsignedInt':
if (typeof parameterValue[0] !== 'number') {
parameterValue[0] = +parameterValue[0];
let v = parseInt(parameterValue[0]);
if (isNaN(v))
v = '' + parameterValue[0];
parameterValue[0] = v;
}
break;
case 'xsd:dateTime':
if (typeof parameterValue[0] !== 'number') {
let v = +parameterValue[0];
let v = parseInt(parameterValue[0]);
if (isNaN(v)) {
v = Date.parse(parameterValue[0]);
if (isNaN(v))