@assert
The @assert
directive is also invaluable for debugging and validating
invariants in your code.
Examples
It is invoked with an expression argument and optional string message:
@assert 2 + 2 == 4
@assert 1, "cannot fail!"
Assertions support lazy evaluation. That means you can write assertions that reference labels that are defined later in your code:
@assert SubRoutine.length == 4
SubRoutine:
nop
nop
nop
rts
@defn .length, @here - SubRoutine