fixed some minor problems related to compareId

This commit is contained in:
Kevin Jahns 2016-04-26 21:27:08 +02:00
parent 2675f0277c
commit 2d1a7b067b

View File

@ -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