Optimize a function to merge overlapping intervals in a large dataset.
Implement merge_intervals(intervals), where each interval is a two-element list [start, end]. Return a new list containing non-overlapping intervals that cover the same ranges, merging intervals when the next start is less than or equal to the current end.
def merge_intervals(intervals):