From 335a969946c838a9006f8cb468e23598fff72ce6 Mon Sep 17 00:00:00 2001 From: Esben Sparre Andreasen Date: Fri, 22 Mar 2019 09:45:14 +0100 Subject: [PATCH] JS: fix performance in ObjectDefinePropertyAsPropWrite::getRhs --- javascript/ql/src/semmle/javascript/dataflow/DataFlow.qll | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/javascript/ql/src/semmle/javascript/dataflow/DataFlow.qll b/javascript/ql/src/semmle/javascript/dataflow/DataFlow.qll index fc3c41fe9340..d95a963c4e7c 100644 --- a/javascript/ql/src/semmle/javascript/dataflow/DataFlow.qll +++ b/javascript/ql/src/semmle/javascript/dataflow/DataFlow.qll @@ -496,7 +496,11 @@ module DataFlow { override string getPropertyName() { result = odp.getPropertyName() } override Node getRhs() { - odp.getAPropertyAttribute().writes(_, "value", result) + // not using `CallToObjectDefineProperty::getAPropertyAttribute` for performance reasons + exists(ObjectLiteralNode propdesc | + propdesc.flowsTo(odp.getPropertyDescriptor()) and + propdesc.hasPropertyWrite("value", result) + ) } override ControlFlowNode getWriteNode() { result = odp.getAstNode() }