Spreadsheet: Do not assume that user input has balanced parenthesis

Otherwise people with broken paren keys, or people with entertaining
ideas like "=9\b)" will cause an assert to trip.
Fixes #5909.
This commit is contained in:
AnotherTest 2021-03-22 16:12:00 +04:30 committed by Andreas Kling
parent 677e5e4d84
commit fef165f1d2
Notes: sideshowbarker 2024-07-18 21:08:38 +09:00

View File

@ -64,6 +64,10 @@ Optional<FunctionAndArgumentIndex> get_function_and_argument_index(StringView so
case JS::TokenType::ParenClose:
previous_was_identifier = false;
if (open_parens_since_last_commit == 0) {
if (state.is_empty() || names.is_empty()) {
// JS Syntax error.
break;
}
state.take_last();
names.take_last();
break;
@ -73,7 +77,8 @@ Optional<FunctionAndArgumentIndex> get_function_and_argument_index(StringView so
case JS::TokenType::Comma:
previous_was_identifier = false;
if (open_parens_since_last_commit == 0 && open_curlies_and_brackets_since_last_commit == 0) {
state.last()++;
if (!state.is_empty())
state.last()++;
break;
}
break;