diff --git a/packages/rollup-plugin-babel/src/index.js b/packages/rollup-plugin-babel/src/index.js index 51e4be85e..ab61ca2e9 100644 --- a/packages/rollup-plugin-babel/src/index.js +++ b/packages/rollup-plugin-babel/src/index.js @@ -86,7 +86,7 @@ export default function babel ( options ) { return buildExternalHelpers( helpers, 'var' ) .replace( /var babelHelpers.+\n/, '' ) - .replace( /babelHelpers\.(.+) = function/g, 'function babelHelpers_$1' ) + .replace( /babelHelpers\.(.+) = function(?: \w+)?/g, 'function babelHelpers_$1' ) .replace( /babelHelpers\.(.+) = /g, 'var babelHelpers_$1 = ' ) .replace( 'babelHelpers;', '' ) // not sure where this comes from... .trim() + '\n'; diff --git a/packages/rollup-plugin-babel/test/samples/named-function-helper/_config.js b/packages/rollup-plugin-babel/test/samples/named-function-helper/_config.js new file mode 100644 index 000000000..3150eee21 --- /dev/null +++ b/packages/rollup-plugin-babel/test/samples/named-function-helper/_config.js @@ -0,0 +1,4 @@ +module.exports = { + solo: true, + description: 'correctly renames helpers' +}; diff --git a/packages/rollup-plugin-babel/test/samples/named-function-helper/main.js b/packages/rollup-plugin-babel/test/samples/named-function-helper/main.js new file mode 100644 index 000000000..fc1cef2c8 --- /dev/null +++ b/packages/rollup-plugin-babel/test/samples/named-function-helper/main.js @@ -0,0 +1,11 @@ +class Bar { + baz () { + alert( 'baz' ); + } +} + +export class Foo extends Bar { + baz () { + super.baz(); + } +} diff --git a/packages/rollup-plugin-babel/test/test.js b/packages/rollup-plugin-babel/test/test.js index eb6e821b2..8d4ff1a6e 100644 --- a/packages/rollup-plugin-babel/test/test.js +++ b/packages/rollup-plugin-babel/test/test.js @@ -136,4 +136,17 @@ describe( 'rollup-plugin-babel', function () { assert.ok( !~cjs.indexOf( 'babelHelpers' ) ); }); }); + + it( 'correctly renames helpers (#22)', () => { + return rollup.rollup({ + entry: 'samples/named-function-helper/main.js', + plugins: [ babelPlugin() ], + onwarn: function ( msg ) { + assert.equal( msg, `Treating 'babel-runtime/helpers/classCallCheck' as external dependency` ); + } + }).then( function ( bundle ) { + var cjs = bundle.generate({ format: 'cjs' }).code; + assert.ok( !~cjs.indexOf( 'babelHelpers_get get' ), 'helper was incorrectly renamed' ); + }); + }); });