Mercurial > repos > tabletprog
comparison compiler.js @ 201:d2e0664ba73e
Don't allow assignments to module variables
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 28 Aug 2013 01:05:14 -0700 |
parents | 228df5004ab5 |
children | 60eff5f81d9a |
comparison
equal
deleted
inserted
replaced
200:49bca6487178 | 201:d2e0664ba73e |
---|---|
454 }; | 454 }; |
455 | 455 |
456 assignment.prototype.populateSymbols = function(symbols) { | 456 assignment.prototype.populateSymbols = function(symbols) { |
457 debugprint('//assignment', this.symbol.name, 'populateSymbols'); | 457 debugprint('//assignment', this.symbol.name, 'populateSymbols'); |
458 var existing = symbols.find(this.symbol.name); | 458 var existing = symbols.find(this.symbol.name); |
459 if (!existing) { | 459 if (!existing || existing.type == 'toplevel') { |
460 symbols.defineVar(this.symbol.name, this.expression); | 460 symbols.defineVar(this.symbol.name, this.expression); |
461 } | 461 } |
462 this.symbol.populateSymbols(symbols); | 462 this.symbol.populateSymbols(symbols); |
463 this.expression.populateSymbols(symbols); | 463 this.expression.populateSymbols(symbols); |
464 this.symbols = symbols; | 464 this.symbols = symbols; |