Changeset 17619 in webkit
- Timestamp:
- Nov 6, 2006 9:08:16 AM (18 years ago)
- Location:
- trunk/WebKitTools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKitTools/ChangeLog
r17617 r17619 1 2006-11-05 Timothy Hatcher <timothy@apple.com> 2 3 Reviewed by Maciej. 4 5 Bug 11525: [Drosera] function menu doesn't understand object.method = function() {} syntax 6 http://bugs.webkit.org/show_bug.cgi?id=11525 7 8 * Drosera/debugger.js: imporved the function name code 9 1 10 2006-11-06 Alexey Proskuryakov <ap@webkit.org> 2 11 -
trunk/WebKitTools/Drosera/debugger.js
r17602 r17619 801 801 if (keywords[keyword]) { 802 802 var functionName = ""; 803 var functionIsAnonymous = false; 803 804 if (keyword == "function") { 804 805 var functionKeywordOffset = 8; 805 var functionNameChar = ""; 806 807 if (code.charAt(i + functionKeywordOffset) == " ") { 808 functionNameChar = code.charAt(i + functionKeywordOffset + 1); 809 functionKeywordOffset++; 810 } else 811 functionNameChar = code.charAt(i + functionKeywordOffset); 812 813 if (functionNameChar == "(") { 806 for (var j = i + functionKeywordOffset; j < code.length; j++) { 807 cj = code.charAt(j); 808 if (cj == " ") 809 continue; 810 if (cj == "(") 811 break; 812 functionName += cj; 813 } 814 815 if (!functionName.length) { 816 functionIsAnonymous = true; 817 var functionAssignmentFound = false; 818 var functionNameStart = -1; 819 var functionNameEnd = -1; 820 821 for (var j = i - 1; j >= 0; j--) { 822 cj = code.charAt(j); 823 if (cj == ":" || cj == "=") { 824 functionAssignmentFound = true; 825 continue; 826 } 827 828 var curCharIsSpace = (cj == " " || cj == "\t" || cj == "\n"); 829 if (functionAssignmentFound && functionNameEnd == -1 && !curCharIsSpace) { 830 functionNameEnd = j + 1; 831 } else if (!functionAssignmentFound && !curCharIsSpace) { 832 break; 833 } else if (functionNameEnd != -1 && curCharIsSpace) { 834 functionNameStart = j; 835 break; 836 } 837 } 838 839 if (functionNameStart != -1 && functionNameEnd != -1) 840 functionName = code.substring(functionNameStart, functionNameEnd); 841 } 842 843 if (!functionName.length) 814 844 functionName = "function"; 815 file.functionNames.push(functionName); 816 } else { 817 while (functionNameChar != "(") { 818 functionName += functionNameChar; 819 functionKeywordOffset++; 820 functionNameChar = code.charAt(i + functionKeywordOffset); 821 if ((i + functionKeywordOffset) >= code.length || functionNameChar == " " || functionNameChar == "\n") break; 822 } 823 } 845 846 file.functionNames.push(functionName); 824 847 } 825 848 826 849 var fileIndex = filesLookup[file.url]; 827 850 828 if ( functionName== "function")851 if (keyword == "function") 829 852 result += "<span class=\"keyword\"><a name=\"function-" + fileIndex + "-" + file.functionNames.length + "\" id=\"" + fileIndex + "-" + file.functionNames.length + "\">" + keyword + "</a></span>"; 830 853 else 831 854 result += "<span class=\"keyword\">" + keyword + "</span>"; 832 833 if (functionName.length > 0 && functionName != "function") { 834 file.functionNames.push(functionName); 855 856 if (functionName.length && !functionIsAnonymous) { 835 857 result += " <a name=\"function-" + fileIndex + "-" + file.functionNames.length + "\" id=\"" + fileIndex + "-" + file.functionNames.length + "\">" + functionName + "</a>"; 836 858 i += keyword.length + functionName.length; 837 859 } else 838 860 i += keyword.length - 1; 839 861 840 862 continue; 841 863 }
Note: See TracChangeset
for help on using the changeset viewer.