diff --git a/packages/babel-traverse/src/index.js b/packages/babel-traverse/src/index.js index 3d3af0f79e03..103d4c75546d 100644 --- a/packages/babel-traverse/src/index.js +++ b/packages/babel-traverse/src/index.js @@ -76,7 +76,7 @@ traverse.removeProperties = function (tree, opts) { return tree; }; -function hasBlacklistedType(path, state) { +function hasDenylistedType(path, state) { if (path.node.type === state.type) { state.has = true; path.stop(); @@ -86,10 +86,10 @@ function hasBlacklistedType(path, state) { traverse.hasType = function ( tree: Object, type: Object, - blacklistTypes?: Array, + denylistTypes?: Array, ): boolean { - // the node we're searching in is blacklisted - if (blacklistTypes?.includes(tree.type)) return false; + // the node we're searching in is denylisted + if (denylistTypes?.includes(tree.type)) return false; // the type we're looking for is the same as the passed node if (tree.type === type) return true; @@ -103,8 +103,8 @@ traverse.hasType = function ( tree, { noScope: true, - blacklist: blacklistTypes, - enter: hasBlacklistedType, + denylist: denylistTypes, + enter: hasDenylistedType, }, null, state, diff --git a/packages/babel-traverse/src/path/context.js b/packages/babel-traverse/src/path/context.js index 5587f0b9b559..03afe0205464 100644 --- a/packages/babel-traverse/src/path/context.js +++ b/packages/babel-traverse/src/path/context.js @@ -51,17 +51,20 @@ export function _call(fns?: Array): boolean { return false; } -export function isBlacklisted(): boolean { - const blacklist = this.opts.blacklist; - return blacklist && blacklist.indexOf(this.node.type) > -1; +export function isDenylisted(): boolean { + const denylist = this.opts.denylist ?? this.opts.blacklist; + return denylist && denylist.indexOf(this.node.type) > -1; } +// TODO: Remove in Babel 8 +export { isDenylisted as isBlacklisted }; + export function visit(): boolean { if (!this.node) { return false; } - if (this.isBlacklisted()) { + if (this.isDenylisted()) { return false; } diff --git a/packages/babel-traverse/src/visitors.js b/packages/babel-traverse/src/visitors.js index 0748865341c7..28d7883a9953 100644 --- a/packages/babel-traverse/src/visitors.js +++ b/packages/babel-traverse/src/visitors.js @@ -275,7 +275,13 @@ function shouldIgnoreKey(key) { if (key === "enter" || key === "exit" || key === "shouldSkip") return true; // ignore other options - if (key === "blacklist" || key === "noScope" || key === "skipKeys") { + if ( + key === "denylist" || + key === "noScope" || + key === "skipKeys" || + // TODO: Remove in Babel 8 + key === "blacklist" + ) { return true; } diff --git a/packages/babel-traverse/test/traverse.js b/packages/babel-traverse/test/traverse.js index d2492a71b329..adbe705cd290 100644 --- a/packages/babel-traverse/test/traverse.js +++ b/packages/babel-traverse/test/traverse.js @@ -61,7 +61,7 @@ describe("traverse", function () { }); }); - it("traverse blacklistTypes", function () { + it("traverse denylistTypes", function () { const expected = [ body[0], body[0].declarations[0], @@ -75,7 +75,7 @@ describe("traverse", function () { const actual = []; traverse(program, { - blacklist: ["MemberExpression"], + denylist: ["MemberExpression"], enter: function (path) { actual.push(path.node); },