diff --git a/src/Utils.js b/src/Utils.js index 08beef873024be0bf25ce42a87880cfe7e6f984f..d2bbf2889a4472df98da39ec4897ad3412258781 100644 --- a/src/Utils.js +++ b/src/Utils.js @@ -115,13 +115,15 @@ module.exports = function (Y /* : any*/) { if (op.struct === 'Insert') { for (var i = this.waiting.length - 1; i >= 0; i--) { let w = this.waiting[i] + // TODO: do I handle split operations correctly here? Super unlikely, but yeah.. + // Also: can this case happen? Can op be inserted in the middle of a larger op that is in $waiting? if (w.struct === 'Insert') { - if (Y.utils.compareIds(op.left, w.id)) { + if (Y.utils.matchesId(w, op.left)) { // include the effect of op in w w.right = op.id // exclude the effect of w in op op.left = w.left - } else if (Y.utils.compareIds(op.right, w.id)) { + } else if (Y.utils.matchesId(w, op.right)) { // similar.. w.left = op.id op.right = w.right