This seems odd to me.  Why not do what I did with the TextEncoder/TextDecoder stuff, and shim it in our test environment via node, see https://github.com/RickEyre/vtt.js/blob/9c3fd14368f05f5d1de7362150067b0a474b2897/lib/util.js#L151-L155.  When you're in Gecko, this will exist, correct (i.e., you'll get it off window)?