(node, onExpr, onBoundIdent)
| 110 | |
| 111 | // Traverse a pattern node (identifier, object/array pattern, etc) invoking onExpr on any nested expressions and onBoundIdent on any bound identifiers. |
| 112 | function walkPattern(node, onExpr, onBoundIdent) { |
| 113 | recursiveWalk(node, { |
| 114 | AssignmentPattern(node, c) { |
| 115 | c(node.left); |
| 116 | onExpr(node.right); |
| 117 | }, |
| 118 | Property(node, c) { |
| 119 | if (node.computed) { |
| 120 | onExpr(node.key); |
| 121 | } |
| 122 | c(node.value); |
| 123 | }, |
| 124 | Identifier({name}) { |
| 125 | onBoundIdent(name); |
| 126 | }, |
| 127 | }); |
| 128 | } |
| 129 | |
| 130 | function hasSideEffects(node) { |
| 131 | // Conservative analysis. |
no test coverage detected