| Index: src/scopes.cc
|
| diff --git a/src/scopes.cc b/src/scopes.cc
|
| index 039bea0987a4261432cab324cdd464e0e87939a6..61a75ab16fcf408a0ba79355f4e43d59979564c8 100644
|
| --- a/src/scopes.cc
|
| +++ b/src/scopes.cc
|
| @@ -466,15 +466,22 @@ Variable* Scope::DeclareParameter(const AstRawString* name, VariableMode mode,
|
| bool is_rest, bool* is_duplicate) {
|
| DCHECK(!already_resolved());
|
| DCHECK(is_function_scope());
|
| - Variable* var = variables_.Declare(this, name, mode, Variable::NORMAL,
|
| - kCreatedInitialized);
|
| +
|
| + Variable* var;
|
| + if (!name->IsEmpty()) {
|
| + var = variables_.Declare(this, name, mode, Variable::NORMAL,
|
| + kCreatedInitialized);
|
| + // TODO(wingo): Avoid O(n^2) check.
|
| + *is_duplicate = IsDeclaredParameter(name);
|
| + } else {
|
| + var = new (zone())
|
| + Variable(this, name, TEMPORARY, Variable::NORMAL, kCreatedInitialized);
|
| + }
|
| if (is_rest) {
|
| DCHECK_NULL(rest_parameter_);
|
| rest_parameter_ = var;
|
| rest_index_ = num_parameters();
|
| }
|
| - // TODO(wingo): Avoid O(n^2) check.
|
| - *is_duplicate = IsDeclaredParameter(name);
|
| params_.Add(var, zone());
|
| return var;
|
| }
|
|
|