In v6, the new strictMerge option (added in cb41a54) defaults to true, which changes the behavior of parsing conflicting key types. When a key appears as both a plain value and an object (e.g. a[b]=c&a=d), the result is now wrapped in an array ({ a: [{ b: 'c' }, 'd'] }) instead of the legacy behavior of using the primitive as a key with value true ({ a: { b: 'c', d: true } }).
In v7, strictMerge should default to false (removing the legacy target[source] = true code path entirely), since the array-wrapping behavior will be the only supported behavior.
In v6, the new
strictMergeoption (added in cb41a54) defaults totrue, which changes the behavior of parsing conflicting key types. When a key appears as both a plain value and an object (e.g.a[b]=c&a=d), the result is now wrapped in an array ({ a: [{ b: 'c' }, 'd'] }) instead of the legacy behavior of using the primitive as a key with valuetrue({ a: { b: 'c', d: true } }).In v7,
strictMergeshould default tofalse(removing the legacytarget[source] = truecode path entirely), since the array-wrapping behavior will be the only supported behavior.