diff --git a/packages/babel-plugin-transform-function-bind/src/index.js b/packages/babel-plugin-transform-function-bind/src/index.js index 322363a658..bec542299f 100644 --- a/packages/babel-plugin-transform-function-bind/src/index.js +++ b/packages/babel-plugin-transform-function-bind/src/index.js @@ -16,7 +16,7 @@ export default function({ types: t }) { function inferBindContext(bind, scope) { const staticContext = getStaticContext(bind, scope); - if (staticContext) return staticContext; + if (staticContext) return t.cloneDeep(staticContext); const tempId = getTempId(scope); if (bind.object) { diff --git a/packages/babel-plugin-transform-function-bind/test/fixtures/regression/6458/actual.js b/packages/babel-plugin-transform-function-bind/test/fixtures/regression/6458/actual.js new file mode 100644 index 0000000000..d1ce7bb332 --- /dev/null +++ b/packages/babel-plugin-transform-function-bind/test/fixtures/regression/6458/actual.js @@ -0,0 +1,3 @@ +import Obj from "./file"; + +console.log(::Obj.method); diff --git a/packages/babel-plugin-transform-function-bind/test/fixtures/regression/6458/expected.js b/packages/babel-plugin-transform-function-bind/test/fixtures/regression/6458/expected.js new file mode 100644 index 0000000000..c0989f25cd --- /dev/null +++ b/packages/babel-plugin-transform-function-bind/test/fixtures/regression/6458/expected.js @@ -0,0 +1,7 @@ +"use strict"; + +var _file = _interopRequireDefault(require("./file")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +console.log(_file.default.method.bind(_file.default)); diff --git a/packages/babel-plugin-transform-function-bind/test/fixtures/regression/6458/options.json b/packages/babel-plugin-transform-function-bind/test/fixtures/regression/6458/options.json new file mode 100644 index 0000000000..412c49de52 --- /dev/null +++ b/packages/babel-plugin-transform-function-bind/test/fixtures/regression/6458/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-function-bind", "transform-es2015-modules-commonjs"] +}