Skip to content
This repository was archived by the owner on Jan 19, 2019. It is now read-only.

Commit 6dd3696

Browse files
azzJamesHenry
authored andcommitted
Fix: Add exponentiation operators (fixes #280) (#281)
1 parent 3491b4b commit 6dd3696

File tree

5 files changed

+552
-2
lines changed

5 files changed

+552
-2
lines changed

lib/node-utils.js

+2
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ TOKEN_TO_TEXT[SyntaxKind.EqualsGreaterThanToken] = "=>";
6464
TOKEN_TO_TEXT[SyntaxKind.PlusToken] = "+";
6565
TOKEN_TO_TEXT[SyntaxKind.MinusToken] = "-";
6666
TOKEN_TO_TEXT[SyntaxKind.AsteriskToken] = "*";
67+
TOKEN_TO_TEXT[SyntaxKind.AsteriskAsteriskToken] = "**";
6768
TOKEN_TO_TEXT[SyntaxKind.SlashToken] = "/";
6869
TOKEN_TO_TEXT[SyntaxKind.PercentToken] = "%";
6970
TOKEN_TO_TEXT[SyntaxKind.PlusPlusToken] = "++";
@@ -85,6 +86,7 @@ TOKEN_TO_TEXT[SyntaxKind.EqualsToken] = "=";
8586
TOKEN_TO_TEXT[SyntaxKind.PlusEqualsToken] = "+=";
8687
TOKEN_TO_TEXT[SyntaxKind.MinusEqualsToken] = "-=";
8788
TOKEN_TO_TEXT[SyntaxKind.AsteriskEqualsToken] = "*=";
89+
TOKEN_TO_TEXT[SyntaxKind.AsteriskAsteriskEqualsToken] = "**=";
8890
TOKEN_TO_TEXT[SyntaxKind.SlashEqualsToken] = "/=";
8991
TOKEN_TO_TEXT[SyntaxKind.PercentEqualsToken] = "%=";
9092
TOKEN_TO_TEXT[SyntaxKind.LessThanLessThanEqualsToken] = "<<=";

tests/fixtures/ast/Assignment-Operators.json

+73-1
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,78 @@
575575
}
576576
}
577577
},
578+
"x **= 42": {
579+
"type": "ExpressionStatement",
580+
"expression": {
581+
"type": "AssignmentExpression",
582+
"operator": "**=",
583+
"left": {
584+
"type": "Identifier",
585+
"name": "x",
586+
"range": [
587+
0,
588+
1
589+
],
590+
"loc": {
591+
"start": {
592+
"line": 1,
593+
"column": 0
594+
},
595+
"end": {
596+
"line": 1,
597+
"column": 1
598+
}
599+
}
600+
},
601+
"right": {
602+
"type": "Literal",
603+
"value": 42,
604+
"raw": "42",
605+
"range": [
606+
6,
607+
8
608+
],
609+
"loc": {
610+
"start": {
611+
"line": 1,
612+
"column": 6
613+
},
614+
"end": {
615+
"line": 1,
616+
"column": 8
617+
}
618+
}
619+
},
620+
"range": [
621+
0,
622+
7
623+
],
624+
"loc": {
625+
"start": {
626+
"line": 1,
627+
"column": 0
628+
},
629+
"end": {
630+
"line": 1,
631+
"column": 8
632+
}
633+
}
634+
},
635+
"range": [
636+
0,
637+
8
638+
],
639+
"loc": {
640+
"start": {
641+
"line": 1,
642+
"column": 0
643+
},
644+
"end": {
645+
"line": 1,
646+
"column": 8
647+
}
648+
}
649+
},
578650
"x <<= 42": {
579651
"type": "ExpressionStatement",
580652
"expression": {
@@ -1007,4 +1079,4 @@
10071079
}
10081080
}
10091081
}
1010-
}
1082+
}

tests/fixtures/ast/Multiplicative-Operators.json

+72-1
Original file line numberDiff line numberDiff line change
@@ -211,5 +211,76 @@
211211
"column": 5
212212
}
213213
}
214+
},
215+
"x ** y": {
216+
"type": "ExpressionStatement",
217+
"expression": {
218+
"type": "BinaryExpression",
219+
"operator": "**",
220+
"left": {
221+
"type": "Identifier",
222+
"name": "x",
223+
"range": [
224+
0,
225+
1
226+
],
227+
"loc": {
228+
"start": {
229+
"line": 1,
230+
"column": 0
231+
},
232+
"end": {
233+
"line": 1,
234+
"column": 1
235+
}
236+
}
237+
},
238+
"right": {
239+
"type": "Identifier",
240+
"name": "y",
241+
"range": [
242+
5,
243+
6
244+
],
245+
"loc": {
246+
"start": {
247+
"line": 1,
248+
"column": 5
249+
},
250+
"end": {
251+
"line": 1,
252+
"column": 6
253+
}
254+
}
255+
},
256+
"range": [
257+
0,
258+
6
259+
],
260+
"loc": {
261+
"start": {
262+
"line": 1,
263+
"column": 0
264+
},
265+
"end": {
266+
"line": 1,
267+
"column": 6
268+
}
269+
}
270+
},
271+
"range": [
272+
0,
273+
6
274+
],
275+
"loc": {
276+
"start": {
277+
"line": 1,
278+
"column": 0
279+
},
280+
"end": {
281+
"line": 1,
282+
"column": 6
283+
}
284+
}
214285
}
215-
}
286+
}

0 commit comments

Comments
 (0)