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

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

Issue 2094463002: Allow trailing commas in function parameter lists (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase Created 4 years, 5 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 | « src/flag-definitions.h ('k') | src/parsing/parser-base.h » ('j') | 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 797 matching lines...) Expand 10 before | Expand all | Expand 10 after
808 info->isolate()->is_tail_call_elimination_enabled()); 808 info->isolate()->is_tail_call_elimination_enabled());
809 set_allow_harmony_do_expressions(FLAG_harmony_do_expressions); 809 set_allow_harmony_do_expressions(FLAG_harmony_do_expressions);
810 set_allow_harmony_for_in(FLAG_harmony_for_in); 810 set_allow_harmony_for_in(FLAG_harmony_for_in);
811 set_allow_harmony_function_sent(FLAG_harmony_function_sent); 811 set_allow_harmony_function_sent(FLAG_harmony_function_sent);
812 set_allow_harmony_restrictive_declarations( 812 set_allow_harmony_restrictive_declarations(
813 FLAG_harmony_restrictive_declarations); 813 FLAG_harmony_restrictive_declarations);
814 set_allow_harmony_exponentiation_operator( 814 set_allow_harmony_exponentiation_operator(
815 FLAG_harmony_exponentiation_operator); 815 FLAG_harmony_exponentiation_operator);
816 set_allow_harmony_async_await(FLAG_harmony_async_await); 816 set_allow_harmony_async_await(FLAG_harmony_async_await);
817 set_allow_harmony_restrictive_generators(FLAG_harmony_restrictive_generators); 817 set_allow_harmony_restrictive_generators(FLAG_harmony_restrictive_generators);
818 set_allow_harmony_trailing_commas(FLAG_harmony_trailing_commas);
818 for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount; 819 for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount;
819 ++feature) { 820 ++feature) {
820 use_counts_[feature] = 0; 821 use_counts_[feature] = 0;
821 } 822 }
822 if (info->ast_value_factory() == NULL) { 823 if (info->ast_value_factory() == NULL) {
823 // info takes ownership of AstValueFactory. 824 // info takes ownership of AstValueFactory.
824 info->set_ast_value_factory(new AstValueFactory(zone(), info->hash_seed())); 825 info->set_ast_value_factory(new AstValueFactory(zone(), info->hash_seed()));
825 info->set_ast_value_factory_owned(); 826 info->set_ast_value_factory_owned();
826 ast_value_factory_ = info->ast_value_factory(); 827 ast_value_factory_ = info->ast_value_factory();
827 } 828 }
(...skipping 4041 matching lines...) Expand 10 before | Expand all | Expand 10 after
4869 NULL, stack_limit_); 4870 NULL, stack_limit_);
4870 reusable_preparser_->set_allow_lazy(true); 4871 reusable_preparser_->set_allow_lazy(true);
4871 #define SET_ALLOW(name) reusable_preparser_->set_allow_##name(allow_##name()); 4872 #define SET_ALLOW(name) reusable_preparser_->set_allow_##name(allow_##name());
4872 SET_ALLOW(natives); 4873 SET_ALLOW(natives);
4873 SET_ALLOW(harmony_do_expressions); 4874 SET_ALLOW(harmony_do_expressions);
4874 SET_ALLOW(harmony_for_in); 4875 SET_ALLOW(harmony_for_in);
4875 SET_ALLOW(harmony_function_sent); 4876 SET_ALLOW(harmony_function_sent);
4876 SET_ALLOW(harmony_exponentiation_operator); 4877 SET_ALLOW(harmony_exponentiation_operator);
4877 SET_ALLOW(harmony_restrictive_declarations); 4878 SET_ALLOW(harmony_restrictive_declarations);
4878 SET_ALLOW(harmony_async_await); 4879 SET_ALLOW(harmony_async_await);
4880 SET_ALLOW(harmony_trailing_commas);
4879 #undef SET_ALLOW 4881 #undef SET_ALLOW
4880 } 4882 }
4881 PreParser::PreParseResult result = reusable_preparser_->PreParseLazyFunction( 4883 PreParser::PreParseResult result = reusable_preparser_->PreParseLazyFunction(
4882 language_mode(), function_state_->kind(), scope_->has_simple_parameters(), 4884 language_mode(), function_state_->kind(), scope_->has_simple_parameters(),
4883 parsing_module_, logger, bookmark, use_counts_); 4885 parsing_module_, logger, bookmark, use_counts_);
4884 if (pre_parse_timer_ != NULL) { 4886 if (pre_parse_timer_ != NULL) {
4885 pre_parse_timer_->Stop(); 4887 pre_parse_timer_->Stop();
4886 } 4888 }
4887 return result; 4889 return result;
4888 } 4890 }
(...skipping 2100 matching lines...) Expand 10 before | Expand all | Expand 10 after
6989 try_block, target); 6991 try_block, target);
6990 final_loop = target; 6992 final_loop = target;
6991 } 6993 }
6992 6994
6993 return final_loop; 6995 return final_loop;
6994 } 6996 }
6995 6997
6996 6998
6997 } // namespace internal 6999 } // namespace internal
6998 } // namespace v8 7000 } // namespace v8
OLDNEW
« no previous file with comments | « src/flag-definitions.h ('k') | src/parsing/parser-base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698