aboutsummaryrefslogtreecommitdiff
path: root/lib/scope.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/scope.js')
-rw-r--r--lib/scope.js11
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/scope.js b/lib/scope.js
index d4b13d12..8ce3e4da 100644
--- a/lib/scope.js
+++ b/lib/scope.js
@@ -132,10 +132,7 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options) {
node.thedef = node;
node.references = [];
}
- if (node instanceof AST_SymbolLambda) {
- defun.def_function(node, node.name == "arguments" ? undefined : defun);
- }
- else if (node instanceof AST_SymbolDefun) {
+ if (node instanceof AST_SymbolDefun || options.ie8 && node instanceof AST_SymbolLambda) {
// Careful here, the scope where this should be defined is
// the parent scope. The reason is that we enter a new
// scope when we encounter the AST_Defun node (which is
@@ -143,6 +140,9 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options) {
// later.
(node.scope = defun.parent_scope).def_function(node, defun);
}
+ else if (node instanceof AST_SymbolLambda) {
+ defun.def_function(node, node.name == "arguments" ? undefined : defun);
+ }
else if (node instanceof AST_SymbolVar) {
defun.def_variable(node, node.TYPE == "SymbolVar" ? null : undefined);
if (defun !== scope) {
@@ -349,9 +349,6 @@ function next_mangled_name(scope, options, def) {
holes.push(scope.cname);
}
scope.names_in_use[name] = true;
- if (options.ie8 && def.orig[0] instanceof AST_SymbolLambda) {
- names_in_use(scope.parent_scope, options)[name] = true;
- }
return name;
}