**Actual Behaviour** For the snippet given below, http1 returns `['A','B']`, but http2 returns only `['B']`. ```js res.writeHead(200, [['set-cookie', 'A'], ['set-cookie', 'B'], ['content-type', 'text/plain']]); ``` **Expected Behavior** http2 should return `['A','B']`. **Reproduction Code** ```js const server = http2.createServer(function (req, res) { res.writeHead(200, [['set-cookie', 'A'], ['set-cookie', 'B'], ['content-type', 'text/plain']]); res.end(); }); server.listen(0, () => { const url = `http://localhost:${server.address().port}`; const clientsession = http2.connect(url); const req = clientsession.request(); req.on('response', (headers) => { assert.deepStrictEqual(headers['set-cookie'], ['A', 'B']); // fails }); req.on('end', () => { clientsession.close(); server.close(); }); }); ``` *** I think this is caused by an unintentional override inside `kSetHeaders` method, see below. https://github.com/nodejs/node/blob/5007611294bfcfe7af8648a69bd19d1b014c84bd/lib/internal/http2/compat.js#L592
Activity