Index: runtime/vm/parser.cc |
diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc |
index 717f9aa2d245934ca6b52b752dd2a5af9fe0dc13..d3b62f69fb59dda151d5db756e868abd91a19172 100644 |
--- a/runtime/vm/parser.cc |
+++ b/runtime/vm/parser.cc |
@@ -70,7 +70,6 @@ DEFINE_FLAG(bool, |
assert_initializer, |
false, |
"Allow asserts in initializer lists."); |
-DEFINE_FLAG(bool, assert_message, false, "Allow message in assert statements"); |
DECLARE_FLAG(bool, profile_vm); |
DECLARE_FLAG(bool, trace_service); |
@@ -9165,10 +9164,6 @@ AstNode* Parser::ParseAssertStatement(bool is_const) { |
const TokenPosition condition_pos = TokenPos(); |
if (!I->asserts()) { |
SkipExpr(); |
- if (FLAG_assert_message && CurrentToken() == Token::kCOMMA) { |
- ConsumeToken(); |
- SkipExpr(); |
- } |
ExpectToken(Token::kRPAREN); |
return NULL; |
} |
@@ -9178,52 +9173,23 @@ AstNode* Parser::ParseAssertStatement(bool is_const) { |
"initializer assert expression must be compile time constant."); |
} |
const TokenPosition condition_end = TokenPos(); |
- AstNode* message = NULL; |
- TokenPosition message_pos = TokenPosition::kNoSource; |
- if (FLAG_assert_message && CurrentToken() == Token::kCOMMA) { |
- ConsumeToken(); |
- message_pos = TokenPos(); |
- message = ParseAwaitableExpr(kAllowConst, kConsumeCascades, NULL); |
- if (is_const && !message->IsPotentiallyConst()) { |
- ReportError( |
- message_pos, |
- "initializer assert expression must be compile time constant."); |
- } |
- } |
ExpectToken(Token::kRPAREN); |
- if (!is_const) { |
- // Check for being a function if not const. |
- ArgumentListNode* arguments = new (Z) ArgumentListNode(condition_pos); |
- arguments->Add(condition); |
- condition = MakeStaticCall( |
- Symbols::AssertionError(), |
- Library::PrivateCoreLibName(Symbols::CheckAssertion()), arguments); |
- } |
- AstNode* not_condition = |
- new (Z) UnaryOpNode(condition_pos, Token::kNOT, condition); |
- |
- // Build call to _AsertionError._throwNew |
ArgumentListNode* arguments = new (Z) ArgumentListNode(condition_pos); |
+ arguments->Add(condition); |
arguments->Add(new (Z) LiteralNode( |
condition_pos, |
- Integer::ZoneHandle(Z, Integer::New(condition_pos.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.Pos())))); |
- if (message == NULL) { |
- message = new (Z) LiteralNode(condition_end, Instance::ZoneHandle(Z)); |
- } |
- arguments->Add(message); |
+ Integer::ZoneHandle(Z, Integer::New(condition_end.value(), Heap::kOld)))); |
AstNode* assert_throw = MakeStaticCall( |
Symbols::AssertionError(), |
- Library::PrivateCoreLibName(Symbols::ThrowNew()), arguments); |
+ Library::PrivateCoreLibName(is_const ? Symbols::CheckConstAssertion() |
+ : Symbols::CheckAssertion()), |
+ arguments); |
- return new (Z) |
- IfNode(condition_pos, not_condition, |
- NodeAsSequenceNode((message == NULL) ? condition_pos : message_pos, |
- assert_throw, NULL), |
- NULL); |
+ return assert_throw; |
} |