diff --git a/lib/ace/mode/text_highlight_rules.js b/lib/ace/mode/text_highlight_rules.js index 466778aa..e342c355 100644 --- a/lib/ace/mode/text_highlight_rules.js +++ b/lib/ace/mode/text_highlight_rules.js @@ -71,32 +71,22 @@ var TextHighlightRules = function() { this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) { var embedRules = new HighlightRules().getRules(); if (states) { - for (var i = 0; i < states.length; i++) { + for (var i = 0; i < states.length; i++) states[i] = prefix + states[i]; - } } else { states = []; - for (var key in embedRules) { + for (var key in embedRules) states.push(prefix + key); - } } this.addRules(embedRules, prefix); - if (append) { - for (var i = 0; i < states.length; i++) { - Array.prototype.push.apply(this.$rules[states[i]], lang.deepCopy(escapeRules)); - } - } - else { - for (var i = 0; i < states.length; i++) { - Array.prototype.unshift.apply(this.$rules[states[i]], lang.deepCopy(escapeRules)); - } - } + var addRules = Array.prototype[append ? "push" : "unshift"]; + for (var i = 0; i < states.length; i++) + addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules)); - if (!this.$embeds) { + if (!this.$embeds) this.$embeds = []; - } this.$embeds.push(prefix); }