From 81a0bf2a23b03828897520e6ea96242a60970117 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Thu, 13 Oct 2016 17:54:03 -0500 Subject: [PATCH 1/4] Enable useBuiltIns option on object-rest-spread --- packages/babel-preset-react-app/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/babel-preset-react-app/index.js b/packages/babel-preset-react-app/index.js index a2639c6d4cf..a100f0fc2e4 100644 --- a/packages/babel-preset-react-app/index.js +++ b/packages/babel-preset-react-app/index.js @@ -14,7 +14,10 @@ const plugins = [ // class { handleClick = () => { } } require.resolve('babel-plugin-transform-class-properties'), // { ...todo, completed: true } - require.resolve('babel-plugin-transform-object-rest-spread'), + [require.resolve('babel-plugin-transform-object-rest-spread'), { + // Use Object.assign directly, instead of extends helper + useBuiltIns: true + }], // function* () { yield 42; yield 43; } [require.resolve('babel-plugin-transform-regenerator'), { // Async functions are converted to generators by babel-preset-latest From ab5d90bcfb3aa711ff04a21734e80f67801f926e Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Thu, 13 Oct 2016 18:28:34 -0500 Subject: [PATCH 2/4] note polyfill requirement --- packages/babel-preset-react-app/README.md | 2 ++ packages/babel-preset-react-app/index.js | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/babel-preset-react-app/README.md b/packages/babel-preset-react-app/README.md index c7548b84531..6394c9b0cde 100644 --- a/packages/babel-preset-react-app/README.md +++ b/packages/babel-preset-react-app/README.md @@ -23,3 +23,5 @@ Then create a file named `.babelrc` with following contents in the root folder o "presets": ["react-app"] } ``` + +This preset uses the `useBuiltIns` option with [transform-object-rest-spread](http://babeljs.io/docs/plugins/transform-object-rest-spread/), which assumes `Object.assign` is available or polyfilled. diff --git a/packages/babel-preset-react-app/index.js b/packages/babel-preset-react-app/index.js index a100f0fc2e4..676348c69e4 100644 --- a/packages/babel-preset-react-app/index.js +++ b/packages/babel-preset-react-app/index.js @@ -15,7 +15,8 @@ const plugins = [ require.resolve('babel-plugin-transform-class-properties'), // { ...todo, completed: true } [require.resolve('babel-plugin-transform-object-rest-spread'), { - // Use Object.assign directly, instead of extends helper + // Use Object.assign directly, instead of extends helper. Note that this + // assumes Object.assign is available/polyfilled. useBuiltIns: true }], // function* () { yield 42; yield 43; } From e73f3f014dc59499de6aebfd8b61c1854cb9901b Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Sun, 20 Nov 2016 11:13:39 -0600 Subject: [PATCH 3/4] Enable useBuiltIns with transform-react-jsx --- packages/babel-preset-react-app/README.md | 2 +- packages/babel-preset-react-app/index.js | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/babel-preset-react-app/README.md b/packages/babel-preset-react-app/README.md index 6394c9b0cde..5221c41af59 100644 --- a/packages/babel-preset-react-app/README.md +++ b/packages/babel-preset-react-app/README.md @@ -24,4 +24,4 @@ Then create a file named `.babelrc` with following contents in the root folder o } ``` -This preset uses the `useBuiltIns` option with [transform-object-rest-spread](http://babeljs.io/docs/plugins/transform-object-rest-spread/), which assumes `Object.assign` is available or polyfilled. +This preset uses the `useBuiltIns` option with [transform-object-rest-spread](http://babeljs.io/docs/plugins/transform-object-rest-spread/) and [transform-react-jsx](http://babeljs.io/docs/plugins/transform-react-jsx/), which assumes that `Object.assign` is available or polyfilled. diff --git a/packages/babel-preset-react-app/index.js b/packages/babel-preset-react-app/index.js index 676348c69e4..1f7ec0f8e0e 100644 --- a/packages/babel-preset-react-app/index.js +++ b/packages/babel-preset-react-app/index.js @@ -13,10 +13,14 @@ var path = require('path'); const plugins = [ // class { handleClick = () => { } } require.resolve('babel-plugin-transform-class-properties'), + // The following two plugins use Object.assign directly, instead of Babel's + // extends helper. Note that this assumes `Object.assign` is available. // { ...todo, completed: true } [require.resolve('babel-plugin-transform-object-rest-spread'), { - // Use Object.assign directly, instead of extends helper. Note that this - // assumes Object.assign is available/polyfilled. + useBuiltIns: true + }], + // Transforms JSX + [require.resolve('babel-plugin-transform-react-jsx'), { useBuiltIns: true }], // function* () { yield 42; yield 43; } From ca97701e0548f487f06bcf7acd9d932334306bc8 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Sun, 20 Nov 2016 11:51:16 -0600 Subject: [PATCH 4/4] Add direct ref to transform-react-jsx --- packages/babel-preset-react-app/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index 13f00ed227d..08a210674ee 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -14,6 +14,7 @@ "babel-plugin-transform-class-properties": "6.16.0", "babel-plugin-transform-object-rest-spread": "6.19.0", "babel-plugin-transform-react-constant-elements": "6.9.1", + "babel-plugin-transform-react-jsx": "6.8.0", "babel-plugin-transform-react-jsx-self": "6.11.0", "babel-plugin-transform-react-jsx-source": "6.9.0", "babel-plugin-transform-regenerator": "6.16.1",