diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/within-ts-module-block/output.mjs b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/within-ts-module-block/output.mjs index 9090c80cb91c..588cd0847da6 100644 --- a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/within-ts-module-block/output.mjs +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/within-ts-module-block/output.mjs @@ -7,5 +7,5 @@ export namespace Namespaced { fileName: _jsxFileName, lineNumber: 3, columnNumber: 3 - }, void 0); + }, this); } diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/within-ts-module-block/output.mjs b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/within-ts-module-block/output.mjs index efb871f367af..f02771d4b5fa 100644 --- a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/within-ts-module-block/output.mjs +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/within-ts-module-block/output.mjs @@ -7,5 +7,5 @@ export namespace Namespaced { fileName: _jsxFileName, lineNumber: 3, columnNumber: 3 - }, void 0); + }, this); } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/namespace/declare-global-nested-namespace/input.ts b/packages/babel-plugin-transform-typescript/test/fixtures/namespace/declare-global-nested-namespace/input.ts new file mode 100644 index 000000000000..f90524b6f591 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/namespace/declare-global-nested-namespace/input.ts @@ -0,0 +1,5 @@ +declare global { namespace globalThis { var i18n: any; } } + +namespace X { var i18n: any; } + +export class i18n {} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/namespace/declare-global-nested-namespace/output.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/namespace/declare-global-nested-namespace/output.mjs new file mode 100644 index 000000000000..aea569d090ec --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/namespace/declare-global-nested-namespace/output.mjs @@ -0,0 +1,7 @@ +let X; + +(function (_X) { + var i18n; +})(X || (X = {})); + +export class i18n {} diff --git a/packages/babel-types/src/ast-types/generated/index.ts b/packages/babel-types/src/ast-types/generated/index.ts index 5b77c64d0714..9975a9536fb9 100644 --- a/packages/babel-types/src/ast-types/generated/index.ts +++ b/packages/babel-types/src/ast-types/generated/index.ts @@ -2336,7 +2336,8 @@ export type FunctionParent = | ArrowFunctionExpression | ClassMethod | ClassPrivateMethod - | StaticBlock; + | StaticBlock + | TSModuleBlock; export type Pureish = | FunctionDeclaration | FunctionExpression diff --git a/packages/babel-types/src/definitions/typescript.ts b/packages/babel-types/src/definitions/typescript.ts index 750e47430d42..98a5d3ba4bf5 100644 --- a/packages/babel-types/src/definitions/typescript.ts +++ b/packages/babel-types/src/definitions/typescript.ts @@ -514,7 +514,7 @@ defineType("TSModuleDeclaration", { }); defineType("TSModuleBlock", { - aliases: ["Scopable", "Block", "BlockParent"], + aliases: ["Scopable", "Block", "BlockParent", "FunctionParent"], visitor: ["body"], fields: { body: validateArrayOfType("Statement"), diff --git a/packages/babel-types/src/validators/generated/index.ts b/packages/babel-types/src/validators/generated/index.ts index f07920696c65..c8eb203b3f6a 100644 --- a/packages/babel-types/src/validators/generated/index.ts +++ b/packages/babel-types/src/validators/generated/index.ts @@ -4788,7 +4788,8 @@ export function isFunctionParent( "ArrowFunctionExpression" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType || - "StaticBlock" === nodeType + "StaticBlock" === nodeType || + "TSModuleBlock" === nodeType ) { if (typeof opts === "undefined") { return true;