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

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

Issue 2620943002: [ESnext] Implement Object Rest (Closed)
Patch Set: fix nits Created 3 years, 11 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/objects.cc ('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 <memory> 7 #include <memory>
8 8
9 #include "src/api.h" 9 #include "src/api.h"
10 #include "src/ast/ast-expression-rewriter.h" 10 #include "src/ast/ast-expression-rewriter.h"
(...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 allow_lazy_ = FLAG_lazy && info->allow_lazy_parsing() && !info->is_native() && 545 allow_lazy_ = FLAG_lazy && info->allow_lazy_parsing() && !info->is_native() &&
546 info->extension() == nullptr && can_compile_lazily; 546 info->extension() == nullptr && can_compile_lazily;
547 set_allow_natives(FLAG_allow_natives_syntax || info->is_native()); 547 set_allow_natives(FLAG_allow_natives_syntax || info->is_native());
548 set_allow_tailcalls(FLAG_harmony_tailcalls && !info->is_native() && 548 set_allow_tailcalls(FLAG_harmony_tailcalls && !info->is_native() &&
549 info->isolate()->is_tail_call_elimination_enabled()); 549 info->isolate()->is_tail_call_elimination_enabled());
550 set_allow_harmony_do_expressions(FLAG_harmony_do_expressions); 550 set_allow_harmony_do_expressions(FLAG_harmony_do_expressions);
551 set_allow_harmony_function_sent(FLAG_harmony_function_sent); 551 set_allow_harmony_function_sent(FLAG_harmony_function_sent);
552 set_allow_harmony_restrictive_generators(FLAG_harmony_restrictive_generators); 552 set_allow_harmony_restrictive_generators(FLAG_harmony_restrictive_generators);
553 set_allow_harmony_trailing_commas(FLAG_harmony_trailing_commas); 553 set_allow_harmony_trailing_commas(FLAG_harmony_trailing_commas);
554 set_allow_harmony_class_fields(FLAG_harmony_class_fields); 554 set_allow_harmony_class_fields(FLAG_harmony_class_fields);
555 set_allow_harmony_object_spread(FLAG_harmony_object_spread); 555 set_allow_harmony_object_rest_spread(FLAG_harmony_object_rest_spread);
556 for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount; 556 for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount;
557 ++feature) { 557 ++feature) {
558 use_counts_[feature] = 0; 558 use_counts_[feature] = 0;
559 } 559 }
560 if (info->ast_value_factory() == NULL) { 560 if (info->ast_value_factory() == NULL) {
561 // info takes ownership of AstValueFactory. 561 // info takes ownership of AstValueFactory.
562 info->set_ast_value_factory(new AstValueFactory( 562 info->set_ast_value_factory(new AstValueFactory(
563 zone(), info->isolate()->ast_string_constants(), info->hash_seed())); 563 zone(), info->isolate()->ast_string_constants(), info->hash_seed()));
564 info->set_ast_value_factory_owned(); 564 info->set_ast_value_factory_owned();
565 ast_value_factory_ = info->ast_value_factory(); 565 ast_value_factory_ = info->ast_value_factory();
(...skipping 2166 matching lines...) Expand 10 before | Expand all | Expand 10 after
2732 if (reusable_preparser_ == NULL) { 2732 if (reusable_preparser_ == NULL) {
2733 reusable_preparser_ = new PreParser( 2733 reusable_preparser_ = new PreParser(
2734 zone(), &scanner_, stack_limit_, ast_value_factory(), 2734 zone(), &scanner_, stack_limit_, ast_value_factory(),
2735 &pending_error_handler_, runtime_call_stats_, parsing_on_main_thread_); 2735 &pending_error_handler_, runtime_call_stats_, parsing_on_main_thread_);
2736 #define SET_ALLOW(name) reusable_preparser_->set_allow_##name(allow_##name()); 2736 #define SET_ALLOW(name) reusable_preparser_->set_allow_##name(allow_##name());
2737 SET_ALLOW(natives); 2737 SET_ALLOW(natives);
2738 SET_ALLOW(harmony_do_expressions); 2738 SET_ALLOW(harmony_do_expressions);
2739 SET_ALLOW(harmony_function_sent); 2739 SET_ALLOW(harmony_function_sent);
2740 SET_ALLOW(harmony_trailing_commas); 2740 SET_ALLOW(harmony_trailing_commas);
2741 SET_ALLOW(harmony_class_fields); 2741 SET_ALLOW(harmony_class_fields);
2742 SET_ALLOW(harmony_object_spread); 2742 SET_ALLOW(harmony_object_rest_spread);
2743 #undef SET_ALLOW 2743 #undef SET_ALLOW
2744 } 2744 }
2745 // Aborting inner function preparsing would leave scopes in an inconsistent 2745 // Aborting inner function preparsing would leave scopes in an inconsistent
2746 // state; we don't parse inner functions in the abortable mode anyway. 2746 // state; we don't parse inner functions in the abortable mode anyway.
2747 DCHECK(!is_inner_function || !may_abort); 2747 DCHECK(!is_inner_function || !may_abort);
2748 2748
2749 PreParser::PreParseResult result = reusable_preparser_->PreParseFunction( 2749 PreParser::PreParseResult result = reusable_preparser_->PreParseFunction(
2750 kind, function_scope, parsing_module_, is_inner_function, may_abort, 2750 kind, function_scope, parsing_module_, is_inner_function, may_abort,
2751 use_counts_); 2751 use_counts_);
2752 2752
(...skipping 2363 matching lines...) Expand 10 before | Expand all | Expand 10 after
5116 5116
5117 return final_loop; 5117 return final_loop;
5118 } 5118 }
5119 5119
5120 #undef CHECK_OK 5120 #undef CHECK_OK
5121 #undef CHECK_OK_VOID 5121 #undef CHECK_OK_VOID
5122 #undef CHECK_FAILED 5122 #undef CHECK_FAILED
5123 5123
5124 } // namespace internal 5124 } // namespace internal
5125 } // namespace v8 5125 } // namespace v8
OLDNEW
« no previous file with comments | « src/objects.cc ('k') | src/parsing/parser-base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698