Skip to content

Commit b6106f9

Browse files
committed
keep the ResolvedPromiseDefinition class as a subclass of PromiseCreationCall
1 parent 9bd6363 commit b6106f9

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

javascript/ql/src/semmle/javascript/Promises.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ module Bluebird {
2525
/**
2626
* A resolved promise created by the bluebird `Promise.resolve` function.
2727
*/
28-
class ResolvedBluebidPromiseDefinition extends PromiseCreationCall {
28+
class ResolvedBluebidPromiseDefinition extends ResolvedPromiseDefinition {
2929
ResolvedBluebidPromiseDefinition() { this = bluebird().getAMemberCall("resolve") }
3030

3131
override DataFlow::Node getValue() { result = getArgument(0) }
@@ -75,7 +75,7 @@ private module ClosurePromise {
7575
/**
7676
* A promise created by a call `goog.Promise.resolve(value)`.
7777
*/
78-
private class ResolvedClosurePromiseDefinition extends PromiseCreationCall {
78+
private class ResolvedClosurePromiseDefinition extends ResolvedPromiseDefinition {
7979
ResolvedClosurePromiseDefinition() {
8080
this = Closure::moduleImport("goog.Promise.resolve").getACall()
8181
}

javascript/ql/src/semmle/javascript/StandardLibrary.qll

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ private class ES2015PromiseDefinition extends PromiseDefinition, DataFlow::NewNo
152152
}
153153

154154
/**
155-
* A promise that is resolved with the given value.
155+
* A promise that is created and resolved with one or more value.
156156
*/
157157
abstract class PromiseCreationCall extends DataFlow::CallNode {
158158
/**
@@ -161,10 +161,15 @@ abstract class PromiseCreationCall extends DataFlow::CallNode {
161161
abstract DataFlow::Node getValue();
162162
}
163163

164+
/**
165+
* A promise that is created using a `.resolve()` call.
166+
*/
167+
abstract class ResolvedPromiseDefinition extends PromiseCreationCall {}
168+
164169
/**
165170
* A resolved promise created by the standard ECMAScript 2015 `Promise.resolve` function.
166171
*/
167-
class ResolvedES2015PromiseDefinition extends PromiseCreationCall {
172+
class ResolvedES2015PromiseDefinition extends ResolvedPromiseDefinition {
168173
ResolvedES2015PromiseDefinition() {
169174
this = DataFlow::globalVarRef("Promise").getAMemberCall("resolve")
170175
}

0 commit comments

Comments
 (0)