                 n
 
         visitFunction: (n) ->
-                new_scope = Object.create null
-                new_scope[p.name] = true for p in n.params
-                new_scope[n.rest.name] = true if n.rest?
-                new_scope["arguments"] = true
+                new_scope = new Map
+                new_scope.set(p.name, true) for p in n.params
+                new_scope.set(n.rest.name, true) if n.rest?
+                new_scope.set("arguments", true)
                 new_body = @visitWithScope new_scope, n.body
                 n.body = new_body
                 n

                n

        visitCatchClause: (n) ->
                new_scope = Object.create null
                new_scope[n.param.name] = true
                n.guard = @visit n.guard
                n.body = @visitWithScope new_scope, n.body
                n

                rv

        visitVariableDeclarator: (n) ->
                @scope_stack.top.set(n.id.name, true)
                n

        visitImportSpecifier: (n) ->
                @scope_stack.top.set(n.id.name, true)
                n

        visitObjectExpression: (n) ->
