For what it's worth, I agree with @yungsters here that the string-or-object-with-a-`useable`-method pattern is pretty weird.

Also, any check involving `window` should be guarded in a `ExecutionEnvironment.canUseDOM` check.