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;