Write a program that outputs its source code in reverse when run, and outputs its source forwards when I reverse the source. If your program is "abcd", when run with no arguments it should output "dcba", and when I run the program "dcba" it should output "abcd."
This is a quine challenge, so both your forwards and reverse program must follow the rules of proper quines. Your source code may not be a palindrome.
This is a code-golf challenge, so the shortest code by byte count wins.