diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2021-01-24 21:48:51 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-25 05:48:51 +0800 |
commit | 9d23ba0a22fe3d1561b7860dc3aefadef72a4514 (patch) | |
tree | 65f50c3437c930692d6ecfb87afcdc357ab4b16a /lib/parse.js | |
parent | a08d42555ac42ad1e9bf4b13f44ac46c5bb2dab4 (diff) | |
download | tracifyjs-9d23ba0a22fe3d1561b7860dc3aefadef72a4514.tar.gz tracifyjs-9d23ba0a22fe3d1561b7860dc3aefadef72a4514.zip |
support exponentiation operator (#4593)
Diffstat (limited to 'lib/parse.js')
-rw-r--r-- | lib/parse.js | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/parse.js b/lib/parse.js index 64307a95..38c56d8f 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -81,6 +81,7 @@ var OPERATORS = makePredicate([ "*", "/", "%", + "**", ">>", "<<", ">>>", @@ -630,7 +631,8 @@ var PRECEDENCE = function(a, ret) { ["<", ">", "<=", ">=", "in", "instanceof"], [">>", "<<", ">>>"], ["+", "-"], - ["*", "/", "%"] + ["*", "/", "%"], + ["**"], ], {}); var ATOMIC_START_TOKEN = makePredicate("atom bigint num regexp string"); @@ -1860,7 +1862,7 @@ function parse($TEXT, options) { var prec = op != null ? PRECEDENCE[op] : null; if (prec != null && prec > min_prec) { next(); - var right = expr_op(maybe_await(), prec, no_in); + var right = expr_op(maybe_await(), op == "**" ? prec - 1 : prec, no_in); return expr_op(new AST_Binary({ start : left.start, left : left, |