From 5ed1b04dc8aa5961189e836162fd3cafaa5525d0 Mon Sep 17 00:00:00 2001 From: liuxingbaoyu <30521560+liuxingbaoyu@users.noreply.github.com> Date: Tue, 21 Feb 2023 04:11:36 +0800 Subject: [PATCH 1/2] fix --- packages/babel-generator/src/source-map.ts | 2 +- packages/babel-generator/test/index.js | 34 ++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/packages/babel-generator/src/source-map.ts b/packages/babel-generator/src/source-map.ts index 634b41fb60e0..6c8e9c44411e 100644 --- a/packages/babel-generator/src/source-map.ts +++ b/packages/babel-generator/src/source-map.ts @@ -53,7 +53,7 @@ export default class SourceMap { if (opts.inputSourceMap) { this._inputMap = new TraceMap(opts.inputSourceMap); const resolvedSources = this._inputMap.resolvedSources; - if (resolvedSources.length) { + if (resolvedSources.length && this._inputMap.sourcesContent) { for (let i = 0; i < resolvedSources.length; i++) { setSourceContent( map, diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index ab84ce99ed86..cc875943e5c8 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -880,6 +880,40 @@ describe("generation", function () { });" `); }); + + it("inputSourceMap without sourcesContent", () => { + const ast = parse("var t = x => x * x;"); + + expect( + generate(ast, { + sourceMaps: true, + inputSourceMap: { + version: 3, + names: ["t", "x"], + sources: ["source-maps/arrow-function/input.js"], + mappings: + "AAAA,IAAIA,CAAC,GAAG,SAAJA,CAACA,CAAGC,CAAC;EAAA,OAAIA,CAAC,GAAGA,CAAC;AAAA", + }, + }).map, + ).toMatchInlineSnapshot(` + Object { + "file": undefined, + "mappings": "AAAA,IAAIA,CAAC,GAAGC,CAAA,IAAAA,CAAA,GAAJA,CAAC", + "names": Array [ + "t", + "x", + ], + "sourceRoot": undefined, + "sources": Array [ + "source-maps/arrow-function/input.js", + ], + "sourcesContent": Array [ + null, + ], + "version": 3, + } + `); + }); }); describe("programmatic generation", function () { From ce9851cb806cd487403eb883d3ff9c285565b6da Mon Sep 17 00:00:00 2001 From: liuxingbaoyu <30521560+liuxingbaoyu@users.noreply.github.com> Date: Tue, 21 Feb 2023 04:23:47 +0800 Subject: [PATCH 2/2] improve --- packages/babel-generator/src/source-map.ts | 4 ++-- packages/babel-generator/test/index.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/babel-generator/src/source-map.ts b/packages/babel-generator/src/source-map.ts index 6c8e9c44411e..fa27a87cfa58 100644 --- a/packages/babel-generator/src/source-map.ts +++ b/packages/babel-generator/src/source-map.ts @@ -53,12 +53,12 @@ export default class SourceMap { if (opts.inputSourceMap) { this._inputMap = new TraceMap(opts.inputSourceMap); const resolvedSources = this._inputMap.resolvedSources; - if (resolvedSources.length && this._inputMap.sourcesContent) { + if (resolvedSources.length) { for (let i = 0; i < resolvedSources.length; i++) { setSourceContent( map, resolvedSources[i], - this._inputMap.sourcesContent[i], + this._inputMap.sourcesContent?.[i], ); } } diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index cc875943e5c8..b5816f24b710 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -908,7 +908,7 @@ describe("generation", function () { "source-maps/arrow-function/input.js", ], "sourcesContent": Array [ - null, + undefined, ], "version": 3, }