+++ This bug was initially created as a clone of Bug #16862 +++
(I'm concentrating Shift_JIS atm because I'm more familiar with the encoding than other foreign encodings.)
Presto discontinued. Now virtually all browsers support the EUDC code range. But the spec doesn't reflect the reality.
Do you have a pointer to what changes this would require?
The current decoder step 3.4 would be broken down as follows:
3.4. Let code point be null, if pointer is null, and run these substeps otherwose:
3.4.1. Let code point be index code point for pointer in index jis0208.
3.4.2. If code point is null and pointer is in range between 8836 and 10528, let code point be 0xE000 + (pointer - 8836).
This was removed in https://github.com/whatwg/encoding/commit/651f672ee988702da03f56ad8bdfda00b51a21ea That suggests a simpler approach here.
This fix was wrong. I went with a fix closer to that suggested in comment 2: