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

Unified Diff: runtime/vm/parser.cc

Issue 2073623002: Simplify generated code for assert() (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/parser.h ('k') | runtime/vm/symbols.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/parser.cc
diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
index b8fa54bb6abbe55e055293511f791e4dbf1c4a48..51d807f2915f60aa044be6966027a14bcea84979 100644
--- a/runtime/vm/parser.cc
+++ b/runtime/vm/parser.cc
@@ -9175,28 +9175,6 @@ AstNode* Parser::MakeStaticCall(const String& cls_name,
}
-AstNode* Parser::MakeAssertCall(TokenPosition begin, TokenPosition end) {
- ArgumentListNode* arguments = new(Z) ArgumentListNode(begin);
- arguments->Add(new(Z) LiteralNode(begin,
- Integer::ZoneHandle(Z, Integer::New(begin.value(), Heap::kOld))));
- arguments->Add(new(Z) LiteralNode(end,
- Integer::ZoneHandle(Z, Integer::New(end.value(), Heap::kOld))));
- return MakeStaticCall(Symbols::AssertionError(),
- Library::PrivateCoreLibName(Symbols::ThrowNew()),
- arguments);
-}
-
-
-AstNode* Parser::HandleAssertCondition(AstNode* condition) {
- const TokenPosition pos = condition->token_pos();
- ArgumentListNode* arguments = new(Z) ArgumentListNode(pos);
- arguments->Add(condition);
- return MakeStaticCall(Symbols::AssertionError(),
- Library::PrivateCoreLibName(Symbols::HandleCondition()),
- arguments);
-}
-
-
AstNode* Parser::ParseAssertStatement() {
TRACE_PARSER("ParseAssertStatement");
ConsumeToken(); // Consume assert keyword.
@@ -9210,14 +9188,16 @@ AstNode* Parser::ParseAssertStatement() {
AstNode* condition = ParseAwaitableExpr(kAllowConst, kConsumeCascades, NULL);
const TokenPosition condition_end = TokenPos();
ExpectToken(Token::kRPAREN);
- condition = HandleAssertCondition(condition);
- condition = new(Z) UnaryOpNode(condition_pos, Token::kNOT, condition);
- AstNode* assert_throw = MakeAssertCall(condition_pos, condition_end);
- return new(Z) IfNode(
- condition_pos,
- condition,
- NodeAsSequenceNode(condition_pos, assert_throw, NULL),
- NULL);
+
+ ArgumentListNode* arguments = new(Z) ArgumentListNode(condition_pos);
+ arguments->Add(condition);
+ arguments->Add(new(Z) LiteralNode(condition_pos,
+ Integer::ZoneHandle(Z, Integer::New(condition_pos.value(), Heap::kOld))));
+ arguments->Add(new(Z) LiteralNode(condition_end,
+ Integer::ZoneHandle(Z, Integer::New(condition_end.value(), Heap::kOld))));
+ return MakeStaticCall(Symbols::AssertionError(),
+ Library::PrivateCoreLibName(Symbols::CheckAssertion()),
+ arguments);
}
« no previous file with comments | « runtime/vm/parser.h ('k') | runtime/vm/symbols.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698