aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMihai Bazon <mihai@bazon.net>2012-11-08 12:31:28 +0200
committerMihai Bazon <mihai@bazon.net>2012-11-08 12:31:28 +0200
commite312c5c2a7d68de3da3bb7e8c9044e3183fe49d6 (patch)
treeec241aa15fa98db4a8563edb5c0c858fd46049c8
parent1a5fd3e05294a74900c6265f364f233e3f05eba0 (diff)
downloadtracifyjs-e312c5c2a7d68de3da3bb7e8c9044e3183fe49d6.tar.gz
tracifyjs-e312c5c2a7d68de3da3bb7e8c9044e3183fe49d6.zip
fix API breakage
close #36, #38
-rw-r--r--lib/scope.js11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/scope.js b/lib/scope.js
index f8a1cb8b..dc637cc5 100644
--- a/lib/scope.js
+++ b/lib/scope.js
@@ -59,7 +59,7 @@ SymbolDef.prototype = {
unmangleable: function(options) {
return this.global
|| this.undeclared
- || (!options.eval && (this.scope.uses_eval || this.scope.uses_with));
+ || (!(options && options.eval) && (this.scope.uses_eval || this.scope.uses_with));
},
mangle: function(options) {
if (!this.mangled_name && !this.unmangleable(options))
@@ -347,11 +347,15 @@ AST_Symbol.DEFMETHOD("global", function(){
return this.definition().global;
});
-AST_Toplevel.DEFMETHOD("mangle_names", function(options){
- options = defaults(options, {
+AST_Toplevel.DEFMETHOD("_default_mangler_options", function(options){
+ return defaults(options, {
except : [],
eval : false,
});
+});
+
+AST_Toplevel.DEFMETHOD("mangle_names", function(options){
+ options = this._default_mangler_options(options);
// We only need to mangle declaration nodes. Special logic wired
// into the code generator will display the mangled name if it's
// present (and for AST_SymbolRef-s it'll use the mangled name of
@@ -387,6 +391,7 @@ AST_Toplevel.DEFMETHOD("mangle_names", function(options){
});
AST_Toplevel.DEFMETHOD("compute_char_frequency", function(options){
+ options = this._default_mangler_options(options);
var tw = new TreeWalker(function(node){
if (node instanceof AST_Constant)
base54.consider(node.print_to_string());