From 1563e74cc0cc7a922f6082cd8c40054bfffb317e Mon Sep 17 00:00:00 2001 From: kpdecker Date: Fri, 13 Nov 2015 12:42:15 -0600 Subject: [PATCH 1/2] Add a few auxiliary comment tests --- .../fixtures/auxiliary-comment/options.json | 5 +++ .../auxiliary-comment/overview/actual.js | 14 +++++++ .../auxiliary-comment/overview/expected.js | 38 +++++++++++++++++++ .../fixtures/auxiliary-comment/options.json | 5 +++ .../use-strict-add/actual.js | 1 + .../use-strict-add/expected.js | 3 ++ 6 files changed, 66 insertions(+) create mode 100644 packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/options.json create mode 100644 packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/actual.js create mode 100644 packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/expected.js create mode 100644 packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/options.json create mode 100644 packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/use-strict-add/actual.js create mode 100644 packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/use-strict-add/expected.js diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/options.json b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/options.json new file mode 100644 index 0000000000..c3733ea44e --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/options.json @@ -0,0 +1,5 @@ +{ + "plugins": ["external-helpers-2", "transform-es2015-modules-commonjs"], + "auxiliaryCommentBefore": "before", + "auxiliaryCommentAfter": "after" +} diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/actual.js new file mode 100644 index 0000000000..3b32cd0941 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/actual.js @@ -0,0 +1,14 @@ +import "foo"; +import "foo-bar"; +import "./directory/foo-bar"; +import foo from "foo2"; +import * as foo2 from "foo3"; +import {bar} from "foo4"; +import {foo as bar2} from "foo5"; + +export {test}; +export var test = 5; + +bar; +bar2; +foo; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/expected.js new file mode 100644 index 0000000000..947e8a0b77 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/expected.js @@ -0,0 +1,38 @@ +/*before*/"use strict"; + +/*before*/Object.defineProperty(exports, "__esModule", { + value: true +}); +/*before*/exports.test = undefined; +/*before*/ +require("foo"); + +/*before*/ +require("foo-bar"); + +/*before*/ +require("./directory/foo-bar"); + +/*before*/ +var _foo = require("foo2"); + +/*before*/ +var _foo2 = babelHelpers.interopRequireDefault(_foo); + +/*before*/ +var _foo3 = require("foo3"); + +/*before*/var /*after*/foo2 = babelHelpers.interopRequireWildcard(_foo3); +/*before*/ +var _foo4 = require("foo4"); + +/*before*/ +var _foo5 = require("foo5"); + +/*before*/exports. /*after*/test = test; +var test = /*before*/exports. /*after*/test = 5; + +/*before*/_foo4. /*after*/bar; +/*before*/_foo5. /*after*/foo; +/*before*/_foo2.default; +/*after*/ diff --git a/packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/options.json b/packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/options.json new file mode 100644 index 0000000000..f630e093d5 --- /dev/null +++ b/packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/options.json @@ -0,0 +1,5 @@ +{ + "plugins": ["transform-strict-mode", "transform-es2015-modules-commonjs"], + "auxiliaryCommentBefore": "before", + "auxiliaryCommentAfter": "after" +} diff --git a/packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/use-strict-add/actual.js b/packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/use-strict-add/actual.js new file mode 100644 index 0000000000..a280f9a5cc --- /dev/null +++ b/packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/use-strict-add/actual.js @@ -0,0 +1 @@ +foo(); diff --git a/packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/use-strict-add/expected.js b/packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/use-strict-add/expected.js new file mode 100644 index 0000000000..ffb737e4d9 --- /dev/null +++ b/packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/use-strict-add/expected.js @@ -0,0 +1,3 @@ +/*before*/"use strict"; + +/*after*/foo(); From 488f5a067e3699e3d7d67ae0e520c4d84d15a27b Mon Sep 17 00:00:00 2001 From: kpdecker Date: Fri, 13 Nov 2015 13:42:53 -0600 Subject: [PATCH 2/2] Avoid duplicate auxiliary start if in aux section Fixes #3032 --- packages/babel-generator/src/printer.js | 2 +- .../auxiliary-comment/overview/expected.js | 16 +++++----------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/packages/babel-generator/src/printer.js b/packages/babel-generator/src/printer.js index 447b37402d..2e74d4af97 100644 --- a/packages/babel-generator/src/printer.js +++ b/packages/babel-generator/src/printer.js @@ -66,7 +66,7 @@ export default class Printer extends Buffer { printAuxBeforeComment(wasInAux) { let comment = this.format.auxiliaryCommentBefore; - if (!wasInAux && this.insideAux) { + if (!wasInAux && this.insideAux && !this.printAuxAfterOnNextUserNode) { this.printAuxAfterOnNextUserNode = true; if (comment) this.printComment({ type: "CommentBlock", diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/expected.js index 947e8a0b77..29633a5382 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/expected.js @@ -1,35 +1,29 @@ /*before*/"use strict"; -/*before*/Object.defineProperty(exports, "__esModule", { +Object.defineProperty(exports, "__esModule", { value: true }); -/*before*/exports.test = undefined; -/*before*/ +exports.test = undefined; + require("foo"); -/*before*/ require("foo-bar"); -/*before*/ require("./directory/foo-bar"); -/*before*/ var _foo = require("foo2"); -/*before*/ var _foo2 = babelHelpers.interopRequireDefault(_foo); -/*before*/ var _foo3 = require("foo3"); -/*before*/var /*after*/foo2 = babelHelpers.interopRequireWildcard(_foo3); +var /*after*/foo2 = babelHelpers.interopRequireWildcard(_foo3); /*before*/ var _foo4 = require("foo4"); -/*before*/ var _foo5 = require("foo5"); -/*before*/exports. /*after*/test = test; +exports. /*after*/test = test; var test = /*before*/exports. /*after*/test = 5; /*before*/_foo4. /*after*/bar;