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

Side by Side Diff: src/preparser.h

Issue 430503007: Rename ASSERT* to DCHECK*. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE and fixes Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « src/preparse-data.cc ('k') | src/preparser.cc » ('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 #ifndef V8_PREPARSER_H 5 #ifndef V8_PREPARSER_H
6 #define V8_PREPARSER_H 6 #define V8_PREPARSER_H
7 7
8 #include "src/v8.h" 8 #include "src/v8.h"
9 9
10 #include "src/func-name-inferrer.h" 10 #include "src/func-name-inferrer.h"
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 int handler_count() { return next_handler_index_; } 172 int handler_count() { return next_handler_index_; }
173 173
174 void AddProperty() { expected_property_count_++; } 174 void AddProperty() { expected_property_count_++; }
175 int expected_property_count() { return expected_property_count_; } 175 int expected_property_count() { return expected_property_count_; }
176 176
177 void set_is_generator(bool is_generator) { is_generator_ = is_generator; } 177 void set_is_generator(bool is_generator) { is_generator_ = is_generator; }
178 bool is_generator() const { return is_generator_; } 178 bool is_generator() const { return is_generator_; }
179 179
180 void set_generator_object_variable( 180 void set_generator_object_variable(
181 typename Traits::Type::GeneratorVariable* variable) { 181 typename Traits::Type::GeneratorVariable* variable) {
182 ASSERT(variable != NULL); 182 DCHECK(variable != NULL);
183 ASSERT(!is_generator()); 183 DCHECK(!is_generator());
184 generator_object_variable_ = variable; 184 generator_object_variable_ = variable;
185 is_generator_ = true; 185 is_generator_ = true;
186 } 186 }
187 typename Traits::Type::GeneratorVariable* generator_object_variable() 187 typename Traits::Type::GeneratorVariable* generator_object_variable()
188 const { 188 const {
189 return generator_object_variable_; 189 return generator_object_variable_;
190 } 190 }
191 191
192 typename Traits::Type::Factory* factory() { return &factory_; } 192 typename Traits::Type::Factory* factory() { return &factory_; }
193 193
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 stack_overflow_ = true; 260 stack_overflow_ = true;
261 } 261 }
262 } 262 }
263 return scanner()->Next(); 263 return scanner()->Next();
264 } 264 }
265 265
266 void Consume(Token::Value token) { 266 void Consume(Token::Value token) {
267 Token::Value next = Next(); 267 Token::Value next = Next();
268 USE(next); 268 USE(next);
269 USE(token); 269 USE(token);
270 ASSERT(next == token); 270 DCHECK(next == token);
271 } 271 }
272 272
273 bool Check(Token::Value token) { 273 bool Check(Token::Value token) {
274 Token::Value next = peek(); 274 Token::Value next = peek();
275 if (next == token) { 275 if (next == token) {
276 Consume(next); 276 Consume(next);
277 return true; 277 return true;
278 } 278 }
279 return false; 279 return false;
280 } 280 }
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 return PreParserExpression(kPropertyExpression); 660 return PreParserExpression(kPropertyExpression);
661 } 661 }
662 662
663 static PreParserExpression Call() { 663 static PreParserExpression Call() {
664 return PreParserExpression(kCallExpression); 664 return PreParserExpression(kCallExpression);
665 } 665 }
666 666
667 bool IsIdentifier() const { return (code_ & kTypeMask) == kTypeIdentifier; } 667 bool IsIdentifier() const { return (code_ & kTypeMask) == kTypeIdentifier; }
668 668
669 PreParserIdentifier AsIdentifier() const { 669 PreParserIdentifier AsIdentifier() const {
670 ASSERT(IsIdentifier()); 670 DCHECK(IsIdentifier());
671 return PreParserIdentifier( 671 return PreParserIdentifier(
672 static_cast<PreParserIdentifier::Type>(code_ >> kIdentifierShift)); 672 static_cast<PreParserIdentifier::Type>(code_ >> kIdentifierShift));
673 } 673 }
674 674
675 bool IsStringLiteral() const { 675 bool IsStringLiteral() const {
676 return (code_ & kTypeMask) == kTypeStringLiteral; 676 return (code_ & kTypeMask) == kTypeStringLiteral;
677 } 677 }
678 678
679 bool IsUseStrictLiteral() const { 679 bool IsUseStrictLiteral() const {
680 return (code_ & kUseStrictString) == kUseStrictString; 680 return (code_ & kUseStrictString) == kUseStrictString;
(...skipping 838 matching lines...) Expand 10 before | Expand all | Expand 10 after
1519 return ReportMessageAt(source_location, "unexpected_token_identifier"); 1519 return ReportMessageAt(source_location, "unexpected_token_identifier");
1520 case Token::FUTURE_RESERVED_WORD: 1520 case Token::FUTURE_RESERVED_WORD:
1521 return ReportMessageAt(source_location, "unexpected_reserved"); 1521 return ReportMessageAt(source_location, "unexpected_reserved");
1522 case Token::LET: 1522 case Token::LET:
1523 case Token::YIELD: 1523 case Token::YIELD:
1524 case Token::FUTURE_STRICT_RESERVED_WORD: 1524 case Token::FUTURE_STRICT_RESERVED_WORD:
1525 return ReportMessageAt(source_location, strict_mode() == SLOPPY 1525 return ReportMessageAt(source_location, strict_mode() == SLOPPY
1526 ? "unexpected_token_identifier" : "unexpected_strict_reserved"); 1526 ? "unexpected_token_identifier" : "unexpected_strict_reserved");
1527 default: 1527 default:
1528 const char* name = Token::String(token); 1528 const char* name = Token::String(token);
1529 ASSERT(name != NULL); 1529 DCHECK(name != NULL);
1530 Traits::ReportMessageAt(source_location, "unexpected_token", name); 1530 Traits::ReportMessageAt(source_location, "unexpected_token", name);
1531 } 1531 }
1532 } 1532 }
1533 1533
1534 1534
1535 template<class Traits> 1535 template<class Traits>
1536 typename ParserBase<Traits>::IdentifierT ParserBase<Traits>::ParseIdentifier( 1536 typename ParserBase<Traits>::IdentifierT ParserBase<Traits>::ParseIdentifier(
1537 AllowEvalOrArgumentsAsIdentifier allow_eval_or_arguments, 1537 AllowEvalOrArgumentsAsIdentifier allow_eval_or_arguments,
1538 bool* ok) { 1538 bool* ok) {
1539 Token::Value next = Next(); 1539 Token::Value next = Next();
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after
2080 case Token::RBRACK: 2080 case Token::RBRACK:
2081 case Token::RPAREN: 2081 case Token::RPAREN:
2082 case Token::COLON: 2082 case Token::COLON:
2083 case Token::COMMA: 2083 case Token::COMMA:
2084 // The above set of tokens is the complete set of tokens that can appear 2084 // The above set of tokens is the complete set of tokens that can appear
2085 // after an AssignmentExpression, and none of them can start an 2085 // after an AssignmentExpression, and none of them can start an
2086 // AssignmentExpression. This allows us to avoid looking for an RHS for 2086 // AssignmentExpression. This allows us to avoid looking for an RHS for
2087 // a Yield::SUSPEND operation, given only one look-ahead token. 2087 // a Yield::SUSPEND operation, given only one look-ahead token.
2088 if (kind == Yield::SUSPEND) 2088 if (kind == Yield::SUSPEND)
2089 break; 2089 break;
2090 ASSERT(kind == Yield::DELEGATING); 2090 DCHECK(kind == Yield::DELEGATING);
2091 // Delegating yields require an RHS; fall through. 2091 // Delegating yields require an RHS; fall through.
2092 default: 2092 default:
2093 expression = ParseAssignmentExpression(false, CHECK_OK); 2093 expression = ParseAssignmentExpression(false, CHECK_OK);
2094 break; 2094 break;
2095 } 2095 }
2096 } 2096 }
2097 typename Traits::Type::YieldExpression yield = 2097 typename Traits::Type::YieldExpression yield =
2098 factory()->NewYield(generator_object, expression, kind, pos); 2098 factory()->NewYield(generator_object, expression, kind, pos);
2099 if (kind == Yield::DELEGATING) { 2099 if (kind == Yield::DELEGATING) {
2100 yield->set_index(function_state_->NextHandlerIndex()); 2100 yield->set_index(function_state_->NextHandlerIndex());
(...skipping 22 matching lines...) Expand all
2123 Expect(Token::COLON, CHECK_OK); 2123 Expect(Token::COLON, CHECK_OK);
2124 ExpressionT right = ParseAssignmentExpression(accept_IN, CHECK_OK); 2124 ExpressionT right = ParseAssignmentExpression(accept_IN, CHECK_OK);
2125 return factory()->NewConditional(expression, left, right, pos); 2125 return factory()->NewConditional(expression, left, right, pos);
2126 } 2126 }
2127 2127
2128 2128
2129 // Precedence >= 4 2129 // Precedence >= 4
2130 template <class Traits> 2130 template <class Traits>
2131 typename ParserBase<Traits>::ExpressionT 2131 typename ParserBase<Traits>::ExpressionT
2132 ParserBase<Traits>::ParseBinaryExpression(int prec, bool accept_IN, bool* ok) { 2132 ParserBase<Traits>::ParseBinaryExpression(int prec, bool accept_IN, bool* ok) {
2133 ASSERT(prec >= 4); 2133 DCHECK(prec >= 4);
2134 ExpressionT x = this->ParseUnaryExpression(CHECK_OK); 2134 ExpressionT x = this->ParseUnaryExpression(CHECK_OK);
2135 for (int prec1 = Precedence(peek(), accept_IN); prec1 >= prec; prec1--) { 2135 for (int prec1 = Precedence(peek(), accept_IN); prec1 >= prec; prec1--) {
2136 // prec1 >= 4 2136 // prec1 >= 4
2137 while (Precedence(peek(), accept_IN) == prec1) { 2137 while (Precedence(peek(), accept_IN) == prec1) {
2138 Token::Value op = Next(); 2138 Token::Value op = Next();
2139 int pos = position(); 2139 int pos = position();
2140 ExpressionT y = ParseBinaryExpression(prec1 + 1, accept_IN, CHECK_OK); 2140 ExpressionT y = ParseBinaryExpression(prec1 + 1, accept_IN, CHECK_OK);
2141 2141
2142 if (this->ShortcutNumericLiteralBinaryExpression(&x, y, op, pos, 2142 if (this->ShortcutNumericLiteralBinaryExpression(&x, y, op, pos,
2143 factory())) { 2143 factory())) {
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
2431 expression, factory()->NewStringLiteral(name, pos), pos); 2431 expression, factory()->NewStringLiteral(name, pos), pos);
2432 if (fni_ != NULL) { 2432 if (fni_ != NULL) {
2433 this->PushLiteralName(fni_, name); 2433 this->PushLiteralName(fni_, name);
2434 } 2434 }
2435 break; 2435 break;
2436 } 2436 }
2437 default: 2437 default:
2438 return expression; 2438 return expression;
2439 } 2439 }
2440 } 2440 }
2441 ASSERT(false); 2441 DCHECK(false);
2442 return this->EmptyExpression(); 2442 return this->EmptyExpression();
2443 } 2443 }
2444 2444
2445 2445
2446 template <class Traits> 2446 template <class Traits>
2447 typename ParserBase<Traits>::ExpressionT ParserBase< 2447 typename ParserBase<Traits>::ExpressionT ParserBase<
2448 Traits>::ParseArrowFunctionLiteral(int start_pos, ExpressionT params_ast, 2448 Traits>::ParseArrowFunctionLiteral(int start_pos, ExpressionT params_ast,
2449 bool* ok) { 2449 bool* ok) {
2450 // TODO(aperez): Change this to use ARROW_SCOPE 2450 // TODO(aperez): Change this to use ARROW_SCOPE
2451 typename Traits::Type::ScopePtr scope = 2451 typename Traits::Type::ScopePtr scope =
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
2607 PropertyKind old_type = static_cast<PropertyKind>(old); 2607 PropertyKind old_type = static_cast<PropertyKind>(old);
2608 if (HasConflict(old_type, type)) { 2608 if (HasConflict(old_type, type)) {
2609 if (IsDataDataConflict(old_type, type)) { 2609 if (IsDataDataConflict(old_type, type)) {
2610 // Both are data properties. 2610 // Both are data properties.
2611 if (strict_mode_ == SLOPPY) return; 2611 if (strict_mode_ == SLOPPY) return;
2612 parser()->ReportMessage("strict_duplicate_property"); 2612 parser()->ReportMessage("strict_duplicate_property");
2613 } else if (IsDataAccessorConflict(old_type, type)) { 2613 } else if (IsDataAccessorConflict(old_type, type)) {
2614 // Both a data and an accessor property with the same name. 2614 // Both a data and an accessor property with the same name.
2615 parser()->ReportMessage("accessor_data_property"); 2615 parser()->ReportMessage("accessor_data_property");
2616 } else { 2616 } else {
2617 ASSERT(IsAccessorAccessorConflict(old_type, type)); 2617 DCHECK(IsAccessorAccessorConflict(old_type, type));
2618 // Both accessors of the same type. 2618 // Both accessors of the same type.
2619 parser()->ReportMessage("accessor_get_set"); 2619 parser()->ReportMessage("accessor_get_set");
2620 } 2620 }
2621 *ok = false; 2621 *ok = false;
2622 } 2622 }
2623 } 2623 }
2624 2624
2625 2625
2626 } } // v8::internal 2626 } } // v8::internal
2627 2627
2628 #endif // V8_PREPARSER_H 2628 #endif // V8_PREPARSER_H
OLDNEW
« no previous file with comments | « src/preparse-data.cc ('k') | src/preparser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698