Only tag parameters as maybe assigned if in sloppy mode.
authorsigurds@chromium.org <sigurds@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 7 Aug 2014 09:06:01 +0000 (09:06 +0000)
committersigurds@chromium.org <sigurds@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 7 Aug 2014 09:06:01 +0000 (09:06 +0000)
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/parser.cc

index a3970db..48e8c4a 100644 (file)
@@ -3467,10 +3467,12 @@ FunctionLiteral* Parser::ParseFunctionLiteral(
       }
 
       Variable* var = scope_->DeclareParameter(param_name, VAR);
-      // TODO(sigurds) Mark every parameter as maybe assigned. This is a
-      // conservative approximation necessary to account for parameters
-      // that are assigned via the arguments array.
-      var->set_maybe_assigned();
+      if (scope->strict_mode() == SLOPPY) {
+        // TODO(sigurds) Mark every parameter as maybe assigned. This is a
+        // conservative approximation necessary to account for parameters
+        // that are assigned via the arguments array.
+        var->set_maybe_assigned();
+      }
 
       num_parameters++;
       if (num_parameters > Code::kMaxArguments) {