visitUnaryPrefixExpr method

  1. @override
Uint8List visitUnaryPrefixExpr(
  1. UnaryPrefixExpr expr
)
override

-e, !e, ~e, ++e, --e, await e

Implementation

@override
Uint8List visitUnaryPrefixExpr(UnaryPrefixExpr expr) {
  final bytesBuilder = BytesBuilder();
  final value = compileAST(expr.object);
  if (expr.op == _lexicon.negative) {
    bytesBuilder.add(value);
    bytesBuilder.addByte(OpCode.negative);
  } else if (expr.op == _lexicon.logicalNot) {
    bytesBuilder.add(value);
    bytesBuilder.addByte(OpCode.logicalNot);
  } else if (expr.op == _lexicon.bitwiseNot) {
    bytesBuilder.add(value);
    bytesBuilder.addByte(OpCode.bitwiseNot);
  } else if (expr.op == _lexicon.kTypeValueOf) {
    bytesBuilder.add(value);
    bytesBuilder.addByte(OpCode.typeValueOf);
  } else if (expr.op == _lexicon.kDeclTypeof) {
    bytesBuilder.add(value);
    bytesBuilder.addByte(OpCode.decltypeOf);
  } else if (expr.op == _lexicon.kAwait) {
    bytesBuilder.add(value);
    bytesBuilder.addByte(OpCode.awaitedValue);
  }
  return bytesBuilder.toBytes();
}