From 1bf51a8641e7ef625dc21592e229c500baba3943 Mon Sep 17 00:00:00 2001 From: Reyad Attiyat Date: Wed, 21 Dec 2016 21:44:31 -0600 Subject: [PATCH 1/2] Fix how static functions get converted In typescript 2.1 the ModifierFlag is used, instead of NodeFlags, to mark static methods in the AST. --- lib/ast-converter.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/ast-converter.js b/lib/ast-converter.js index f0ded24..50c24c2 100644 --- a/lib/ast-converter.js +++ b/lib/ast-converter.js @@ -1037,7 +1037,7 @@ module.exports = function(ast, extra) { key: convertChild(node.name), value: convertChild(node.initializer), computed: (node.name.kind === SyntaxKind.ComputedPropertyName), - static: Boolean(node.flags & ts.NodeFlags.Static), + static: Boolean(ts.getModifierFlags(node) & ts.ModifierFlags.Static), accessibility: getTSNodeAccessibility(node), decorators: (node.decorators) ? node.decorators.map(function(d) { return convertChild(d.expression); @@ -1119,7 +1119,7 @@ module.exports = function(ast, extra) { key: convertChild(node.name), value: method, computed: isMethodNameComputed, - static: Boolean(node.flags & ts.NodeFlags.Static), + static: Boolean(ts.getModifierFlags(node) & ts.ModifierFlags.Static), kind: "method", accessibility: getTSNodeAccessibility(node), decorators: (node.decorators) ? node.decorators.map(function(d) { @@ -1141,7 +1141,7 @@ module.exports = function(ast, extra) { // TypeScript uses this even for static methods named "constructor" case SyntaxKind.Constructor: - var constructorIsStatic = Boolean(node.flags & ts.NodeFlags.Static), + var constructorIsStatic = Boolean(ts.getModifierFlags(node) & ts.ModifierFlags.Static), firstConstructorToken = constructorIsStatic ? ts.findNextToken(node.getFirstToken(), ast) : node.getFirstToken(), constructorOffset = 11, constructorStartOffset = constructorOffset + firstConstructorToken.getStart() - node.getFirstToken().getStart(), From 2f78b96fb3d6320f8321927f5d56697804f81f60 Mon Sep 17 00:00:00 2001 From: Reyad Attiyat Date: Wed, 21 Dec 2016 22:13:42 -0600 Subject: [PATCH 2/2] Fix spread element converison In Typescript 2.1 the SyntaxKind enum uses SpreadElement instead of SpreadElementExpression --- lib/ast-converter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ast-converter.js b/lib/ast-converter.js index 50c24c2..15283e1 100644 --- a/lib/ast-converter.js +++ b/lib/ast-converter.js @@ -1387,7 +1387,7 @@ module.exports = function(ast, extra) { // Patterns // Note: TypeScript uses this for both spread and rest expressions - case SyntaxKind.SpreadElementExpression: + case SyntaxKind.SpreadElement: assign(result, { type: "SpreadElement", argument: convertChild(node.expression)