diff --git a/javascript/extractor/src/com/semmle/js/parser/TypeScriptASTConverter.java b/javascript/extractor/src/com/semmle/js/parser/TypeScriptASTConverter.java index c462686ea90..557bcc04272 100644 --- a/javascript/extractor/src/com/semmle/js/parser/TypeScriptASTConverter.java +++ b/javascript/extractor/src/com/semmle/js/parser/TypeScriptASTConverter.java @@ -1612,7 +1612,7 @@ public class TypeScriptASTConverter { if (hasChild(element, "dotDotDotToken")) { propVal = new RestElement(eltLoc, propKey); } else if (hasChild(element, "initializer")) { - propVal = new AssignmentPattern(eltLoc, "=", propKey, convertChild(element, "initializer")); + propVal = new AssignmentPattern(eltLoc, "=", convertChild(element, "name"), convertChild(element, "initializer")); } else { propVal = convertChild(element, "name"); } diff --git a/javascript/ql/test/library-tests/TypeScript/BindingPattern/VarDecl.expected b/javascript/ql/test/library-tests/TypeScript/BindingPattern/VarDecl.expected new file mode 100644 index 00000000000..aead5092430 --- /dev/null +++ b/javascript/ql/test/library-tests/TypeScript/BindingPattern/VarDecl.expected @@ -0,0 +1,3 @@ +| tst.tsx:1:10:1:10 | f | +| tst.tsx:1:12:1:12 | o | +| tst.tsx:2:14:2:14 | v | diff --git a/javascript/ql/test/library-tests/TypeScript/BindingPattern/VarDecl.ql b/javascript/ql/test/library-tests/TypeScript/BindingPattern/VarDecl.ql new file mode 100644 index 00000000000..7039e6fa812 --- /dev/null +++ b/javascript/ql/test/library-tests/TypeScript/BindingPattern/VarDecl.ql @@ -0,0 +1,4 @@ +import javascript + +from VarDecl decl +select decl diff --git a/javascript/ql/test/library-tests/TypeScript/BindingPattern/tst.tsx b/javascript/ql/test/library-tests/TypeScript/BindingPattern/tst.tsx new file mode 100644 index 00000000000..db332181280 --- /dev/null +++ b/javascript/ql/test/library-tests/TypeScript/BindingPattern/tst.tsx @@ -0,0 +1,4 @@ +function f(o) { + const { p: v = [] } = o; + return v; +}