Author: Denys Petrov
Date: 2020-05-27T09:04:30+03:00
New Revision: 6bbaa62d26b6061c93eb62c82048c14014ab7bd7

URL: 
https://github.com/llvm/llvm-project/commit/6bbaa62d26b6061c93eb62c82048c14014ab7bd7
DIFF: 
https://github.com/llvm/llvm-project/commit/6bbaa62d26b6061c93eb62c82048c14014ab7bd7.diff

LOG: [analyzer] Add support for IE of keyboard and mouse navigation in HTML 
report

IE throws errors while using key and mouse navigation through the error path 
tips.
querySelectorAll method returns NodeList. NodeList belongs to browser API. IE 
doesn't have forEach among NodeList's methods. At the same time Array is a 
JavaScript object and can be used instead. The fix is in the converting 
NodeList into Array and keeps using forEach method as before.

Checked in IE11, Chrome and Opera.

Differential Revision: https://reviews.llvm.org/D80444

Added: 
    

Modified: 
    clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp 
b/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
index 184fdcfb3d4b..bc7c41d039c4 100644
--- a/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
+++ b/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
@@ -1070,8 +1070,13 @@ StringRef 
HTMLDiagnostics::generateKeyboardNavigationJavascript() {
 <script type='text/javascript'>
 var digitMatcher = new RegExp("[0-9]+");
 
+var querySelectorAllArray = function(selector) {
+  return Array.prototype.slice.call(
+    document.querySelectorAll(selector));
+}
+
 document.addEventListener("DOMContentLoaded", function() {
-    document.querySelectorAll(".PathNav > a").forEach(
+    querySelectorAllArray(".PathNav > a").forEach(
         function(currentValue, currentIndex) {
             var hrefValue = currentValue.getAttribute("href");
             currentValue.onclick = function() {
@@ -1091,7 +1096,7 @@ var findNum = function() {
 };
 
 var scrollTo = function(el) {
-    document.querySelectorAll(".selected").forEach(function(s) {
+    querySelectorAllArray(".selected").forEach(function(s) {
         s.classList.remove("selected");
     });
     el.classList.add("selected");


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to