Languages.current = (yt && yt.config_ && yt.config_.HL_LOCALE && Languages[yt.config_.HL_LOCALE]) || Languages[document.documentElement.getAttribute("lang")] || Languages.en;
This does the following:
Fails to find yt and throws an error (yt is not defined).
window.hasOwnProperty('yt') or window['yt'] should work (technically... scopes and globals are a bit confusing... window has root scope and globals are declared as root; so among the many objects that have root scope yt is a 'property' of them all.) *Or, I guess, even window.yt; but I greatly dislike directly accessing an undefined property; (Technically, I guess that javascript just treats it as ['property_name'], with the exception of declaring the string object... but it is kind of... yeah)
Error popped up under Opera 12.*
https://www.youtube.com/watch?v=9dgSa4wmMzk (Download Icon Missing, yt not declared)
It seems that the script is running before the DOM is fully initialized, (a second error that occurs "watchSentimentActions.appendChild(buttonGroup);" watchSentimentActions is null). It may be my screwing up things, but yeah...
*I should note that the error occurs under https specifically, otherwise the script runs fine. (As I said, loading before the DOM completed may be my screwing things up; but the above issue is not)