diff --git a/mustache.js b/mustache.js index 3a84b74..a3aac8f 100644 --- a/mustache.js +++ b/mustache.js @@ -19,13 +19,6 @@ } }(this, function (mustache) { - var whiteRe = /\s*/; - var spaceRe = /\s+/; - var nonSpaceRe = /\S/; - var eqRe = /\s*=/; - var curlyRe = /\s*\}/; - var tagRe = /#|\^|\/|>|\{|&|=|!/; - // Workaround for https://issues.apache.org/jira/browse/COUCHDB-577 // See https://github.com/janl/mustache.js/issues/189 var RegExp_test = RegExp.prototype.test; @@ -33,6 +26,7 @@ return RegExp_test.call(re, string); } + var nonSpaceRe = /\S/; function isWhitespace(string) { return !testRegExp(nonSpaceRe, string); } @@ -76,6 +70,12 @@ ]; } + var whiteRe = /\s*/; + var spaceRe = /\s+/; + var equalsRe = /\s*=/; + var curlyRe = /\s*\}/; + var tagRe = /#|\^|\/|>|\{|&|=|!/; + /** * Breaks up the given `template` string into a tree of tokens. If the `tags` * argument is given here it must be an array with two string values: the @@ -85,18 +85,18 @@ * A token is an array with at least 4 elements. The first element is the * mustache symbol that was used inside the tag, e.g. "#" or "&". If the tag * did not contain a symbol (i.e. {{myValue}}) this element is "name". For - * all template text that appears outside a symbol this element is "text". + * all text that appears outside a symbol this element is "text". * * The second element of a token is its "value". For mustache tags this is * whatever else was inside the tag besides the opening symbol. For text tokens * this is the text itself. * - * The third and fourth elements of the token are the start and end indices - * in the original template of the token, respectively. + * The third and fourth elements of the token are the start and end indices, + * respectively, of the token in the original template. * - * Tokens that are the root node of a subtree contain two more elements: an - * array of tokens in the subtree and the index in the original template at which - * the closing tag for that section begins. + * Tokens that are the root node of a subtree contain two more elements: 1) an + * array of tokens in the subtree and 2) the index in the original template at + * which the closing tag for that section begins. */ function parseTemplate(template, tags) { tags = tags || mustache.tags; @@ -166,8 +166,8 @@ // Get the tag value. if (type === '=') { - value = scanner.scanUntil(eqRe); - scanner.scan(eqRe); + value = scanner.scanUntil(equalsRe); + scanner.scan(equalsRe); scanner.scanUntil(tagRes[1]); } else if (type === '{') { value = scanner.scanUntil(new RegExp('\\s*' + escapeRegExp('}' + tags[1])));