Currently there are newer observe() parameters such as type and buffered but it's not easy to feature-detect them. The only way I can think of doing it is to call the method to observe within a try/catch to figure out if they are supported by the current user agent or not. It's not ideal.