I wasn't sure about invalidated being exposed to JS. The spec says "Each WebGLObject has an invalidated flag, which is initially unset", which implies that it should be present when it is set, but the IDL doesn't show it. I assume that was the way the spec was trying to say the property doesn't exist until it does exist :)

You're right that the test should exercise that the getExtension returns a new object. That would be easy to add.