Merge pull request #2589 from esbena/js/ignore-duplicate-params-for-empty-functions

Approved by erik-krogh
This commit is contained in:
semmle-qlci
2020-01-09 11:58:04 +00:00
committed by GitHub
5 changed files with 14 additions and 1 deletions

View File

@@ -36,6 +36,9 @@ where
i < j and
j = max(int k | parmBinds(f, k, _, name) | k) and
not isDummy(p) and
// ignore functions without bodies or empty bodies
f.hasBody() and
exists(f.getABodyStmt()) and
// duplicate parameters in strict mode functions are flagged by the 'Syntax error' rule
not f.isStrict()
select p, "This parameter has the same name as $@ of the same function.", q, "another parameter"

View File

@@ -2,7 +2,7 @@ function f(
x,
x, // NOT OK
\u0078 // NOT OK
) {}
) { return; }
this.addPropertyListener(prop.name, function(_, _, _, a) {
proxy.delegate = a.dao;
@@ -12,3 +12,10 @@ this.addPropertyListener(prop.name, function(_, _, _, a) {
function f(x, y, x) {
'use strict';
}
function f(
x,
x // OK: empty function
) { }
(a, a) => a + a; // OK: for strict mode functions, duplicate parameter names are a syntax error

View File

@@ -1 +1,2 @@
| arrows.js:1:5:1:5 | Error: Argument name clash | Error: Argument name clash |
| tst.js:2:12:2:12 | Error: Unterminated string constant | Error: Unterminated string constant |

View File

@@ -0,0 +1 @@
(a, a) => a + a;