From 248f00fe826e443825653bb906049eaeebd50c14 Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Sun, 27 Dec 2015 11:13:11 -0800 Subject: [PATCH] Set function names from assignment expressions Based on http://www.2ality.com/2015/09/function-names-es6.html. --- .../babel-helper-function-name/src/index.js | 3 +++ .../fixtures/regression/T2983/expected.js | 20 +++++++---------- .../function-assignment/actual.js | 13 +++++++++++ .../function-assignment/expected.js | 22 +++++++++++++++++++ 4 files changed, 46 insertions(+), 12 deletions(-) create mode 100644 packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-assignment/actual.js create mode 100644 packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-assignment/expected.js diff --git a/packages/babel-helper-function-name/src/index.js b/packages/babel-helper-function-name/src/index.js index 05af0ac05b..ef06bb0993 100644 --- a/packages/babel-helper-function-name/src/index.js +++ b/packages/babel-helper-function-name/src/index.js @@ -144,6 +144,9 @@ export default function ({ node, parent, scope, id }) { return; } } + } else if (t.isAssignmentExpression(parent)) { + // foo = function () {}; + id = parent.left; } else if (!id) { return; } diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/regression/T2983/expected.js b/packages/babel-plugin-transform-class-properties/test/fixtures/regression/T2983/expected.js index 12e34907ed..1ac70e7fd6 100644 --- a/packages/babel-plugin-transform-class-properties/test/fixtures/regression/T2983/expected.js +++ b/packages/babel-plugin-transform-class-properties/test/fixtures/regression/T2983/expected.js @@ -1,17 +1,13 @@ var _class, _temp; -call((_temp = _class = function () { - function _class2() { - babelHelpers.classCallCheck(this, _class2); - } +call((_temp = _class = function _class() { + babelHelpers.classCallCheck(this, _class); +}, _class.test = true, _temp)); - return _class2; -}(), _class.test = true, _temp)); - -var _class3 = function _class3() { - babelHelpers.classCallCheck(this, _class3); +var _class2 = function _class2() { + babelHelpers.classCallCheck(this, _class2); }; -_class3.test = true; -export default _class3; -; +_class2.test = true; +export default _class2; +; \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-assignment/actual.js b/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-assignment/actual.js new file mode 100644 index 0000000000..e8efb0c87a --- /dev/null +++ b/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-assignment/actual.js @@ -0,0 +1,13 @@ +var foo; +foo = function() { +}; + +var baz; +baz = function() { + baz(); +}; +baz = 12; + +bar = function() { + bar(); +}; diff --git a/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-assignment/expected.js b/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-assignment/expected.js new file mode 100644 index 0000000000..e2084c4057 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-assignment/expected.js @@ -0,0 +1,22 @@ +var foo; +foo = function foo() {}; + +var _baz; +_baz = function baz() { + _baz(); +}; +_baz = 12; + +bar = function (_bar) { + function bar() { + return _bar.apply(this, arguments); + } + + bar.toString = function () { + return _bar.toString(); + }; + + return bar; +}(function () { + bar(); +}); \ No newline at end of file