I have stumbled on this issue today. It has something to do with one specific file that triggers that branch in the logic. Other files seem to work just fine. For this reason I am not able to present a sandbox with an example. Luckily, the problem is very easy to see. It is in the checkBufferLength method of the clarinet.js file. If the conditions is right and the emitError('Max buffer length exceeded: textNode') code is executed, the emitError method resets the textNode value and the following line maxActual = Math.max(maxActual, textNode.length) fails with an error.
The most obvious solution would be to simply swap these two lines around.
function checkBufferLength () {
var maxActual = 0
if (textNode !== undefined && textNode.length > MAX_BUFFER_LENGTH) {
emitError('Max buffer length exceeded: textNode')
maxActual = Math.max(maxActual, textNode.length)
}
if (numberNode.length > MAX_BUFFER_LENGTH) {
emitError('Max buffer length exceeded: numberNode')
maxActual = Math.max(maxActual, numberNode.length)
}
bufferCheckPosition = (MAX_BUFFER_LENGTH - maxActual) +
position
}
I have stumbled on this issue today. It has something to do with one specific file that triggers that branch in the logic. Other files seem to work just fine. For this reason I am not able to present a sandbox with an example. Luckily, the problem is very easy to see. It is in the
checkBufferLength
method of theclarinet.js
file. If the conditions is right and theemitError('Max buffer length exceeded: textNode')
code is executed, theemitError
method resets thetextNode
value and the following linemaxActual = Math.max(maxActual, textNode.length)
fails with an error.The most obvious solution would be to simply swap these two lines around.
https://github.com/jimhigson/oboe.js/blob/52d150dd78b20205bd26d63c807ac170c03f0f64/dist/oboe-browser.js#L2381-L2384