[Pkg-javascript-commits] [node-acorn-jsx] 421/484: Avoid extra call and arg in parseExpression for single-expression case.

Bastien Roucariès rouca at moszumanska.debian.org
Sat Aug 19 14:21:05 UTC 2017


This is an automated email from the git hooks/post-receive script.

rouca pushed a commit to branch master
in repository node-acorn-jsx.

commit f0569147e6b34b94c60f0bdf2edcd8d092012a5d
Author: Ingvar Stepanyan <me at rreverser.com>
Date:   Fri Jan 23 21:48:33 2015 +0200

    Avoid extra call and arg in parseExpression for single-expression case.
---
 acorn.js       | 18 +++++++++---------
 acorn_loose.js | 24 ++++++++++++------------
 2 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/acorn.js b/acorn.js
index 35015ad..d7fc369 100644
--- a/acorn.js
+++ b/acorn.js
@@ -1837,7 +1837,7 @@
         return parseForIn(node, init);
       return parseFor(node, init);
     }
-    var init = parseExpression(false, true);
+    var init = parseExpression(true);
     if (tokType === _in || (options.ecmaVersion >= 6 && isContextual("of"))) {
       checkLVal(init);
       return parseForIn(node, init);
@@ -2054,7 +2054,7 @@
       var decl = startNode();
       decl.id = parseAssignableAtom();
       checkLVal(decl.id, true);
-      decl.init = eat(_eq) ? parseExpression(true, noIn) : (kind === _const.keyword ? unexpected() : null);
+      decl.init = eat(_eq) ? parseMaybeAssign(noIn) : (kind === _const.keyword ? unexpected() : null);
       node.declarations.push(finishNode(decl, "VariableDeclarator"));
       if (!eat(_comma)) break;
     }
@@ -2073,10 +2073,10 @@
   // sequences (in argument lists, array literals, or object literals)
   // or the `in` operator (in for loops initalization expressions).
 
-  function parseExpression(noComma, noIn) {
+  function parseExpression(noIn) {
     var start = storeCurrentPos();
     var expr = parseMaybeAssign(noIn);
-    if (!noComma && tokType === _comma) {
+    if (tokType === _comma) {
       var node = startNodeAt(start);
       node.expressions = [expr];
       while (eat(_comma)) node.expressions.push(parseMaybeAssign(noIn));
@@ -2111,9 +2111,9 @@
     if (eat(_question)) {
       var node = startNodeAt(start);
       node.test = expr;
-      node.consequent = parseExpression(true);
+      node.consequent = parseMaybeAssign();
       expect(_colon);
-      node.alternate = parseExpression(true, noIn);
+      node.alternate = parseMaybeAssign(noIn);
       return finishNode(node, "ConditionalExpression");
     }
     return expr;
@@ -2514,7 +2514,7 @@
     var isExpression = allowExpression && tokType !== _braceL;
 
     if (isExpression) {
-      node.body = parseExpression(true);
+      node.body = parseMaybeAssign();
       node.expression = true;
     } else {
       // Start a new scope with regard to labels and the `inFunction`
@@ -2637,7 +2637,7 @@
     } else
     // export default ...;
     if (eat(_default)) {
-      node.declaration = parseExpression(true);
+      node.declaration = parseMaybeAssign();
       node['default'] = true;
       node.specifiers = null;
       node.source = null;
@@ -2755,7 +2755,7 @@
       node.argument = null;
     } else {
       node.delegate = eat(_star);
-      node.argument = parseExpression(true);
+      node.argument = parseMaybeAssign();
     }
     return finishNode(node, "YieldExpression");
   }
diff --git a/acorn_loose.js b/acorn_loose.js
index 44b0870..297589a 100644
--- a/acorn_loose.js
+++ b/acorn_loose.js
@@ -366,7 +366,7 @@
         }
         return parseFor(node, init);
       }
-      var init = parseExpression(false, true);
+      var init = parseExpression(true);
       if (token.type === tt._in || isContextual("of")) {
         return parseForIn(node, checkLVal(init));
       }
@@ -539,7 +539,7 @@
     do {
       var decl = startNode();
       decl.id = options.ecmaVersion >= 6 ? toAssignable(parseExprAtom()) : parseIdent();
-      decl.init = eat(tt.eq) ? parseExpression(true, noIn) : null;
+      decl.init = eat(tt.eq) ? parseMaybeAssign(noIn) : null;
       node.declarations.push(finishNode(decl, "VariableDeclarator"));
     } while (eat(tt.comma));
     if (!node.declarations.length) {
@@ -551,10 +551,10 @@
     return finishNode(node, "VariableDeclaration");
   }
 
-  function parseExpression(noComma, noIn) {
+  function parseExpression(noIn) {
     var start = storeCurrentPos();
     var expr = parseMaybeAssign(noIn);
-    if (!noComma && token.type === tt.comma) {
+    if (token.type === tt.comma) {
       var node = startNodeAt(start);
       node.expressions = [expr];
       while (eat(tt.comma)) node.expressions.push(parseMaybeAssign(noIn));
@@ -592,8 +592,8 @@
     if (eat(tt.question)) {
       var node = startNodeAt(start);
       node.test = expr;
-      node.consequent = parseExpression(true);
-      node.alternate = expect(tt.colon) ? parseExpression(true, noIn) : dummyIdent();
+      node.consequent = parseMaybeAssign();
+      node.alternate = expect(tt.colon) ? parseMaybeAssign(noIn) : dummyIdent();
       return finishNode(node, "ConditionalExpression");
     }
     return expr;
@@ -783,7 +783,7 @@
         node.argument = null;
       } else {
         node.delegate = eat(tt.star);
-        node.argument = parseExpression(true);
+        node.argument = parseMaybeAssign();
       }
       return finishNode(node, "YieldExpression");
 
@@ -871,7 +871,7 @@
         isGenerator = eat(tt.star);
       }
       parsePropertyName(prop);
-      if (isDummy(prop.key)) { if (isDummy(parseExpression(true))) next(); eat(tt.comma); continue; }
+      if (isDummy(prop.key)) { if (isDummy(parseMaybeAssign())) next(); eat(tt.comma); continue; }
       if (isClass) {
         if (prop.key.type === "Identifier" && !prop.computed && prop.key.name === "static" &&
             (token.type != tt.parenL && token.type != tt.braceL)) {
@@ -884,7 +884,7 @@
       }
       if (!isClass && eat(tt.colon)) {
         prop.kind = "init";
-        prop.value = parseExpression(true);
+        prop.value = parseMaybeAssign();
       } else if (options.ecmaVersion >= 6 && (token.type === tt.parenL || token.type === tt.braceL)) {
         if (isClass) {
           prop.kind = "";
@@ -1029,7 +1029,7 @@
     node.params = parseFunctionParams();
     node.generator = isGenerator || false;
     node.expression = options.ecmaVersion >= 6 && token.type !== tt.braceL;
-    node.body = node.expression ? parseExpression(true) : parseBlock();
+    node.body = node.expression ? parseMaybeAssign() : parseBlock();
     return finishNode(node, "FunctionExpression");
   }
 
@@ -1037,7 +1037,7 @@
     initFunction(node);
     node.params = toAssignableList(params);
     node.expression = token.type !== tt.braceL;
-    node.body = node.expression ? parseExpression(true) : parseBlock();
+    node.body = node.expression ? parseMaybeAssign() : parseBlock();
     return finishNode(node, "ArrowFunctionExpression");
   }
 
@@ -1124,7 +1124,7 @@
         elts.push(allowEmpty ? null : dummyIdent());
         continue;
       }
-      var elt = parseExpression(true);
+      var elt = parseMaybeAssign();
       if (isDummy(elt)) {
         if (closes(close, indent, line)) break;
         next();

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-acorn-jsx.git



More information about the Pkg-javascript-commits mailing list