Double-duty quine: quine!dlroW ,olleH Write a program that will output its own source code when run, and nothing else. Seems easy, right?

The catch is that when the source code is reversed, your program must output "Hello, World!" exactly, without the quotes.

This is code-golf, so lowest byte count wins.

Edit: Your quine must be a proper quine.
JavaScript (ES6), 42 38 bytes

f=_=&gt;/\//g&amp;&amp;"f="+f||"!dlroW ,olleH"&gt;=_


Reversed

_=&gt;"Hello, World!"||f+"=f"&amp;&amp;g//\/&gt;=_=f


Explanation

When reversed, it becomes an anonymous function that returns the string Hello, World!.

The regex /\//g becomes a comment when it is reversed, which allows the syntactically invalid &gt;=_=f to be commented out in the reversed code.