| 1054 | return scope.defProp(nameNode.name, nameNode); |
| 1055 | } |
| 1056 | function patternName(node) { |
| 1057 | if (node.type == "Identifier") return node.name |
| 1058 | if (node.type == "AssignmentPattern") return patternName(node.left) |
| 1059 | if (node.type == "ObjectPattern") return "{" + node.properties.map(function(e) { return patternName(e.value) }).join(", ") + "}" |
| 1060 | if (node.type == "ArrayPattern") return "[" + node.elements.map(function(e) { return e ? patternName(e) : "" }).join(", ") + "]" |
| 1061 | if (node.type == "RestElement") return "..." + patternName(node.argument) |
| 1062 | return "_" |
| 1063 | } |
| 1064 | |
| 1065 | function isBlockScopedDecl(node) { |
| 1066 | return node.type == "VariableDeclaration" && node.kind != "var" || |