From 8e3e6e0a8838607c5a01ba4232c4d3ff8dee5db0 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Mon, 26 Feb 2018 18:27:06 -0800 Subject: [PATCH] Require AST output to be opt-in, rather than opt-out. --- .../babel-core/src/transformation/index.js | 2 +- packages/babel-core/test/api.js | 22 ++++++++++++++++++- .../test/copied-nodes.js | 1 + 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/packages/babel-core/src/transformation/index.js b/packages/babel-core/src/transformation/index.js index a40b12f42c..038ea6d0c6 100644 --- a/packages/babel-core/src/transformation/index.js +++ b/packages/babel-core/src/transformation/index.js @@ -64,7 +64,7 @@ export function runSync( return { metadata: file.metadata, options: opts, - ast: opts.ast !== false ? file.ast : null, + ast: opts.ast === true ? file.ast : null, code: outputCode === undefined ? null : outputCode, map: outputMap === undefined ? null : outputMap, }; diff --git a/packages/babel-core/test/api.js b/packages/babel-core/test/api.js index a38ae5913c..6a63378083 100644 --- a/packages/babel-core/test/api.js +++ b/packages/babel-core/test/api.js @@ -34,6 +34,7 @@ describe("parser and generator options", function() { function newTransform(string) { return babel.transform(string, { + ast: true, parserOpts: { parser: recast.parse, plugins: ["flow"], @@ -47,7 +48,10 @@ describe("parser and generator options", function() { it("options", function() { const string = "original;"; - assert.deepEqual(newTransform(string).ast, babel.transform(string).ast); + assert.deepEqual( + newTransform(string).ast, + babel.transform(string, { ast: true }).ast, + ); assert.equal(newTransform(string).code, string); }); @@ -57,6 +61,7 @@ describe("parser and generator options", function() { assert.deepEqual( newTransform(experimental).ast, babel.transform(experimental, { + ast: true, parserOpts: { plugins: ["flow"], }, @@ -66,6 +71,7 @@ describe("parser and generator options", function() { function newTransformWithPlugins(string) { return babel.transform(string, { + ast: true, plugins: [__dirname + "/../../babel-plugin-syntax-flow"], parserOpts: { parser: recast.parse, @@ -79,6 +85,7 @@ describe("parser and generator options", function() { assert.deepEqual( newTransformWithPlugins(experimental).ast, babel.transform(experimental, { + ast: true, parserOpts: { plugins: ["flow"], }, @@ -93,6 +100,7 @@ describe("parser and generator options", function() { assert.notEqual( newTransform(experimental).ast, babel.transform(experimental, { + ast: true, parserOpts: { allowImportExportEverywhere: true, }, @@ -401,6 +409,18 @@ describe("api", function() { }); }); + it("ast option true", function() { + return transformAsync("foo('bar');", { ast: true }).then(function(result) { + assert.ok(result.ast); + }); + }); + + it("ast option default", function() { + return transformAsync("foo('bar');").then(function(result) { + assert.ok(!result.ast); + }); + }); + it("auxiliaryComment option", function() { return transformAsync("class Foo {}", { auxiliaryCommentBefore: "before", diff --git a/packages/babel-plugin-transform-modules-commonjs/test/copied-nodes.js b/packages/babel-plugin-transform-modules-commonjs/test/copied-nodes.js index 4bdcaa8953..f28341da50 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/copied-nodes.js +++ b/packages/babel-plugin-transform-modules-commonjs/test/copied-nodes.js @@ -5,6 +5,7 @@ test("Doesn't use the same object for two different nodes in the AST", function( const code = 'import Foo from "bar"; Foo; Foo;'; const ast = babel.transform(code, { + ast: true, plugins: [[require("../"), { loose: true }]], }).ast;