Index: src/parser.cc |
diff --git a/src/parser.cc b/src/parser.cc |
index 41a8234c29a9f0859d406fd862502619970d56d2..cce337fb46d448b23c60f958b88d644f7cc851e0 100644 |
--- a/src/parser.cc |
+++ b/src/parser.cc |
@@ -3505,6 +3505,12 @@ ZoneList<Expression*>* Parser::ParseArguments(bool* ok) { |
while (!done) { |
Expression* argument = ParseAssignmentExpression(true, CHECK_OK); |
result->Add(argument); |
+ if (result->length() > kMaxNumFunctionParameters) { |
+ ReportMessageAt(scanner().location(), "too_many_arguments", |
+ Vector<const char*>::empty()); |
+ *ok = false; |
+ return NULL; |
+ } |
done = (peek() == Token::RPAREN); |
if (!done) Expect(Token::COMMA, CHECK_OK); |
} |