Mercurial > repos > tabletprog
changeset 289:befaefdfcd8a
Make sure that true and false modules are initialized before anything else and that the list module is initialized before any modules besides true and false
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 22 Jul 2014 23:32:49 -0700 |
parents | a4c2b31acba7 |
children | 38ca63e0a62e |
files | cbackend.js |
diffstat | 1 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/cbackend.js Tue Jul 22 21:31:41 2014 -0700 +++ b/cbackend.js Tue Jul 22 23:32:49 2014 -0700 @@ -1121,13 +1121,16 @@ function processUsedToplevel(toplevel) { - var alwaysused = ['true', 'false', 'list']; + var alwaysused = ['list', 'true', 'false']; var ret = ''; var modulenum = 0; var visited = {}; + var newused = []; for (var i in alwaysused) { - toplevel.used[alwaysused[i]] = true; + delete toplevel.used[alwaysused[i]]; + visited[alwaysused[i]] = true; } + var addedAlways = false; var newused = Object.keys(toplevel.used); var allused = newused; while (newused.length) { @@ -1145,6 +1148,14 @@ allused.push(symbol); } } + if (!newused.length && !addedAlways) { + addedAlways = true; + for (var i in alwaysused) { + toplevel.used[alwaysused[i]] = true; + newused.push(alwaysused[i]); + allused.push(alwaysused[i]); + } + } } for (var i = allused.length-1; i >= 0; i--) {