Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(265)

Side by Side Diff: src/parsing/parser.cc

Issue 1669523004: [compiler] Allow optimization of functions with rest parameters. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/parsing/parser.h" 5 #include "src/parsing/parser.h"
6 6
7 #include "src/api.h" 7 #include "src/api.h"
8 #include "src/ast/ast.h" 8 #include "src/ast/ast.h"
9 #include "src/ast/ast-expression-rewriter.h" 9 #include "src/ast/ast-expression-rewriter.h"
10 #include "src/ast/ast-expression-visitor.h" 10 #include "src/ast/ast-expression-visitor.h"
(...skipping 4382 matching lines...) Expand 10 before | Expand all | Expand 10 after
4393 : FunctionLiteral::kNoDuplicateParameters; 4393 : FunctionLiteral::kNoDuplicateParameters;
4394 4394
4395 FunctionLiteral* function_literal = factory()->NewFunctionLiteral( 4395 FunctionLiteral* function_literal = factory()->NewFunctionLiteral(
4396 function_name, scope, body, materialized_literal_count, 4396 function_name, scope, body, materialized_literal_count,
4397 expected_property_count, arity, duplicate_parameters, function_type, 4397 expected_property_count, arity, duplicate_parameters, function_type,
4398 eager_compile_hint, kind, pos); 4398 eager_compile_hint, kind, pos);
4399 function_literal->set_function_token_position(function_token_pos); 4399 function_literal->set_function_token_position(function_token_pos);
4400 if (should_be_used_once_hint) 4400 if (should_be_used_once_hint)
4401 function_literal->set_should_be_used_once_hint(); 4401 function_literal->set_should_be_used_once_hint();
4402 4402
4403 if (scope->has_rest_parameter()) {
4404 function_literal->set_dont_optimize_reason(kRestParameter);
4405 }
4406
4407 if (fni_ != NULL && should_infer_name) fni_->AddFunction(function_literal); 4403 if (fni_ != NULL && should_infer_name) fni_->AddFunction(function_literal);
4408 return function_literal; 4404 return function_literal;
4409 } 4405 }
4410 4406
4411 4407
4412 void Parser::SkipLazyFunctionBody(int* materialized_literal_count, 4408 void Parser::SkipLazyFunctionBody(int* materialized_literal_count,
4413 int* expected_property_count, bool* ok, 4409 int* expected_property_count, bool* ok,
4414 Scanner::BookmarkScope* bookmark) { 4410 Scanner::BookmarkScope* bookmark) {
4415 DCHECK_IMPLIES(bookmark, bookmark->HasBeenSet()); 4411 DCHECK_IMPLIES(bookmark, bookmark->HasBeenSet());
4416 if (produce_cached_parse_data()) CHECK(log_); 4412 if (produce_cached_parse_data()) CHECK(log_);
(...skipping 1362 matching lines...) Expand 10 before | Expand all | Expand 10 after
5779 function->set_raw_name(name); 5775 function->set_raw_name(name);
5780 } else { 5776 } else {
5781 DCHECK(value->IsClassLiteral()); 5777 DCHECK(value->IsClassLiteral());
5782 value->AsClassLiteral()->constructor()->set_raw_name(name); 5778 value->AsClassLiteral()->constructor()->set_raw_name(name);
5783 } 5779 }
5784 } 5780 }
5785 5781
5786 5782
5787 } // namespace internal 5783 } // namespace internal
5788 } // namespace v8 5784 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698