fix(ivy): allow empty cases for ICU expressions (#30846)

We used to ignore empty strings for optimization purposes, but it turns out that empty strings are also valid values for ICU cases and we shouldn't ignore those.

FW-1290 #resolve
PR Close #30846
This commit is contained in:
Olivier Combe
2019-06-04 15:04:38 +02:00
committed by Misko Hevery
parent b74df20c2a
commit 0d4f8c7dd9
2 changed files with 10 additions and 6 deletions

View File

@ -123,7 +123,7 @@ function extractParts(pattern: string): (string | IcuExpression)[] {
const block = pattern.substring(prevPos, pos);
if (ICU_BLOCK_REGEXP.test(block)) {
results.push(parseICUBlock(block));
} else if (block) { // Don't push empty strings
} else {
results.push(block);
}
@ -140,10 +140,7 @@ function extractParts(pattern: string): (string | IcuExpression)[] {
}
const substring = pattern.substring(prevPos);
if (substring != '') {
results.push(substring);
}
results.push(substring);
return results;
}
@ -182,7 +179,7 @@ function parseICUBlock(pattern: string): IcuExpression {
}
const blocks = extractParts(parts[pos++]) as string[];
if (blocks.length) {
if (cases.length > values.length) {
values.push(blocks);
}
}