From b49b9eff20e7b77896d6a1cc811eb5e2e5fea8f4 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 18:29:17 +0800 Subject: [PATCH] build: stricter conditions for UnaryExpression in const enum plugin --- scripts/const-enum.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/scripts/const-enum.js b/scripts/const-enum.js index 133b6da18..b4dbc1770 100644 --- a/scripts/const-enum.js +++ b/scripts/const-enum.js @@ -112,9 +112,17 @@ export async function constEnum() { } if (init.type === 'UnaryExpression') { - // @ts-ignore assume all operands are literals - const exp = `${init.operator}${init.argument.value}` - value = evaluate(exp) + if ( + init.argument.type === 'StringLiteral' || + init.argument.type === 'NumericLiteral' + ) { + const exp = `${init.operator}${init.argument.value}` + value = evaluate(exp) + } else { + throw new Error( + `unhandled UnaryExpression argument type ${init.argument.type} in ${file}` + ) + } } if (value === undefined) {