diff --git a/lib/rules_inline/emphasis.js b/lib/rules_inline/emphasis.js index 31bfbdd..4447ce7 100644 --- a/lib/rules_inline/emphasis.js +++ b/lib/rules_inline/emphasis.js @@ -77,7 +77,7 @@ module.exports.postProcess = function emphasis(state) { delimiters = state.delimiters, max = state.delimiters.length; - for (i = 0; i < max; i++) { + for (i = max - 1; i >= 0; i--) { startDelim = delimiters[i]; if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) { @@ -96,11 +96,11 @@ module.exports.postProcess = function emphasis(state) { // // `whatever` -> `whatever` // - isStrong = i + 1 < max && - delimiters[i + 1].end === startDelim.end - 1 && - delimiters[i + 1].token === startDelim.token + 1 && - delimiters[startDelim.end - 1].token === endDelim.token - 1 && - delimiters[i + 1].marker === startDelim.marker; + isStrong = i - 1 >= 0 && + delimiters[i - 1].end === startDelim.end + 1 && + delimiters[i - 1].token === startDelim.token - 1 && + delimiters[startDelim.end + 1].token === endDelim.token + 1 && + delimiters[i - 1].marker === startDelim.marker; ch = String.fromCharCode(startDelim.marker); @@ -119,9 +119,9 @@ module.exports.postProcess = function emphasis(state) { token.content = ''; if (isStrong) { - state.tokens[delimiters[i + 1].token].content = ''; - state.tokens[delimiters[startDelim.end - 1].token].content = ''; - i++; + state.tokens[delimiters[i - 1].token].content = ''; + state.tokens[delimiters[startDelim.end + 1].token].content = ''; + i--; } } };