while (index < tokens.size()) {
if (canConsume(")")) break;
- if (!args.empty() && !consume(",")) return false;
+ if ((!args.empty() || !keywordArgs.empty()) && !consume(",")) return false;
if (index + 1 < tokens.size() && tokens[index].type() == TokenType::IDENTIFIER &&
tokens[index + 1].text() == "=") {
alreadyKeywords = true;
expected = { 5, 6, 5, 3};
ASSERT_EQ(val, expected);
+ execute("func(a1=5, a2=6, a4=3, a3=5)", ec, true);
+ expected = { 5, 6, 5, 3};
+ ASSERT_EQ(val, expected);
+
try {
execute("func(1,a3=5,a4=6)", ec, true);
FAIL() << "didn't throw";