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

Side by Side Diff: src/preparser.cc

Issue 997823003: [es6] support rest parameters in arrow functions (alternative) (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 9 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
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 <cmath> 5 #include <cmath>
6 6
7 #include "src/allocation.h" 7 #include "src/allocation.h"
8 #include "src/base/logging.h" 8 #include "src/base/logging.h"
9 #include "src/conversions-inl.h" 9 #include "src/conversions-inl.h"
10 #include "src/conversions.h" 10 #include "src/conversions.h"
(...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 981
982 Scope* scope = NewScope(scope_, BLOCK_SCOPE); 982 Scope* scope = NewScope(scope_, BLOCK_SCOPE);
983 BlockState block_state(&scope_, scope); 983 BlockState block_state(&scope_, scope);
984 scope_->SetLanguageMode( 984 scope_->SetLanguageMode(
985 static_cast<LanguageMode>(scope_->language_mode() | STRICT_BIT)); 985 static_cast<LanguageMode>(scope_->language_mode() | STRICT_BIT));
986 // TODO(marja): Make PreParser use scope names too. 986 // TODO(marja): Make PreParser use scope names too.
987 // scope_->SetScopeName(name); 987 // scope_->SetScopeName(name);
988 988
989 bool has_extends = Check(Token::EXTENDS); 989 bool has_extends = Check(Token::EXTENDS);
990 if (has_extends) { 990 if (has_extends) {
991 ParseLeftHandSideExpression(CHECK_OK); 991 const bool maybeArrow = false;
992 ParseLeftHandSideExpression(maybeArrow, CHECK_OK);
992 } 993 }
993 994
994 ClassLiteralChecker checker(this); 995 ClassLiteralChecker checker(this);
995 bool has_seen_constructor = false; 996 bool has_seen_constructor = false;
996 997
997 Expect(Token::LBRACE, CHECK_OK); 998 Expect(Token::LBRACE, CHECK_OK);
998 while (peek() != Token::RBRACE) { 999 while (peek() != Token::RBRACE) {
999 if (Check(Token::SEMICOLON)) continue; 1000 if (Check(Token::SEMICOLON)) continue;
1000 const bool in_class = true; 1001 const bool in_class = true;
1001 const bool is_static = false; 1002 const bool is_static = false;
(...skipping 21 matching lines...) Expand all
1023 ParseIdentifier(kAllowEvalOrArguments, CHECK_OK); 1024 ParseIdentifier(kAllowEvalOrArguments, CHECK_OK);
1024 ParseArguments(ok); 1025 ParseArguments(ok);
1025 1026
1026 return Expression::Default(); 1027 return Expression::Default();
1027 } 1028 }
1028 1029
1029 #undef CHECK_OK 1030 #undef CHECK_OK
1030 1031
1031 1032
1032 } } // v8::internal 1033 } } // v8::internal
OLDNEW
« src/preparser.h ('K') | « src/preparser.h ('k') | src/prettyprinter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698