| Index: src/parser.cc
|
| diff --git a/src/parser.cc b/src/parser.cc
|
| index 69e71b862afcb72c5206dcfe18f26af80041b633..904636bf473c1c36003dfb883ec183312408df89 100644
|
| --- a/src/parser.cc
|
| +++ b/src/parser.cc
|
| @@ -657,6 +657,7 @@ FunctionLiteral* Parser::DoParseProgram(Handle<String> source,
|
| 0,
|
| 0,
|
| source->length(),
|
| + false,
|
| false);
|
| } else if (stack_overflow_) {
|
| isolate()->StackOverflow();
|
| @@ -3549,6 +3550,7 @@ FunctionLiteral* Parser::ParseFunctionLiteral(Handle<String> var_name,
|
| int end_pos;
|
| bool only_simple_this_property_assignments;
|
| Handle<FixedArray> this_property_assignments;
|
| + bool has_duplicate_parameters = false;
|
| // Parse function body.
|
| { LexicalScope lexical_scope(this, scope, isolate());
|
| top_scope_->SetScopeName(name);
|
| @@ -3572,6 +3574,7 @@ FunctionLiteral* Parser::ParseFunctionLiteral(Handle<String> var_name,
|
| name_loc = scanner().location();
|
| }
|
| if (!dupe_loc.IsValid() && top_scope_->IsDeclared(param_name)) {
|
| + has_duplicate_parameters = true;
|
| dupe_loc = scanner().location();
|
| }
|
| if (!reserved_loc.IsValid() && is_reserved) {
|
| @@ -3707,7 +3710,8 @@ FunctionLiteral* Parser::ParseFunctionLiteral(Handle<String> var_name,
|
| num_parameters,
|
| start_pos,
|
| end_pos,
|
| - (function_name->length() > 0));
|
| + (function_name->length() > 0),
|
| + has_duplicate_parameters);
|
| function_literal->set_function_token_position(function_token_position);
|
|
|
| if (fni_ != NULL && !is_named) fni_->AddFunction(function_literal);
|
|
|