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--;
}
}
};