This behavior is consistent with other OO languages like C++ and C# that do
not have virtual methods by default.
This solution isn't ideal, but I don't have time for a larger refactoring
right now. I sat on this change for a good few weeks before committing it
unchanged.
* lib/MemberBuilderValidator.js (validateMethod): Allow override of
supertype overrides.
* test/*: Stripped `virtual' keyword where appropriate.
* doc/classes.texi (Inheritance): Update to state that `override' implies
`virtual'.
Does not yet include many more detailed tests, such as method invocation
times, which will be of particular interest. While definitions are indeed
interesting, they often occur when a program is loading---when the user is
expecting to wait. Not so for method invocations.