Skip to content

Commit 054558d

Browse files
committed
JS: Include content properties in type-tracker properties
Reminder: we have two PropertyName classes because the one in Contents.qll can't depend on DataFlow::Node.
1 parent 8bca664 commit 054558d

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

javascript/ql/lib/semmle/javascript/dataflow/internal/StepSummary.qll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import javascript
22
private import semmle.javascript.dataflow.TypeTracking
33
private import semmle.javascript.internal.CachedStages
4+
private import semmle.javascript.dataflow.internal.Contents as Contents
45
private import sharedlib.SummaryTypeTracker as SummaryTypeTracker
56
private import FlowSteps
67

@@ -30,6 +31,8 @@ private module Cached {
3031
SharedTypeTrackingStep::loadStoreStep(_, _, _, this)
3132
or
3233
this = DataFlow::PseudoProperties::arrayLikeElement()
34+
or
35+
this instanceof Contents::Private::PropertyName
3336
}
3437
}
3538

javascript/ql/test/library-tests/TypeTracking2/summaries.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ function m5() {
4848
// Store and read to a property that isn't mentioned anywhere in the source code.
4949
const store = mkSummary("Argument[0]", "ReturnValue.Member[propOnlyMentionedInSummary]");
5050
const read = mkSummary("Argument[0].Member[propOnlyMentionedInSummary]", "ReturnValue");
51-
sink(read(store(source("m5.1")))); // $ MISSING: track=m5.1
51+
sink(read(store(source("m5.1")))); // $ track=m5.1
5252
sink(read(source("m5.1")));
5353
sink(store(source("m5.1")));
5454
sink(store(read(source("m5.1"))));

0 commit comments

Comments
 (0)