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

Side by Side Diff: src/parsing/parser-base.h

Issue 2882973002: [coverage] Block coverage with support for IfStatements (Closed)
Patch Set: Comment nit Created 3 years, 7 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 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 #ifndef V8_PARSING_PARSER_BASE_H 5 #ifndef V8_PARSING_PARSER_BASE_H
6 #define V8_PARSING_PARSER_BASE_H 6 #define V8_PARSING_PARSER_BASE_H
7 7
8 #include "src/ast/ast.h" 8 #include "src/ast/ast.h"
9 #include "src/ast/scopes.h" 9 #include "src/ast/scopes.h"
10 #include "src/bailout-reason.h" 10 #include "src/bailout-reason.h"
(...skipping 5137 matching lines...) Expand 10 before | Expand all | Expand 10 after
5148 typename ParserBase<Impl>::StatementT ParserBase<Impl>::ParseIfStatement( 5148 typename ParserBase<Impl>::StatementT ParserBase<Impl>::ParseIfStatement(
5149 ZoneList<const AstRawString*>* labels, bool* ok) { 5149 ZoneList<const AstRawString*>* labels, bool* ok) {
5150 // IfStatement :: 5150 // IfStatement ::
5151 // 'if' '(' Expression ')' Statement ('else' Statement)? 5151 // 'if' '(' Expression ')' Statement ('else' Statement)?
5152 5152
5153 int pos = peek_position(); 5153 int pos = peek_position();
5154 Expect(Token::IF, CHECK_OK); 5154 Expect(Token::IF, CHECK_OK);
5155 Expect(Token::LPAREN, CHECK_OK); 5155 Expect(Token::LPAREN, CHECK_OK);
5156 ExpressionT condition = ParseExpression(true, CHECK_OK); 5156 ExpressionT condition = ParseExpression(true, CHECK_OK);
5157 Expect(Token::RPAREN, CHECK_OK); 5157 Expect(Token::RPAREN, CHECK_OK);
5158
5159 SourceRange then_range, else_range;
5160 then_range.from = peek_position();
5158 StatementT then_statement = ParseScopedStatement(labels, CHECK_OK); 5161 StatementT then_statement = ParseScopedStatement(labels, CHECK_OK);
5162 then_range.to = position();
5163
5159 StatementT else_statement = impl()->NullStatement(); 5164 StatementT else_statement = impl()->NullStatement();
5160 if (Check(Token::ELSE)) { 5165 if (Check(Token::ELSE)) {
5166 else_range.from = peek_position();
5161 else_statement = ParseScopedStatement(labels, CHECK_OK); 5167 else_statement = ParseScopedStatement(labels, CHECK_OK);
5168 else_range.to = position();
5162 } else { 5169 } else {
5163 else_statement = factory()->NewEmptyStatement(kNoSourcePosition); 5170 else_statement = factory()->NewEmptyStatement(kNoSourcePosition);
5164 } 5171 }
5165 return factory()->NewIfStatement(condition, then_statement, else_statement, 5172 return factory()->NewIfStatement(condition, then_statement, else_statement,
5166 pos); 5173 pos, then_range, else_range);
5167 } 5174 }
5168 5175
5169 template <typename Impl> 5176 template <typename Impl>
5170 typename ParserBase<Impl>::StatementT ParserBase<Impl>::ParseContinueStatement( 5177 typename ParserBase<Impl>::StatementT ParserBase<Impl>::ParseContinueStatement(
5171 bool* ok) { 5178 bool* ok) {
5172 // ContinueStatement :: 5179 // ContinueStatement ::
5173 // 'continue' Identifier? ';' 5180 // 'continue' Identifier? ';'
5174 5181
5175 int pos = peek_position(); 5182 int pos = peek_position();
5176 Expect(Token::CONTINUE, CHECK_OK); 5183 Expect(Token::CONTINUE, CHECK_OK);
(...skipping 845 matching lines...) Expand 10 before | Expand all | Expand 10 after
6022 } 6029 }
6023 6030
6024 #undef CHECK_OK 6031 #undef CHECK_OK
6025 #undef CHECK_OK_CUSTOM 6032 #undef CHECK_OK_CUSTOM
6026 #undef CHECK_OK_VOID 6033 #undef CHECK_OK_VOID
6027 6034
6028 } // namespace internal 6035 } // namespace internal
6029 } // namespace v8 6036 } // namespace v8
6030 6037
6031 #endif // V8_PARSING_PARSER_BASE_H 6038 #endif // V8_PARSING_PARSER_BASE_H
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698