The aforementioned test was designed to make sure that the output of the channel merger when fed back to itself doesn't cause crashes.
However, the test of the outputs is wrong. Here is the guts of the test:
// @channels 2
// @sampleRate 32768
// @duration 0.25
let merger = context.createChannelMerger(2);
let delay = context.createDelay();
let source = context.createConstantSource();
delay.delayTime.value = 128 / context.sampleRate;
// Connect the source to input 0 of the merger. Connect the output of
// the merger to a delay node whose output is then connected to input 1
// of the merger. See: crbug.com/442925
source.connect(merger, 0, 0);
delay.connect(merger, 0, 1);
merger.connect(delay);
merger.connect(context.destination);
source.start();
Run this in canopy using Chrome and Firefox. You will see that the output of the second channel is 0 for 256 samples in Chrome, but only 128 for Firefox. I think Firefox is correct here.
Chrome doesn't take into account the fact that there is a cycle in the graph.