From 81e6d4147db3ddd6b59533b1828a0fb00d1c9e8a Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Sun, 10 Apr 2016 23:22:49 -0700 Subject: [PATCH] Map the end of block statement nodes to the end of their original location - fixes T7258 --- .../out-files/script2.js | 2 +- .../source-maps/input-source-map/source-map.json | 2 +- packages/babel-generator/src/generators/base.js | 3 +++ packages/babel-generator/test/index.js | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/babel-cli/test/fixtures/babel/filename-sourcemap --out-file --source-maps inline/out-files/script2.js b/packages/babel-cli/test/fixtures/babel/filename-sourcemap --out-file --source-maps inline/out-files/script2.js index 891ae37a81..17534661c1 100644 --- a/packages/babel-cli/test/fixtures/babel/filename-sourcemap --out-file --source-maps inline/out-files/script2.js +++ b/packages/babel-cli/test/fixtures/babel/filename-sourcemap --out-file --source-maps inline/out-files/script2.js @@ -4,4 +4,4 @@ var foo = function foo() { return 4; }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLFVBQVU7UyxBQUFNLEFBQUM7QSIsImZpbGUiOiJzY3JpcHQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGZvbyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIDQ7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSW05eWFXZHBibUZzTG1weklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRlZCUVZVc1dUdFRRVUZOTEVNN1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW5aaGNpQm1iMjhnUFNBb0tTQTlQaUEwT3lKZGZRPT0iXX0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLFVBQVUsZTtTLEFBQU07QUFBQyIsImZpbGUiOiJzY3JpcHQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGZvbyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIDQ7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSW05eWFXZHBibUZzTG1weklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRlZCUVZVc1dUdFRRVUZOTEVNN1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW5aaGNpQm1iMjhnUFNBb0tTQTlQaUEwT3lKZGZRPT0iXX0= diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map/source-map.json b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map/source-map.json index be097b621d..a1f20e9811 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map/source-map.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map/source-map.json @@ -1,6 +1,6 @@ { "version": 3, - "mappings": "AAAA,UAAU;SAAM,A,AAAC;A", + "mappings": "AAAA,UAAU,Y;SAAM,A;AAAC", "names": [], "sources": [ "original.js" diff --git a/packages/babel-generator/src/generators/base.js b/packages/babel-generator/src/generators/base.js index 7245718cf2..18607c615f 100644 --- a/packages/babel-generator/src/generators/base.js +++ b/packages/babel-generator/src/generators/base.js @@ -22,8 +22,11 @@ export function BlockStatement(node: Object) { this.printSequence(node.body, node, { indent: true }); if (!this.format.retainLines && !this.format.concise) this.removeLast("\n"); + + this.source("end", node.loc); this.rightBrace(); } else { + this.source("end", node.loc); this.push("}"); } } diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index 23820dd7d7..163bfadcb5 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -43,7 +43,7 @@ suite("generation", function () { version: 3, sources: [ 'a.js', 'b.js' ], names: [], - mappings: 'AAAA,SAAS,EAAT,CAAa,GAAb,EAAkB;AAAE,UAAQ,GAAR,CAAY,GAAZ;AAAF;;ACAlB,GAAG,OAAH', + mappings: 'AAAA,SAAS,EAAT,CAAa,GAAb,EAAkB;AAAE,UAAQ,GAAR,CAAY,GAAZ;AAAmB;;ACAvC,GAAG,OAAH', sourcesContent: [ 'function hi (msg) { console.log(msg); }\n', 'hi(\'hello\');\n'