Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a019312

Browse files
committed
improve printing of JS object literals
1 parent ab7542c commit a019312

1 file changed

Lines changed: 18 additions & 8 deletions

File tree

javascript/ql/src/semmle/javascript/PrintAst.qll

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -224,14 +224,24 @@ private module PrintJavaScript {
224224
*/
225225
private string repr(ASTNode a) {
226226
shouldPrint(a, _) and
227-
exists(DeclStmt decl | decl = a |
228-
result =
229-
getDeclarationKeyword(decl) + " " +
230-
strictconcat(string name, int i |
231-
name = decl.getDecl(i).getBindingPattern().getName()
232-
|
233-
name, ", " order by i
234-
) + " = ..."
227+
(
228+
exists(DeclStmt decl | decl = a |
229+
result =
230+
getDeclarationKeyword(decl) + " " +
231+
strictconcat(string name, int i |
232+
name = decl.getDecl(i).getBindingPattern().getName()
233+
|
234+
name, ", " order by i
235+
) + " = ..."
236+
)
237+
or
238+
exists(ObjectExpr obj | obj = a | result = "{" + obj.getProperty(0).getName() + ": ...}")
239+
or
240+
result = a.(Property).getName() + ": " + repr(a.(Property).getInit())
241+
or
242+
result = a.(Literal).getRawValue()
243+
or
244+
result = a.(Identifier).getName()
235245
)
236246
}
237247

0 commit comments

Comments
 (0)