diff --git a/src/emitter.js b/src/emitter.js index 286e4c5..f113161 100644 --- a/src/emitter.js +++ b/src/emitter.js @@ -673,11 +673,6 @@ PEG.compiler.emitter = function(ast) { }, simple_and: function(node, context) { - var expressionContext = { - resultIndex: context.resultIndex, - posIndex: context.posIndex + 1 - }; - return formatCode( '#{posVar} = pos;', 'reportFailures++;', @@ -690,7 +685,10 @@ PEG.compiler.emitter = function(ast) { ' #{resultVar} = null;', '}', { - expressionCode: emit(node.expression, expressionContext), + expressionCode: emit(node.expression, { + resultIndex: context.resultIndex, + posIndex: context.posIndex + 1 + }), posVar: posVar(context.posIndex), resultVar: resultVar(context.resultIndex) }