code: function endOperations(group) {
    let ops = group.ops
    for (let i = 0; i < ops.length; i++) // Read DOM
      endOperation_R1(ops[i])
    for (let i = 0; i < ops.length; i++) // Write DOM (maybe)
      endOperation_W1(ops[i])
    for (let i = 0; i < ops.length; i++) // Read DOM
      endOperation_R2(ops[i])
    for (let i = 0; i < ops.length; i++) // Write DOM (maybe)
      endOperation_W2(ops[i])
    for (let i = 0; i < ops.length; i++) // Read DOM
      endOperation_finish(ops[i])
  }
docs: The DOM updates done when an operation finishes are batched so that the minimum number of relayouts are required.