Make more use of DefineConsoleMethod

Resubmission of #887 with some fixes.
We can use ```return src == 0 || src[0] == '\0';``` ?