The MergeJSON function in the badjson package has been updated to handle cases where the source or destination raw JSON is nil. This introduces error checking that results in returning an error when both are nil and returning the non-nil JSON when only one is nil.
The Merge function has been refactored for clearer code by splitting it into multiple functions: "Merge", "MergeFromSource", "MergeFromDestination" and "MergeFrom" in the badjson package. These new functions improve the handling of raw JSON during merge and with this refactoring, the responsibility of each function is more defined.