From 92c0c6912ae034e28fc3b633ef513d50d5805a27 Mon Sep 17 00:00:00 2001 From: Danny Arnold Date: Thu, 4 May 2017 20:25:47 +0200 Subject: [PATCH] Fix: add `instanceof` to ast-converter (fixes #252) --- lib/ast-converter.js | 1 + tests/fixtures/basics/instanceof.result.js | 148 +++++++++++++++++++++ tests/fixtures/basics/instanceof.src.js | 1 + 3 files changed, 150 insertions(+) create mode 100644 tests/fixtures/basics/instanceof.result.js create mode 100644 tests/fixtures/basics/instanceof.src.js diff --git a/lib/ast-converter.js b/lib/ast-converter.js index 929fbeb..fb9f114 100644 --- a/lib/ast-converter.js +++ b/lib/ast-converter.js @@ -59,6 +59,7 @@ TOKEN_TO_TEXT[SyntaxKind.GreaterThanEqualsToken] = ">="; TOKEN_TO_TEXT[SyntaxKind.EqualsEqualsToken] = "=="; TOKEN_TO_TEXT[SyntaxKind.ExclamationEqualsToken] = "!="; TOKEN_TO_TEXT[SyntaxKind.EqualsEqualsEqualsToken] = "==="; +TOKEN_TO_TEXT[SyntaxKind.InstanceOfKeyword] = "instanceof"; TOKEN_TO_TEXT[SyntaxKind.ExclamationEqualsEqualsToken] = "!=="; TOKEN_TO_TEXT[SyntaxKind.EqualsGreaterThanToken] = "=>"; TOKEN_TO_TEXT[SyntaxKind.PlusToken] = "+"; diff --git a/tests/fixtures/basics/instanceof.result.js b/tests/fixtures/basics/instanceof.result.js new file mode 100644 index 0000000..c68fecd --- /dev/null +++ b/tests/fixtures/basics/instanceof.result.js @@ -0,0 +1,148 @@ +module.exports = { + "type": "Program", + "range": [ + 0, + 17 + ], + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "range": [ + 0, + 17 + ], + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "BinaryExpression", + "range": [ + 0, + 17 + ], + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "left": { + "type": "Literal", + "range": [ + 0, + 2 + ], + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "value": "", + "raw": "''" + }, + "operator": "instanceof", + "right": { + "type": "Identifier", + "range": [ + 14, + 17 + ], + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "Set" + } + } + } + ], + "sourceType": "script", + "tokens": [ + { + "type": "String", + "value": "''", + "range": [ + 0, + 2 + ], + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + } + }, + { + "type": "Keyword", + "value": "instanceof", + "range": [ + 3, + 13 + ], + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 13 + } + } + }, + { + "type": "Identifier", + "value": "Set", + "range": [ + 14, + 17 + ], + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 17 + } + } + } + ] +}; diff --git a/tests/fixtures/basics/instanceof.src.js b/tests/fixtures/basics/instanceof.src.js new file mode 100644 index 0000000..909f769 --- /dev/null +++ b/tests/fixtures/basics/instanceof.src.js @@ -0,0 +1 @@ +'' instanceof Set \ No newline at end of file