diff --git a/docs/acorn.html b/docs/acorn.html index 16abf53e11..7ccb172c64 100644 --- a/docs/acorn.html +++ b/docs/acorn.html @@ -615,7 +615,8 @@ that break and continue have somewhere to jump to, and
-  var inFunction, inGenerator, labels, strict, inXJSChild, inXJSTag;
+ var inFunction, inGenerator, labels, strict, + inXJSChild, inXJSTag, inXJSChildExpression; @@ -1343,14 +1344,14 @@ the next one’s tokStart will point at the right position.

tokEnd = tokPos; if (options.locations) tokEndLoc = new Position; tokType = type; - if (shouldSkipSpace !== false && !(inXJSTag && type === _gt) && !(inXJSChild && tokType !== _braceL)) { + if (shouldSkipSpace !== false && !(inXJSChild && tokType !== _braceL)) { skipSpace(); } tokVal = val; tokRegexpAllowed = type.beforeExpr; if (options.onToken) { options.onToken(new Token()); - } + } } function skipBlockComment() { @@ -1590,7 +1591,7 @@ into it.

      size = 2;
       return finishOp(_ltSlash, size);
     }
-    return finishOp(code === 60 ? _lt : _gt, size);
+    return code === 60 ? finishOp(_lt, size) : finishOp(_gt, size, !inXJSTag);
   }
 
   function readToken_eq_excl(code) { // '=!', '=>'
@@ -1705,7 +1706,7 @@ by a digit or another two dots.

case 91: ++tokPos; return finishToken(_bracketL); case 93: ++tokPos; return finishToken(_bracketR); case 123: ++tokPos; return finishToken(_braceL); - case 125: ++tokPos; return finishToken(_braceR); + case 125: ++tokPos; return finishToken(_braceR, undefined, !inXJSChildExpression); case 58: ++tokPos; return finishToken(_colon); case 63: ++tokPos; return finishToken(_question); @@ -1871,10 +1872,10 @@ character, or something that’s entirely disallowed.

return tok; } - function finishOp(type, size) { + function finishOp(type, size, shouldSkipSpace) { var str = input.slice(tokPos, tokPos + size); tokPos += size; - finishToken(type, str); + finishToken(type, str, shouldSkipSpace); }
@@ -5233,13 +5234,19 @@ at the beginning of the next one (right brace).

function parseXJSExpressionContainer() { var node = startNode(); - var origInXJSTag = inXJSTag; + var origInXJSTag = inXJSTag, + origInXJSChild = inXJSChild; + inXJSTag = false; + inXJSChild = false; + inXJSChildExpression = origInXJSChild; next(); node.expression = tokType === _braceR ? parseXJSEmptyExpression() : parseExpression(); inXJSTag = origInXJSTag; + inXJSChild = origInXJSChild; + inXJSChildExpression = false; expect(_braceR); return finishNode(node, "XJSExpressionContainer");