Return inserted/replaced paths (#5710)
* Return inserted/replaced paths This gives `Path`’s replacement and insertion methods a consistent return value: the inserted/replaced paths. Before, they could return `undefined`, a `node`, or a the current path inside an array. It was kinda pointless. But now they always return an array of paths, which is useful for solving https://github.com/babel/babel/pull/4935#discussion_r96151368. * Return inserted nodes and not BlockStatement Addded test for bug #4363 * Cleanups - `#replaceWith` will now return the current path if it's the same node - `#insertAfter` and `#insertBefore` use public Path APIs now - Makes container insertion faster (single splice call) - Use public APIs in container insertion - Replacing a statement with an expression returns the expression's path - Replacing an expression with multiple statements returns the inserted closure's body's paths.
This commit is contained in:
@@ -44,7 +44,10 @@ export default function({ types: t }) {
|
||||
if (node[VISITED]) return;
|
||||
|
||||
const inferred = nameFunction(path);
|
||||
if (inferred && inferred !== node) return path.replaceWith(inferred);
|
||||
if (inferred && inferred !== node) {
|
||||
path.replaceWith(inferred);
|
||||
return;
|
||||
}
|
||||
|
||||
node[VISITED] = true;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user