Skip to content

Commit f632379

Browse files
committed
JS: whitelist accessors in DeadStoreOfProperty
1 parent 04a6692 commit f632379

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

javascript/ql/src/Declarations/DeadStoreOfProperty.ql

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,9 @@ where
154154
or
155155
// exclude result from js/overwritten-property
156156
assign2.getBase() instanceof DataFlow::ObjectLiteralNode
157+
or
158+
// exclude result from accessor declarations
159+
assign1.getWriteNode() instanceof AccessorMethodDeclaration
157160
)
158161
select assign1.getWriteNode(),
159162
"This write to property '" + name + "' is useless, since $@ always overrides it.",

javascript/ql/test/query-tests/Declarations/DeadStoreOfProperty/DeadStoreOfProperty.expected

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
| accessors.js:2:3:2:21 | static get foo() {} | This write to property 'foo' is useless, since $@ always overrides it. | accessors.js:3:3:3:22 | static set foo(v) {} | another property write |
21
| fieldInit.ts:10:3:10:8 | f = 4; | This write to property 'f' is useless, since $@ always overrides it. | fieldInit.ts:13:5:13:14 | this.f = 5 | another property write |
32
| real-world-examples.js:5:4:5:11 | o.p = 42 | This write to property 'p' is useless, since $@ always overrides it. | real-world-examples.js:10:2:10:9 | o.p = 42 | another property write |
43
| real-world-examples.js:15:9:15:18 | o.p1 += 42 | This write to property 'p1' is useless, since $@ always overrides it. | real-world-examples.js:15:2:15:18 | o.p1 = o.p1 += 42 | another property write |

0 commit comments

Comments
 (0)