     if node.type of CLASS_EXCEPTIONS
       return CLASS_EXCEPTIONS[node.type].concat([node.type])
     else
-      if node.type is 'CallExpression'
-        known = @lookupFunctionName node
+      if node.type is 'CallExpression' or node.type is 'NewExpression' or node.type is 'Identifier'
+        known = @lookupKnownName node
         if not known or (known.fn.value and known.fn.command)
           return [node.type, 'any-drop']
         if known.fn.value

      props.unshift '*'
    props

  lookupFunctionName: (node) ->
    fname = @fullFunctionNameArray node
    full = fname.join '.'
    if full of @opts.functions
      return name: full, anyobj: false, fn: @opts.functions[full]
    last = fname[fname.length - 1]
    if fname.length > 1 and (wildcard = '*.' + last) not of @opts.functions

        if node.name is '__'
          block = @jsBlock node, depth, bounds
          block.flagToRemove = true
        else if @lookupKnownName node
          @jsBlock node, depth, bounds
      when 'CallExpression', 'NewExpression'
        @jsBlock node, depth, bounds
        known = @lookupKnownName node
        if not known
          @jsSocketAndMark indentDepth, node.callee, depth + 1, NEVER_PAREN
        else if known.anyobj and node.callee.type is 'MemberExpression'
