Mercurial > repos > tabletprog
diff compiler.js @ 25:4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 02 Apr 2012 22:28:48 -0700 |
parents | fe3533494ce9 |
children | 608eb70fe261 |
line wrap: on
line diff
--- a/compiler.js Tue Mar 27 00:39:32 2012 -0700 +++ b/compiler.js Mon Apr 02 22:28:48 2012 -0700 @@ -130,17 +130,6 @@ throw new Error("can't make val into object"); } -function setP(o, p, val) -{ - o[p] = val; - return o; -} - -function getP(o, p) -{ - return o[p]; -} - op.prototype.populateSymbols = function(symbols, isReceiver) { this.left.populateSymbols(symbols); this.right.populateSymbols(symbols); @@ -159,8 +148,13 @@ strlit.prototype.populateSymbols = function(symbols) { } +listlit.prototype.populateSymbols = function(symbols) { + each(this.val, function(i,el) { + el.populateSymbols(symbols); + }); +} + funcall.prototype.populateSymbols = function(symbols) { - if(this.name == 'q:') { console.log('populateSymbols', this); } if (this.name == 'foreign:') { if ((this.args[0] instanceof lambda) || (this.args[0] instanceof object) || (this.args[0] instanceof symbol)) { return; @@ -177,6 +171,10 @@ } } +funcall.prototype.populateSymbolsObject = function(symbols) { + this.populateSymbols(symbols.parent); +} + object.prototype.populateSymbols = function(symbols) { symbols = new osymbols(symbols); for (var i in this.messages) {