visitAssertStmt method
Implementation
@override
Uint8List visitAssertStmt(AssertStmt stmt) {
final bytesBuilder = BytesBuilder();
if (!config.removeAssertion) {
bytesBuilder.add(_lineInfo(stmt.line, stmt.column));
final hasDescription = stmt.description != null;
if (hasDescription) {
bytesBuilder.add(compileAST(stmt.description!));
}
bytesBuilder.add(compileAST(stmt.expr));
bytesBuilder.addByte(OpCode.assertion);
final content = stmt.source!.content;
final text = content.substring(stmt.expr.offset, stmt.expr.end);
bytesBuilder.add(_utf8String(text.trim()));
bytesBuilder.addByte(hasDescription ? 1 : 0);
bytesBuilder.addByte(OpCode.endOfStmt);
}
return bytesBuilder.toBytes();
}