In XHR [1], setRequestHeader is defined by this:
void setRequestHeader(ByteString name, ByteString value);
It has a note:
[[ Throws a SyntaxError exception if name is not a header name or if value is 
not a header value. ]]

In WebIDL [2], ByteString is defined by the algorithm
        • Let x be ToString(V).
        • If the value of any element of x is greater than 255, then throw a 
        • Return an IDL ByteString value whose length is the length of x, and 
where the value of each element is the value of the corresponding element of x.
So what should be thrown when one does

var client = new XMLHttpRequest();
client.open('GET', '/glop');
client.setRequestHeader('X-Test', '小');

TypeError per WebIDL or SyntaxError per XHR?
I think it should be TypeError, and SyntaxError for code <256 that are not 
allowed, but implementations currently use SyntaxError only.

[1] https://xhr.spec.whatwg.org/
[2] https://heycam.github.io/webidl/#es-ByteString
Baroula que barouleras, au tiéu toujou t'entourneras.


Reply via email to