
FAIL encoding attribute should have correct value for 'unicode-1-1-utf-8' Can't find variable: TextDecoderStream
FAIL encoding attribute should have correct value for 'iso-8859-2' Can't find variable: TextDecoderStream
FAIL encoding attribute should have correct value for 'ascii' Can't find variable: TextDecoderStream
FAIL encoding attribute should have correct value for 'utf-16' Can't find variable: TextDecoderStream
FAIL setting fatal to 'false' should set the attribute to false Can't find variable: TextDecoderStream
FAIL setting ignoreBOM to 'false' should set the attribute to false Can't find variable: TextDecoderStream
FAIL setting fatal to '0' should set the attribute to false Can't find variable: TextDecoderStream
FAIL setting ignoreBOM to '0' should set the attribute to false Can't find variable: TextDecoderStream
FAIL setting fatal to '' should set the attribute to false Can't find variable: TextDecoderStream
FAIL setting ignoreBOM to '' should set the attribute to false Can't find variable: TextDecoderStream
FAIL setting fatal to 'undefined' should set the attribute to false Can't find variable: TextDecoderStream
FAIL setting ignoreBOM to 'undefined' should set the attribute to false Can't find variable: TextDecoderStream
FAIL setting fatal to 'null' should set the attribute to false Can't find variable: TextDecoderStream
FAIL setting ignoreBOM to 'null' should set the attribute to false Can't find variable: TextDecoderStream
FAIL setting fatal to 'true' should set the attribute to true Can't find variable: TextDecoderStream
FAIL setting ignoreBOM to 'true' should set the attribute to true Can't find variable: TextDecoderStream
FAIL setting fatal to '1' should set the attribute to true Can't find variable: TextDecoderStream
FAIL setting ignoreBOM to '1' should set the attribute to true Can't find variable: TextDecoderStream
FAIL setting fatal to '[object Object]' should set the attribute to true Can't find variable: TextDecoderStream
FAIL setting ignoreBOM to '[object Object]' should set the attribute to true Can't find variable: TextDecoderStream
FAIL setting fatal to '' should set the attribute to true Can't find variable: TextDecoderStream
FAIL setting ignoreBOM to '' should set the attribute to true Can't find variable: TextDecoderStream
FAIL setting fatal to 'yes' should set the attribute to true Can't find variable: TextDecoderStream
FAIL setting ignoreBOM to 'yes' should set the attribute to true Can't find variable: TextDecoderStream
FAIL constructing with an invalid encoding should throw assert_throws_js: the constructor should throw function "() => new TextDecoderStream('')" threw object "ReferenceError: Can't find variable: TextDecoderStream" ("ReferenceError") expected instance of function "function RangeError() {
    [native code]
}" ("RangeError")
FAIL constructing with a non-stringifiable encoding should throw assert_throws_js: the constructor should throw function "() => new TextDecoderStream({
    toString() { return {}; }
  })" threw object "ReferenceError: Can't find variable: TextDecoderStream" ("ReferenceError") expected instance of function "function TypeError() {
    [native code]
}" ("TypeError")
FAIL a throwing fatal member should cause the constructor to throw assert_throws_js: the constructor should throw function "() => new TextDecoderStream('utf-8', {
                     get fatal() { throw new Error(); }
                   })" threw object "ReferenceError: Can't find variable: TextDecoderStream" ("ReferenceError") expected instance of function "function Error() {
    [native code]
}" ("Error")
FAIL a throwing ignoreBOM member should cause the constructor to throw assert_throws_js: the constructor should throw function "() => new TextDecoderStream('utf-8', {
                     get ignoreBOM() { throw new Error(); }
                   })" threw object "ReferenceError: Can't find variable: TextDecoderStream" ("ReferenceError") expected instance of function "function Error() {
    [native code]
}" ("Error")

