- AssignmentExpression({operator,left,right}) {log(operator);walk(left);walk(right)},
- LogicalExpression({operator,left,right}) {log(operator);walk(left);walk(right)},
- BinaryExpression({operator,left,right}) {log(operator);walk(left);walk(right)},
- UnaryExpression({operator,prefix,argument}) {log(prefix?'prefix':'suffix',operator); walk(argument)},
- UpdateExpression({operator,prefix,argument}) {log(prefix?'prefix':'suffix',operator); walk(argument)},
- ObjectExpression({properties}) {properties.map(walk)},
- Property({key,value}) {walk(key);walk(value)},
- ArrayExpression({elements}) {elements.map(walk)},
- ArrayPattern({elements}) {elements.map(walk)},
- ArrowFunctionExpression({params,body}) {params.map(walk);walk(body)},
- TemplateLiteral({expressions,quasis}) {quasis.map(walk);expressions.map(walk)},
+ AssignmentExpression({operator,left,right}) {log(operator);step(left);step(right)},
+ LogicalExpression({operator,left,right}) {log(operator);step(left);step(right)},
+ BinaryExpression({operator,left,right}) {log(operator);step(left);step(right)},
+ UnaryExpression({operator,prefix,argument}) {log(prefix?'prefix':'suffix',operator); step(argument)},
+ UpdateExpression({operator,prefix,argument}) {log(prefix?'prefix':'suffix',operator); step(argument)},
+ ObjectExpression({properties}) {properties.map(step)},
+ Property({key,value}) {step(key);step(value)},
+ ArrayExpression({elements}) {elements.map(step)},
+ ArrayPattern({elements}) {elements.map(step)},
+ ArrowFunctionExpression({params,body}) {params.map(step);step(body)},
+ TemplateLiteral({expressions,quasis}) {quasis.map(step);expressions.map(step)},