Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: utils/comments.js

Issue 29350140: Issue 4353 - Remove non standard for each syntax (Closed)
Patch Set: Created Aug. 24, 2016, 11:08 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 /** 1 /**
2 * This processes comments. 2 * This processes comments.
3 */ 3 */
4 function associate_comments(filename, scopeObject) { 4 function associate_comments(filename, scopeObject) {
5 // Read the script and give us line stuff 5 // Read the script and give us line stuff
6 let file = read_file(filename).split(/\r\n|[\r\n]/); 6 let file = read_file(filename).split(/\r\n|[\r\n]/);
7 // make file 1-based to avoid off-by-one errors... 7 // make file 1-based to avoid off-by-one errors...
8 file.unshift(""); 8 file.unshift("");
9 9
10 // Now, get us a sorted list of all important AST locations 10 // Now, get us a sorted list of all important AST locations
11 let locations = [{loc: {line: 0, column: -1}}]; 11 let locations = [{loc: {line: 0, column: -1}}];
12 12
13 function add_func(func) { 13 function add_func(func) {
14 locations.push({loc: func.loc, obj: func, commentWanted: true}); 14 locations.push({loc: func.loc, obj: func, commentWanted: true});
15 // The following will get us to the last line of the function 15 // The following will get us to the last line of the function
16 if (func.body.kids.length == 0) 16 if (func.body.kids.length == 0)
17 return; 17 return;
18 let last = func.body.kids[func.body.kids.length - 1]; 18 let last = func.body.kids[func.body.kids.length - 1];
19 while (last.kids[last.kids.length - 1] && 19 while (last.kids[last.kids.length - 1] &&
20 last.kids[last.kids.length - 1].line > last.line) 20 last.kids[last.kids.length - 1].line > last.line)
21 last = last.kids[last.kids.length - 1]; 21 last = last.kids[last.kids.length - 1];
22 locations.push({loc: {line: last.line, column: last.column}}); 22 locations.push({loc: {line: last.line, column: last.column}});
23 } 23 }
24 for each (let v in scopeObject.variables) 24 for (let v of scopeObject.variables)
25 locations.push({loc: v.loc, obj: v, commentWanted: true}); 25 locations.push({loc: v.loc, obj: v, commentWanted: true});
26 for each (let v in scopeObject.constants) 26 for (let v of scopeObject.constants)
27 locations.push({loc: v.loc, obj: v, commentWanted: true}); 27 locations.push({loc: v.loc, obj: v, commentWanted: true});
28 for each (let v in scopeObject.functions) 28 for (let v of scopeObject.functions)
29 add_func(v); 29 add_func(v);
30 for each (let v in scopeObject.code) 30 for (let v of scopeObject.code)
31 locations.push({loc: {line: v.line, column: v.column}, obj: v}); 31 locations.push({loc: {line: v.line, column: v.column}, obj: v});
32 for each (let o in scopeObject.objects) { 32 for (let o of scopeObject.objects) {
33 locations.push({loc: o.loc, obj: o, commentWanted: true}); 33 locations.push({loc: o.loc, obj: o, commentWanted: true});
34 for each (let x in o.variables) 34 for (let x of o.variables)
35 locations.push({loc: x.loc, obj: x, commentWanted: true}); 35 locations.push({loc: x.loc, obj: x, commentWanted: true});
36 for each (let x in o.functions) 36 for (let x of o.functions)
37 add_func(x); 37 add_func(x);
38 for each (let x in o.getters) 38 for (let x of o.getters)
39 add_func(x); 39 add_func(x);
40 for each (let x in o.setters) 40 for (let x of o.setters)
41 add_func(x); 41 add_func(x);
42 } 42 }
43 for each (let o in scopeObject.classes) { 43 for (let o of scopeObject.classes) {
44 locations.push({loc: o.loc, obj: o, commentWanted: true}); 44 locations.push({loc: o.loc, obj: o, commentWanted: true});
45 for each (let x in o.variables) 45 for (let x of o.variables)
46 locations.push({loc: x.loc, obj: x, commentWanted: true}); 46 locations.push({loc: x.loc, obj: x, commentWanted: true});
47 for each (let x in o.functions) 47 for (let x of o.functions)
48 add_func(x); 48 add_func(x);
49 for each (let x in o.getters) 49 for (let x of o.getters)
50 add_func(x); 50 add_func(x);
51 for each (let x in o.setters) 51 for (let x of o.setters)
52 add_func(x); 52 add_func(x);
53 } 53 }
54 locations.sort(function (a, b) { 54 locations.sort(function (a, b) {
55 if (a.loc.line == b.loc.line) 55 if (a.loc.line == b.loc.line)
56 return a.loc.column - b.loc.column; 56 return a.loc.column - b.loc.column;
57 return a.loc.line - b.loc.line; 57 return a.loc.line - b.loc.line;
58 }); 58 });
59 59
60 // With that list done, let's find comments in the range. 60 // With that list done, let's find comments in the range.
61 for (let i = 1; i < locations.length; i++) { 61 for (let i = 1; i < locations.length; i++) {
(...skipping 15 matching lines...) Expand all
77 lines.push(file[end.line].substring(0, end.column).trim()); 77 lines.push(file[end.line].substring(0, end.column).trim());
78 78
79 let goop = lines.join("\n"); 79 let goop = lines.join("\n");
80 let match; 80 let match;
81 lines = []; 81 lines = [];
82 while ((match = comment_regex.exec(goop)) != null) { 82 while ((match = comment_regex.exec(goop)) != null) {
83 lines.push(match); 83 lines.push(match);
84 } 84 }
85 return lines.join("\n"); 85 return lines.join("\n");
86 } 86 }
OLDNEW
« scripts/decompile.js ('K') | « utils/cleanast.js ('k') | utils/dumpast.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld