Skip to content

Commit eabb291

Browse files
ma8matimss
authored andcommitted
Fix #568: loading the tabs module failed (#675)
* Replace legacy generator with ES2015 generator for almost places. * Replace non-standard Array comprehension with Array methods in muttator/content/mail.js. Several legacy generators still keep because they have been handled by legacy iterators: * iter() in common/content/base.js * callbacks of addPageInfoSection() in common/content/buffer.js * evaluateXPath() in common/content/util.js * range() in common/content/util.js * itervalues() in common/content/util.js * iteritems() in common/content/util.js
1 parent 1114a56 commit eabb291

File tree

17 files changed

+56
-56
lines changed

17 files changed

+56
-56
lines changed

common/content/base.js

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,22 @@ function array(obj) {
1616
return util.Array(obj);
1717
}
1818

19-
function allkeys(obj) {
19+
function* allkeys(obj) {
2020
for(; obj; obj = obj.__proto__)
2121
for (let prop of Object.getOwnPropertyNames(obj))
2222
yield prop;
2323
}
2424

25-
function keys(obj) {
25+
function* keys(obj) {
2626
for (let prop of Object.getOwnPropertyNames(obj))
2727
yield prop;
2828
}
2929

30-
function values(obj) {
31-
for (var k of Object.keys(obj))
30+
function* values(obj) {
31+
for (let k of Object.keys(obj))
3232
yield obj[k];
3333
}
3434

35-
function foreach(iter, fn, self) {
36-
for (let val in iter)
37-
fn.call(self, val);
38-
}
39-
4035
function dict(ary) {
4136
var obj = {};
4237
for (var i = 0; i < ary.length; i++) {
@@ -227,7 +222,7 @@ function update(target, ...sources) {
227222
if (!src)
228223
continue;
229224

230-
foreach(keys(src), function (k) {
225+
for (let k of keys(src)) {
231226
let desc = Object.getOwnPropertyDescriptor(src, k);
232227
Object.defineProperty(target, k, desc);
233228
if (("value" in desc) && callable(desc.value)) {
@@ -243,7 +238,7 @@ function update(target, ...sources) {
243238
} else
244239
v.superapply = v.supercall = function dummy() {};
245240
}
246-
});
241+
}
247242
}
248243
return target;
249244
}
@@ -457,8 +452,8 @@ const StructBase = Class("StructBase", {
457452
});
458453
// Add no-sideeffect array methods. Can't set new Array() as the prototype or
459454
// get length() won't work.
460-
for (let k in values(["concat", "every", "filter", "forEach", "indexOf", "join", "lastIndexOf",
461-
"map", "reduce", "reduceRight", "reverse", "slice", "some", "sort"]))
455+
for (let k of ["concat", "every", "filter", "forEach", "indexOf", "join", "lastIndexOf",
456+
"map", "reduce", "reduceRight", "reverse", "slice", "some", "sort"])
462457
StructBase.prototype[k] = Array.prototype[k];
463458

464459
// vim: set fdm=marker sw=4 ts=4 et:

common/content/bookmarks.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,7 @@ const Bookmarks = Module("bookmarks", {
471471
return node;
472472

473473
function getFolderFromNode (node, title) {
474-
for (let child in Bookmarks.iterateFolderChildren(node)) {
474+
for (let child of Bookmarks.iterateFolderChildren(node)) {
475475
if (child.title == title && child instanceof Ci.nsINavHistoryContainerResultNode) {
476476
node.containerOpen = false;
477477
return child;
@@ -480,7 +480,7 @@ const Bookmarks = Module("bookmarks", {
480480
return null;
481481
}
482482
},
483-
iterateFolderChildren: function (node, onlyFolder, onlyWritable) {
483+
iterateFolderChildren: function* (node, onlyFolder, onlyWritable) {
484484
if (!node.containerOpen)
485485
node.containerOpen = true;
486486

@@ -809,7 +809,7 @@ const Bookmarks = Module("bookmarks", {
809809
results.push(["TOOLBAR", "Bookmarks Toolbar"]);
810810
}
811811
if (folder) {
812-
for (let child in Bookmarks.iterateFolderChildren(folder, onlyFolder, onlyWritable)) {
812+
for (let child of Bookmarks.iterateFolderChildren(folder, onlyFolder, onlyWritable)) {
813813
if (PlacesUtils.nodeIsSeparator(child))
814814
continue;
815815

common/content/buffer.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ const Buffer = Module("buffer", {
562562
synonyms.unshift(rel);
563563

564564
function followFrame(frame) {
565-
function iter(elems) {
565+
function* iter(elems) {
566566
for (let i = 0; i < elems.length; i++)
567567
for (let rel of synonyms)
568568
if (elems[i].rel.toLowerCase() == rel || elems[i].rev.toLowerCase() == rel)
@@ -571,14 +571,14 @@ const Buffer = Module("buffer", {
571571

572572
// <link>s have higher priority than normal <a> hrefs
573573
let elems = frame.document.getElementsByTagName("link");
574-
for (let elem in iter(elems)) {
574+
for (let elem of iter(elems)) {
575575
liberator.open(elem.href);
576576
return true;
577577
}
578578

579579
// no links? ok, look for hrefs
580580
elems = frame.document.getElementsByTagName("a");
581-
for (let elem in iter(elems)) {
581+
for (let elem of iter(elems)) {
582582
buffer.followLink(elem, liberator.CURRENT_TAB);
583583
return true;
584584
}
@@ -1408,7 +1408,7 @@ const Buffer = Module("buffer", {
14081408
};
14091409
}
14101410

1411-
function generateTabs (tabs) {
1411+
function* generateTabs (tabs) {
14121412
for (let i = 0, tab; tab = tabs[i]; i++) {
14131413
let indicator = getIndicator(tab) + (tab.pinned ? "@" : " "),
14141414
label = tab.label || UNTITLED_LABEL,
@@ -1425,7 +1425,7 @@ const Buffer = Module("buffer", {
14251425
yield item;
14261426
}
14271427
}
1428-
function generateGroupList (group, groupName) {
1428+
function* generateGroupList (group, groupName) {
14291429
let hasName = !!groupName;
14301430
for (let [i, tabItem] in Iterator(group.getChildren())) {
14311431
let index = (tabItem.tab._tPos + 1) + ": ",
@@ -1524,7 +1524,7 @@ const Buffer = Module("buffer", {
15241524
"Repeat the last key event",
15251525
function (count) {
15261526
if (mappings.repeat) {
1527-
for (let i in util.interruptibleRange(0, Math.max(count, 1), 100))
1527+
for (let i of util.interruptibleRange(0, Math.max(count, 1), 100))
15281528
mappings.repeat();
15291529
}
15301530
},

common/content/commandline.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1842,7 +1842,7 @@ const ItemList = Class("ItemList", {
18421842
nodes.message.style.display = context.message ? "block" : "none";
18431843
nodes.waiting.style.display = waiting ? "block" : "none";
18441844

1845-
for (let [i, row] in Iterator(context.getRows(start, end, this._doc)))
1845+
for (let [i, row] of context.getRows(start, end, this._doc))
18461846
nodes[i] = row;
18471847
for (let [i, row] in util.Array.iteritems(nodes)) {
18481848
if (!row)

common/content/commands.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -945,7 +945,7 @@ const Commands = Module("commands", {
945945
["@:"], "Repeat the last Ex command",
946946
function (count) {
947947
if (commands.repeat) {
948-
for (let i in util.interruptibleRange(0, Math.max(count, 1), 100))
948+
for (let i of util.interruptibleRange(0, Math.max(count, 1), 100))
949949
liberator.execute(commands.repeat);
950950
}
951951
else

common/content/completion.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ const CompletionContext = Class("CompletionContext", {
495495
return util.map(util.range(start, end, step), function (i) items[i]);
496496
},
497497

498-
getRows: function getRows(start, end, doc) {
498+
getRows: function* getRows(start, end, doc) {
499499
let self = this;
500500
let items = this.items;
501501
let cache = this.cache.rows;

common/content/events.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ const Events = Module("events", {
8282
for (let dir of dirs) {
8383
liberator.log("Sourcing macros directory: " + dir.path);
8484

85-
for (let file in dir.iterDirectory()) {
85+
for (let file of dir.iterDirectory()) {
8686
if (file.exists() && !file.isDirectory() && file.isReadable() &&
8787
/^[\w_-]+(\.vimp)?$/i.test(file.leafName)) {
8888
let name = file.leafName.replace(/\.vimp$/i, "");
@@ -134,7 +134,7 @@ const Events = Module("events", {
134134

135135
destroy: function () {
136136
liberator.log("Removing all event listeners");
137-
for (let args in values(this.sessionListeners))
137+
for (let args of values(this.sessionListeners))
138138
args[0].removeEventListener.apply(args[0], args.slice(1));
139139
},
140140

common/content/hints.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@ const Hints = Module("hints", {
446446
continue;
447447

448448
inner:
449-
for (let i in (util.interruptibleRange(start, end + 1, 500))) {
449+
for (let i of (util.interruptibleRange(start, end + 1, 500))) {
450450
let hint = this._pageHints[i];
451451

452452
let valid = validHint(hint.text);

common/content/io.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ const File = Class("File", {
6969
/**
7070
* Iterates over the objects in this directory.
7171
*/
72-
iterDirectory: function () {
72+
iterDirectory: function* () {
7373
if (!this.isDirectory())
7474
throw Error("Not a directory");
7575
let entries = this.directoryEntries;

common/content/javascript.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@ const JavaScript = Module("javascript", {
3232
}
3333
},
3434

35-
iter: function iter(obj, toplevel) {
35+
iter: function* iter(obj, toplevel) {
3636
toplevel = !!toplevel;
3737
let seen = {};
3838

3939
try {
4040
let orig = obj;
4141

42-
function iterObj(obj, toplevel) {
42+
function* iterObj(obj, toplevel) {
4343
if (Cu.isXrayWrapper(obj)) {
4444
if (toplevel) {
4545
yield {get wrappedJSObject() 0};
@@ -62,7 +62,7 @@ const JavaScript = Module("javascript", {
6262
yield o;
6363
}
6464

65-
for (let obj in iterObj(orig, toplevel)) {
65+
for (let obj of iterObj(orig, toplevel)) {
6666
try {
6767
for (let k of Object.getOwnPropertyNames(obj)) {
6868
let name = "|" + k;

0 commit comments

Comments
 (0)