Ideas for additional coverage:
- Whitespace between and after the padding character
=, e.g. Uint8Array.fromBase64("Zg= =") and Uint8Array.fromBase64("Zg= = ").
Uint8Array.prototype.setFrom{Base64,Hex} doesn't modify the typed array when the input string is invalid.
- Typed array is backed by a SharedArrayBuffer.
lastChunkHandling option is present, but set to undefined, e.g. the options object is {lastChunkHandling: undefined}.
lastChunkHandling option is an invalid string value, e.g. the options object is {lastChunkHandling: "bad"}.
alphabet option is present, but set to undefined, e.g. the options object is {alphabet: undefined}.
alphabet and lastChunkHandling options are read in the correct order.
- Extra bits with three element trailing chunk and strict chunk handling, e.g.
Uint8Array.fromBase64("ZZZ=", {lastChunkHandling: "strict"}). (The two element chunk case is already covered.)
Originally posted by @anba in #3994 (comment)
Ideas for additional coverage:
=, e.g.Uint8Array.fromBase64("Zg= =")andUint8Array.fromBase64("Zg= = ").Uint8Array.prototype.setFrom{Base64,Hex}doesn't modify the typed array when the input string is invalid.lastChunkHandlingoption is present, but set toundefined, e.g. the options object is{lastChunkHandling: undefined}.lastChunkHandlingoption is an invalid string value, e.g. the options object is{lastChunkHandling: "bad"}.alphabetoption is present, but set toundefined, e.g. the options object is{alphabet: undefined}.alphabetandlastChunkHandlingoptions are read in the correct order.Uint8Array.fromBase64("ZZZ=", {lastChunkHandling: "strict"}). (The two element chunk case is already covered.)Originally posted by @anba in #3994 (comment)