Add support for class member variable

supersedes #1417
Why not? For consistency it is simpler and it allows you to compile this to ES6