aboutsummaryrefslogtreecommitdiff
path: root/src/parser.js
diff options
context:
space:
mode:
authoralon@honor <none@none>2010-08-31 20:16:12 -0700
committeralon@honor <none@none>2010-08-31 20:16:12 -0700
commitda7a906536a26dca22190c870aaa96588dc92dec (patch)
tree2048af49a9bf9e730bab2852dcb0e2699d211c77 /src/parser.js
parent0fab1ac3a4c32aaf48a97c59820bd2fedab159d7 (diff)
optimize reintegrator
Diffstat (limited to 'src/parser.js')
-rw-r--r--src/parser.js17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/parser.js b/src/parser.js
index c28aeeeb..7ee4361b 100644
--- a/src/parser.js
+++ b/src/parser.js
@@ -581,24 +581,25 @@ function intertyper(data) {
// place back in parents
substrate.addZyme('Reintegrator', {
select: function(items) {
+ var ret = [];
for (var i = 0; i < items.length; i++) {
if (items[i].parentSlot && items[i].intertype) {
for (var j = 0; j < items.length; j++) {
if (items[j].lineNum == items[i].parentLineNum) {
- return [items[j], items[i]];
+ ret = ret.concat([items[j], items[i]]);
}
}
}
}
- return [];
+ return ret;
},
process: function(items) {
- var parent = items[0];
- var child = items[1];
- parent[child.parentSlot] = child;
- parent.__result__ = true;
- delete child.parentLineNum;
- return [parent];
+ return Zyme.prototype.processPairs(items, function(parent, child) {
+ parent[child.parentSlot] = child;
+ parent.__result__ = true;
+ delete child.parentLineNum;
+ return [parent];
+ });
}
});
// 'load'