fixed some mess with symbols/scope
- all symbols now have a `thedef` property which is a SymbolDef object, instead of the `uniq` that we had before (pointing to the first occurrence of the name as declaration). - for undeclared symbols we still create a SymbolDef object in the toplevel scope but mark it "undeclared" - we can now call figure_out_scope after squeezing, which is useful in order not to mangle names that were dropped by the squeezer
This commit is contained in:
@@ -884,16 +884,9 @@ function OutputStream(options) {
|
||||
self.value._do_print(output, true);
|
||||
});
|
||||
DEFPRINT(AST_Symbol, function(self, output){
|
||||
output.print_name(self.name);
|
||||
});
|
||||
DEFPRINT(AST_SymbolDeclaration, function(self, output){
|
||||
var def = self.definition();
|
||||
output.print_name(def.mangled_name || def.name);
|
||||
});
|
||||
DEFPRINT(AST_SymbolRef, function(self, output){
|
||||
var def = self.symbol;
|
||||
output.print_name(def ? def.mangled_name || def.name : self.name);
|
||||
});
|
||||
DEFPRINT(AST_This, function(self, output){
|
||||
output.print("this");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user