Commit 198a87f
Optimize UI5BindingPath.getNode() and constructPathStringInner performance
- Extract getNode() disjuncts 1-1 and 1-2 into pragma[nomagic] helper
predicates (getHardcodedJsonModelNode, getJsonFileModelNode) to prevent
cross-product explosion on large codebases. This matches the existing
pattern used for disjuncts 1-3 and 2.
- Add pragma[nomagic] to both constructPathStringInner recursive predicates
to prevent inlining into calling contexts.
Addresses the critical UI5Xss.ql ~240x performance regression on large
databases where getNode() accounted for 98.4% of evaluation time.
Agent-Logs-Url: https://github.com/advanced-security/codeql-sap-js/sessions/b8d4d32d-c84b-4174-bc1e-f00aa8b7ede4
Co-authored-by: data-douser <70299490+data-douser@users.noreply.github.com>1 parent 010c016 commit 198a87f
File tree
2 files changed
+40
-15
lines changed- javascript/frameworks/ui5/lib/advanced_security/javascript/frameworks/ui5
2 files changed
+40
-15
lines changedLines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1090 | 1090 | | |
1091 | 1091 | | |
1092 | 1092 | | |
| 1093 | + | |
1093 | 1094 | | |
1094 | 1095 | | |
1095 | 1096 | | |
| |||
1117 | 1118 | | |
1118 | 1119 | | |
1119 | 1120 | | |
| 1121 | + | |
1120 | 1122 | | |
1121 | 1123 | | |
1122 | 1124 | | |
| |||
Lines changed: 38 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
| 150 | + | |
157 | 151 | | |
158 | 152 | | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
| 153 | + | |
167 | 154 | | |
168 | 155 | | |
169 | 156 | | |
| |||
198 | 185 | | |
199 | 186 | | |
200 | 187 | | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
201 | 224 | | |
202 | 225 | | |
203 | 226 | | |
| |||
0 commit comments