瀏覽代碼

New rule: jQuery calls on empty objects

Gaël Métais 10 年之前
父節點
當前提交
cb46274288
共有 3 個文件被更改,包括 17 次插入2 次删除
  1. 5 0
      front/src/views/rule.html
  2. 9 0
      lib/metadata/policies.js
  3. 3 2
      lib/metadata/scoreProfileGeneric.json

+ 5 - 0
front/src/views/rule.html

@@ -204,6 +204,11 @@
         Please open the <a href="/result/{{runId}}/timeline#filter=queryWithoutResults">JS timeline, filtered by "Queries without results"</a>
         Please open the <a href="/result/{{runId}}/timeline#filter=queryWithoutResults">JS timeline, filtered by "Queries without results"</a>
     </div>
     </div>
 
 
+    <div ng-if="policyName === 'jQueryCallsOnEmptyObject'">
+        <h3>{{rule.value}} offenders</h3>
+        Please open the <a href="/result/{{runId}}/timeline#filter=jQueryCallOnEmptyObject">JS timeline, filtered by "jQuery calls on empty object"</a>
+    </div>
+
     <div ng-if="policyName === 'jQueryNotDelegatedEvents'">
     <div ng-if="policyName === 'jQueryNotDelegatedEvents'">
         <h3>{{rule.value}} offenders</h3>
         <h3>{{rule.value}} offenders</h3>
         Please open the <a href="/result/{{runId}}/timeline#filter=eventNotDelegated">JS timeline, filtered by "Events not delegated"</a>
         Please open the <a href="/result/{{runId}}/timeline#filter=eventNotDelegated">JS timeline, filtered by "Events not delegated"</a>

+ 9 - 0
lib/metadata/policies.js

@@ -351,6 +351,15 @@ var policies = {
         "isAbnormalThreshold": 0,
         "isAbnormalThreshold": 0,
         "hasOffenders": true
         "hasOffenders": true
     },
     },
+    "jQueryCallsOnEmptyObject": {
+        "tool": "jsExecutionTransformer",
+        "label": "Calls on empty objects",
+        "message": "<p>This metric counts the number of jQuery functions called on an empty jQuery object. The call was useless.</p><p>This can be helpful to detect dead or unused code.</p>",
+        "isOkThreshold": 1,
+        "isBadThreshold": 100,
+        "isAbnormalThreshold": 180,
+        "hasOffenders": false
+    },
     "jQueryNotDelegatedEvents": {
     "jQueryNotDelegatedEvents": {
         "tool": "jsExecutionTransformer",
         "tool": "jsExecutionTransformer",
         "label": "Events not delegated",
         "label": "Events not delegated",

+ 3 - 2
lib/metadata/scoreProfileGeneric.json

@@ -36,9 +36,10 @@
         "jQuery": {
         "jQuery": {
             "label": "jQuery",
             "label": "jQuery",
             "policies": {
             "policies": {
-                "jQueryVersion": 1,
-                "jQueryVersionsLoaded": 1,
+                "jQueryVersion": 2,
+                "jQueryVersionsLoaded": 2,
                 "jQueryFunctionsUsed": 1,
                 "jQueryFunctionsUsed": 1,
+                "jQueryCallsOnEmptyObject": 1,
                 "jQueryNotDelegatedEvents": 1
                 "jQueryNotDelegatedEvents": 1
             }
             }
         },
         },