mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 13:37:45 +00:00
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:
parent
677e5e4d84
commit
fef165f1d2
1 changed files with 6 additions and 1 deletions
|
@ -64,6 +64,10 @@ Optional<FunctionAndArgumentIndex> get_function_and_argument_index(StringView so
|
||||||
case JS::TokenType::ParenClose:
|
case JS::TokenType::ParenClose:
|
||||||
previous_was_identifier = false;
|
previous_was_identifier = false;
|
||||||
if (open_parens_since_last_commit == 0) {
|
if (open_parens_since_last_commit == 0) {
|
||||||
|
if (state.is_empty() || names.is_empty()) {
|
||||||
|
// JS Syntax error.
|
||||||
|
break;
|
||||||
|
}
|
||||||
state.take_last();
|
state.take_last();
|
||||||
names.take_last();
|
names.take_last();
|
||||||
break;
|
break;
|
||||||
|
@ -73,7 +77,8 @@ Optional<FunctionAndArgumentIndex> get_function_and_argument_index(StringView so
|
||||||
case JS::TokenType::Comma:
|
case JS::TokenType::Comma:
|
||||||
previous_was_identifier = false;
|
previous_was_identifier = false;
|
||||||
if (open_parens_since_last_commit == 0 && open_curlies_and_brackets_since_last_commit == 0) {
|
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;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue