From cb2c4240a937d881345e24b23322c9751989c6ec Mon Sep 17 00:00:00 2001 From: overlookmotel Date: Wed, 17 Feb 2021 19:28:40 +0000 Subject: [PATCH] Test for nested computed keys --- packages/babel-traverse/test/scope.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/babel-traverse/test/scope.js b/packages/babel-traverse/test/scope.js index 67590ac396f5..7f704ffb620c 100644 --- a/packages/babel-traverse/test/scope.js +++ b/packages/babel-traverse/test/scope.js @@ -219,6 +219,24 @@ describe("scope", () => { .scope.getBinding("a").path.node.init.value, ).toBe("outside"); }); + + it("when path is in nested within another computed key", () => { + expect( + getPath( + `var a = "outside"; ({ get [ { get [a]() { let a = "inside"; return a; } }.outside ]() { let a = "middle"; return a; } })`, + ) + .get("body.1.expression.properties.0.key.object.properties.0.key") + .scope.getBinding("a").path.node.init.value, + ).toBe("outside"); + + expect( + getPath( + `var a = "outside"; class foo { static get [ class { static get [a]() { let a = "inside"; return a; } }.outside ]() { let a = "middle"; return a; } }`, + ) + .get("body.1.body.body.0.key.object.body.body.0.key") + .scope.getBinding("a").path.node.init.value, + ).toBe("outside"); + }); }); it("should not have visibility on parameter bindings", () => {