| 'use strict'; |
| // From: https://github.com/w3c/web-platform-tests/blob/master/encoding/api-invalid-label.html |
| // With the twist that we specifically test for Node.js error codes |
| |
| require('../common'); |
| const assert = require('assert'); |
| |
| [ |
| 'utf-8', |
| 'unicode-1-1-utf-8', |
| 'unicode11utf8', |
| 'unicode20utf8', |
| 'x-unicode20utf8', |
| 'utf8', |
| 'unicodefffe', |
| 'utf-16be', |
| 'csunicode', |
| 'iso-10646-ucs-2', |
| 'ucs-2', |
| 'unicode', |
| 'unicodefeff', |
| 'utf-16le', |
| 'utf-16', |
| ].forEach((i) => { |
| ['\u0000', '\u000b', '\u00a0', '\u2028', '\u2029'].forEach((ws) => { |
| assert.throws( |
| () => new TextDecoder(`${ws}${i}`), |
| { |
| code: 'ERR_ENCODING_NOT_SUPPORTED', |
| name: 'RangeError' |
| } |
| ); |
| |
| assert.throws( |
| () => new TextDecoder(`${i}${ws}`), |
| { |
| code: 'ERR_ENCODING_NOT_SUPPORTED', |
| name: 'RangeError' |
| } |
| ); |
| |
| assert.throws( |
| () => new TextDecoder(`${ws}${i}${ws}`), |
| { |
| code: 'ERR_ENCODING_NOT_SUPPORTED', |
| name: 'RangeError' |
| } |
| ); |
| }); |
| }); |