Mercurial > repos > tabletprog
diff jsbackend.js @ 31:668f533e5284
Add initial version of C backend
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 07 Jul 2012 16:48:36 -0700 |
parents | 608eb70fe261 |
children | 926b65fe92b4 |
line wrap: on
line diff
--- a/jsbackend.js Thu Apr 19 19:20:21 2012 -0700 +++ b/jsbackend.js Sat Jul 07 16:48:36 2012 -0700 @@ -1,4 +1,5 @@ var mainModule; +var modules = {}; function toobj(val) { @@ -78,6 +79,9 @@ for (var i = 0; i < funinfo.depth; ++i) { pre += '.parent'; } + } else if (info.type == 'toplevel') { + pre = 'modules.'; + modules[name] = false; } return pre + escapeJSName(name); } @@ -209,7 +213,7 @@ } object.prototype.toJSModule = function() { - this.populateSymbols(null); + this.populateSymbols(toplevel); return '(function () {\n\tvar module = ' + indent(this.toJS()) + ';\n\treturn module;\n})' } @@ -236,7 +240,7 @@ return 'function (' + args.join(', ') + ') {\n\t' + (this.symbols.needsSelfVar ? 'var self = this;\n\t' : '') + exprs.join(';\n\t') + '\n}' }; lambda.prototype.toJSModule = function() { - this.populateSymbols(null); + this.populateSymbols(toplevel); return this.toJS(); }