diff --git a/src/Utils.js b/src/Utils.js index 03e841a3..a80f3808 100644 --- a/src/Utils.js +++ b/src/Utils.js @@ -67,7 +67,11 @@ export default function Utils (Y) { this._eventListener[name] = listener.filter(e => e !== f) } emit (name, value) { - (this._eventListener[name] || []).forEach(l => l(value)) + let listener = this._eventListener[name] || [] + if (name === 'error' && listener.length === 0) { + console.error(value) + } + listener.forEach(l => l(value)) } destroy () { this._eventListener = null diff --git a/src/y-memory.js b/src/y-memory.js index 67a593f2..7744814d 100644 --- a/src/y-memory.js +++ b/src/y-memory.js @@ -1,4 +1,3 @@ - import extendRBTree from './RedBlackTree' export default function extend (Y) { @@ -48,9 +47,13 @@ export default function extend (Y) { } transact (makeGen) { const t = new Transaction(this) - while (makeGen != null) { - makeGen.call(t) - makeGen = this.getNextRequest() + try { + while (makeGen != null) { + makeGen.call(t) + makeGen = this.getNextRequest() + } + } catch (e) { + this.y.emit('error', e) } } destroy () {