diff --git a/src/configuration.js b/src/configuration.js index 1ec791db8..36dc2d401 100644 --- a/src/configuration.js +++ b/src/configuration.js @@ -17,6 +17,9 @@ const configuration = { // Disable "hot-replacement-render" disableHotRenderer: false, + // @private + integratedResolver: false, + // Disable "hot-replacement-render" when injection into react-dom is made disableHotRendererWhenInjected: true, diff --git a/test/__snapshots__/babel.test.js.snap b/test/__snapshots__/babel.test.js.snap deleted file mode 100644 index c49e18394..000000000 --- a/test/__snapshots__/babel.test.js.snap +++ /dev/null @@ -1,2401 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods arguments.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - var _arguments = arguments; - - _classCallCheck(this, Foo); - - this.bar = function (a, b) { - _arguments; - - return a(b); - }; - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods arrow function in constructor.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - _classCallCheck(this, Foo); - - this.onClick = function (e) { - return e.target.value; - }; - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods async functions expression body.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\\"next\\", value); }, function (err) { step(\\"throw\\", err); }); } } return step(\\"next\\"); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - var _this = this; - - _classCallCheck(this, Foo); - - this.bar = function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(a, b) { - return regeneratorRuntime.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return b(a); - - case 2: - return _context.abrupt(\\"return\\", _context.sent); - - case 3: - case \\"end\\": - return _context.stop(); - } - } - }, _callee, _this); - })); - - return function (_x, _x2) { - return _ref.apply(this, arguments); - }; - }(); - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods async functions.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\\"next\\", value); }, function (err) { step(\\"throw\\", err); }); } } return step(\\"next\\"); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - var _this = this; - - _classCallCheck(this, Foo); - - this.bar = function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(a, b) { - return regeneratorRuntime.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return a(b); - - case 2: - return _context.abrupt(\\"return\\", _context.sent); - - case 3: - case \\"end\\": - return _context.stop(); - } - } - }, _callee, _this); - })); - - return function (_x, _x2) { - return _ref.apply(this, arguments); - }; - }(); - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods block body.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - _classCallCheck(this, Foo); - - this.bar = function (a, b) { - return a(b); - }; - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods default params.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - _classCallCheck(this, Foo); - - this.bar = function () { - var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \\"foo\\"; - - return a + \\"bar\\"; - }; - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods destructured params.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - _classCallCheck(this, Foo); - - this.bar = function (_ref, _ref2) { - var a = _ref.a; - var b = _ref2.b; - - return \\"\\" + a + b; - }; - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods expression body.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - _classCallCheck(this, Foo); - - this.onClick = function (e) { - return e.target.value; - }; - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods nested arguments.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - var _arguments = arguments; - - _classCallCheck(this, Foo); - - this.bar = function (a, b) { - (function () { - _arguments; - }); - - return a(b); - }; - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods nested new.target.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - _classCallCheck(this, Foo); - - this.bar = function (a, b) { - (function () { - new.target; - }); - - return a(b); - }; - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods new.target.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - _classCallCheck(this, Foo); - - this.bar = function (a, b) { - new.target; - - return a(b); - }; - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods not a function.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - _classCallCheck(this, Foo); - - this.bar = 2; - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods not an arrow function.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - _classCallCheck(this, Foo); - - this.bar = function (a, b) { - return a(b); - }; - } - - _createClass(Foo, [{ - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods same name as class method.js 1`] = ` -"\\"use strict\\"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function () { - function Foo() { - _classCallCheck(this, Foo); - - this.bar = function (a, b) { - return a(b); - }; - } - - _createClass(Foo, [{ - key: \\"bar\\", - value: function bar() { - return 2; - } - }, { - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return Foo; -}(); - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" copies arrow function body block onto hidden class methods static property.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Foo = function Foo() { - _classCallCheck(this, Foo); -}; - -Foo.bar = function (a, b) { - return a(b); -}; - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" tags potential React components bindings.js 1`] = ` -"\\"use strict\\"; - -Object.defineProperty(exports, \\"__esModule\\", { - value: true -}); -exports.C = undefined; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\\"value\\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _leftPad = require(\\"left-pad\\"); - -var _leftPad2 = _interopRequireDefault(_leftPad); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var A = 42; -function B() { - function R() {} - - var S = function S() { - _classCallCheck(this, S); - }; - - var T = 42; -} - -var C = exports.C = function () { - function C() { - _classCallCheck(this, C); - } - - _createClass(C, [{ - key: \\"U\\", - value: function U() { - function V() { - var W = function W() { - _classCallCheck(this, W); - }; - } - } - }, { - key: \\"__reactstandin__regenerateByEval\\", - // @ts-ignore - value: function __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - }]); - - return C; -}(); - -var D = function X() { - _classCallCheck(this, X); -}; -var E = D; -var Y = require(\\"left-pad\\"); - -var _require = require(\\"left-pad\\"), - Z = _require.Z; - -var _default = React.createClass({ - displayName: \\"_default\\" -}); - -exports.default = _default; -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(A, \\"A\\", __FILENAME__); - reactHotLoader.register(B, \\"B\\", __FILENAME__); - reactHotLoader.register(C, \\"C\\", __FILENAME__); - reactHotLoader.register(D, \\"D\\", __FILENAME__); - reactHotLoader.register(E, \\"E\\", __FILENAME__); - reactHotLoader.register(_default, \\"default\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" tags potential React components counter.js 1`] = ` -"\\"use strict\\"; - -Object.defineProperty(exports, \\"__esModule\\", { - value: true -}); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\"Cannot call a class as a function\\"); } } - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var Counter = function Counter() { - _classCallCheck(this, Counter); -}; - -var _default = function _default() { - return React.createElement( - \\"div\\", - null, - React.createElement(Counter, null) - ); -}; - -exports.default = _default; -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Counter, \\"Counter\\", __FILENAME__); - reactHotLoader.register(_default, \\"default\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" tags potential React components drop hot.prod.js 1`] = ` -"'use strict'; - -Object.defineProperty(exports, \\"__esModule\\", { - value: true -}); -exports.z = exports.e = exports.d = exports.c = exports.b = exports.a = undefined; - -var _react = require('react'); - -var _react2 = _interopRequireDefault(_react); - -var _reactHotLoader = require('react-hot-loader'); - -var RHL = _interopRequireWildcard(_reactHotLoader); - -var RHL2 = _interopRequireWildcard(_reactHotLoader); - -var _root = require('react-hot-loader/root'); - -var _notReactHotLoader = require('not-react-hot-loader'); - -var NOTRHL = _interopRequireWildcard(_notReactHotLoader); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var App = function App() { - return _react2.default.createElement( - 'div', - null, - 'Hello World!' - ); -}; - -var a = App; -var z = App; -var b = App; -var c = App; -var d = App; -var e = App; - -(0, _reactHotLoader.foo)(module)(App); -(0, _notReactHotLoader.hot)(module)(App); -(0, _reactHotLoader.foo)(module)(App); -RHL.foo(module)(App); -NOTRHL.hot(module)(App); - -// should not drop incomplete reference -(0, _reactHotLoader.foo)(module); - -exports.a = a; -exports.b = b; -exports.c = c; -exports.d = d; -exports.e = e; -exports.z = z;" -`; - -exports[`babel Targetting "es2015" tags potential React components hooks.js 1`] = ` -"'use strict'; - -var _react = require('react'); - -var _react2 = _interopRequireDefault(_react); - -var _externalHook = require('external-hook'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var NoHooks = function NoHooks() { - return _react2.default.createElement( - 'div', - null, - 'no hooks' - ); -}; - -var UseStateHook = function UseStateHook() { - (0, _react.useState)(42); -}; - -__signature__(UseStateHook, 'useState{(42)}'); - -var UseStateHooks = function UseStateHooks() { - (0, _react.useState)(42); - (0, _react.useState)(24); -}; - -__signature__(UseStateHooks, 'useState{(42)}\\\\nuseState{(24)}'); - -var useEffectHook = function useEffectHook() { - _react2.default.useEffect(function () { - return {}; - }); - (0, _react.useState)(24); - _react2.default.useState(42); -}; - -__signature__(useEffectHook, 'useEffect{}\\\\nuseState{(24)}\\\\nuseState{(42)}'); - -var useForwardRefHook = _react2.default.forwardRef(__signature__(function () { - _react2.default.useEffect(function () { - return {}; - }); - (0, _react.useState)(24); - _react2.default.useState(42); -}, 'useEffect{}\\\\nuseState{(24)}\\\\nuseState{(42)}')); - -var useForwardRefFunctionHook = _react2.default.forwardRef(__signature__(function () { - _react2.default.useEffect(function () { - return {}; - }); - (0, _react.useState)(24); - _react2.default.useState(42); -}, 'useEffect{}\\\\nuseState{(24)}\\\\nuseState{(42)}')); - -var useCustomHook = function useCustomHook() { - (0, _react.useState)(42); - useEffectHook(); - (0, _externalHook.useExternalHook)(); -}; - -__signature__(useCustomHook, 'useState{(42)}\\\\nuseEffectHook{}\\\\nuseExternalHook{}', function () { - return [useEffectHook, _externalHook.useExternalHook]; -}); - -var useCustomHookAgain = function useCustomHookAgain() { - (0, _react.useState)(42); - useEffectHook(); - (0, _externalHook.useExternalHook)(); -}; - -__signature__(useCustomHookAgain, 'useState{(42)}\\\\nuseEffectHook{}\\\\nuseExternalHook{}', function () { - return [useEffectHook, _externalHook.useExternalHook]; -}); - -function useFunc() { - (0, _react.useState)(42); - useEffectHook(); -} -__signature__(useFunc, 'useState{(42)}\\\\nuseEffectHook{}', function () { - return [useEffectHook]; -}); - -; -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(NoHooks, 'NoHooks', __FILENAME__); - reactHotLoader.register(UseStateHook, 'UseStateHook', __FILENAME__); - reactHotLoader.register(UseStateHooks, 'UseStateHooks', __FILENAME__); - reactHotLoader.register(useEffectHook, 'useEffectHook', __FILENAME__); - reactHotLoader.register(useForwardRefHook, 'useForwardRefHook', __FILENAME__); - reactHotLoader.register(useForwardRefFunctionHook, 'useForwardRefFunctionHook', __FILENAME__); - reactHotLoader.register(useCustomHook, 'useCustomHook', __FILENAME__); - reactHotLoader.register(useCustomHookAgain, 'useCustomHookAgain', __FILENAME__); - reactHotLoader.register(useFunc, 'useFunc', __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" tags potential React components issue 246.js 1`] = ` -"\\"use strict\\"; - -Object.defineProperty(exports, \\"__esModule\\", { - value: true -}); -exports.spread = spread; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -function spread() { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return args.push(1); -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(spread, \\"spread\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "es2015" tags potential React components name clash.js 1`] = ` -"\\"use strict\\"; - -Object.defineProperty(exports, \\"__esModule\\", { - value: true -}); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var _default = 10; -var _default2 = 42; -exports.default = _default2; -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(_default, \\"_default\\", __FILENAME__); - reactHotLoader.register(_default2, \\"default\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods arguments.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.bar = (a, b) => { - arguments; - - return a(b); - }; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods arrow function in constructor.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.onClick = e => e.target.value; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods async functions expression body.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.bar = async (a, b) => await b(a); - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods async functions.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.bar = async (a, b) => { - return await a(b); - }; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods block body.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.bar = (a, b) => { - return a(b); - }; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods default params.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.bar = (a = \\"foo\\") => { - return \`\${a}bar\`; - }; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods destructured params.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.bar = ({ a }, { b }) => { - return \`\${a}\${b}\`; - }; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods expression body.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.onClick = e => e.target.value; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods nested arguments.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.bar = (a, b) => { - () => { - arguments; - }; - - return a(b); - }; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods nested new.target.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.bar = (a, b) => { - () => { - new.target; - }; - - return a(b); - }; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods new.target.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.bar = (a, b) => { - new.target; - - return a(b); - }; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods not a function.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.bar = 2; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods not an arrow function.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.bar = function (a, b) { - return a(b); - }; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods same name as class method.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo { - constructor() { - this.bar = (a, b) => { - return a(b); - }; - } - - bar() { - return 2; - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" copies arrow function body block onto hidden class methods static property.js 1`] = ` -"\\"use strict\\"; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Foo {} - -Foo.bar = (a, b) => { - return a(b); -}; - -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Foo, \\"Foo\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" tags potential React components bindings.js 1`] = ` -"\\"use strict\\"; - -Object.defineProperty(exports, \\"__esModule\\", { - value: true -}); -exports.C = undefined; - -var _leftPad = require(\\"left-pad\\"); - -var _leftPad2 = _interopRequireDefault(_leftPad); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -const A = 42; -function B() { - function R() {} - class S {} - const T = 42; -} -class C { - U() { - function V() { - class W {} - } - } - - // @ts-ignore - __reactstandin__regenerateByEval(key, code) { - // @ts-ignore - this[key] = eval(code); - } - -} -exports.C = C; -const D = class X {}; -let E = D; -var Y = require(\\"left-pad\\"); -var { Z } = require(\\"left-pad\\"); - -const _default = React.createClass({ - displayName: \\"_default\\" -}); - -exports.default = _default; -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(A, \\"A\\", __FILENAME__); - reactHotLoader.register(B, \\"B\\", __FILENAME__); - reactHotLoader.register(C, \\"C\\", __FILENAME__); - reactHotLoader.register(D, \\"D\\", __FILENAME__); - reactHotLoader.register(E, \\"E\\", __FILENAME__); - reactHotLoader.register(_default, \\"default\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" tags potential React components counter.js 1`] = ` -"\\"use strict\\"; - -Object.defineProperty(exports, \\"__esModule\\", { - value: true -}); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -class Counter {} - -const _default = () => React.createElement( - \\"div\\", - null, - React.createElement(Counter, null) -); - -exports.default = _default; -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(Counter, \\"Counter\\", __FILENAME__); - reactHotLoader.register(_default, \\"default\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" tags potential React components drop hot.prod.js 1`] = ` -"'use strict'; - -Object.defineProperty(exports, \\"__esModule\\", { - value: true -}); -exports.z = exports.e = exports.d = exports.c = exports.b = exports.a = undefined; - -var _react = require('react'); - -var _react2 = _interopRequireDefault(_react); - -var _reactHotLoader = require('react-hot-loader'); - -var RHL = _interopRequireWildcard(_reactHotLoader); - -var RHL2 = _interopRequireWildcard(_reactHotLoader); - -var _root = require('react-hot-loader/root'); - -var _notReactHotLoader = require('not-react-hot-loader'); - -var NOTRHL = _interopRequireWildcard(_notReactHotLoader); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const App = () => _react2.default.createElement( - 'div', - null, - 'Hello World!' -); - -const a = App; -const z = App; -const b = App; -const c = App; -const d = App; -const e = App; - -(0, _reactHotLoader.foo)(module)(App); -(0, _notReactHotLoader.hot)(module)(App); -(0, _reactHotLoader.foo)(module)(App); -RHL.foo(module)(App); -NOTRHL.hot(module)(App); - -// should not drop incomplete reference -(0, _reactHotLoader.foo)(module); - -exports.a = a; -exports.b = b; -exports.c = c; -exports.d = d; -exports.e = e; -exports.z = z;" -`; - -exports[`babel Targetting "modern" tags potential React components hooks.js 1`] = ` -"'use strict'; - -var _react = require('react'); - -var _react2 = _interopRequireDefault(_react); - -var _externalHook = require('external-hook'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -const NoHooks = () => _react2.default.createElement( - 'div', - null, - 'no hooks' -); - -const UseStateHook = () => { - (0, _react.useState)(42); -}; - -__signature__(UseStateHook, 'useState{(42)}'); - -const UseStateHooks = () => { - (0, _react.useState)(42); - (0, _react.useState)(24); -}; - -__signature__(UseStateHooks, 'useState{(42)}\\\\nuseState{(24)}'); - -const useEffectHook = () => { - _react2.default.useEffect(() => ({})); - (0, _react.useState)(24); - _react2.default.useState(42); -}; - -__signature__(useEffectHook, 'useEffect{}\\\\nuseState{(24)}\\\\nuseState{(42)}'); - -const useForwardRefHook = _react2.default.forwardRef(__signature__(() => { - _react2.default.useEffect(() => ({})); - (0, _react.useState)(24); - _react2.default.useState(42); -}, 'useEffect{}\\\\nuseState{(24)}\\\\nuseState{(42)}')); - -const useForwardRefFunctionHook = _react2.default.forwardRef(__signature__(function () { - _react2.default.useEffect(() => ({})); - (0, _react.useState)(24); - _react2.default.useState(42); -}, 'useEffect{}\\\\nuseState{(24)}\\\\nuseState{(42)}')); - -const useCustomHook = () => { - (0, _react.useState)(42); - useEffectHook(); - (0, _externalHook.useExternalHook)(); -}; - -__signature__(useCustomHook, 'useState{(42)}\\\\nuseEffectHook{}\\\\nuseExternalHook{}', () => [useEffectHook, _externalHook.useExternalHook]); - -const useCustomHookAgain = () => { - (0, _react.useState)(42); - useEffectHook(); - (0, _externalHook.useExternalHook)(); -}; - -__signature__(useCustomHookAgain, 'useState{(42)}\\\\nuseEffectHook{}\\\\nuseExternalHook{}', () => [useEffectHook, _externalHook.useExternalHook]); - -function useFunc() { - (0, _react.useState)(42); - useEffectHook(); -} -__signature__(useFunc, 'useState{(42)}\\\\nuseEffectHook{}', () => [useEffectHook]); - -; -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(NoHooks, 'NoHooks', __FILENAME__); - reactHotLoader.register(UseStateHook, 'UseStateHook', __FILENAME__); - reactHotLoader.register(UseStateHooks, 'UseStateHooks', __FILENAME__); - reactHotLoader.register(useEffectHook, 'useEffectHook', __FILENAME__); - reactHotLoader.register(useForwardRefHook, 'useForwardRefHook', __FILENAME__); - reactHotLoader.register(useForwardRefFunctionHook, 'useForwardRefFunctionHook', __FILENAME__); - reactHotLoader.register(useCustomHook, 'useCustomHook', __FILENAME__); - reactHotLoader.register(useCustomHookAgain, 'useCustomHookAgain', __FILENAME__); - reactHotLoader.register(useFunc, 'useFunc', __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" tags potential React components issue 246.js 1`] = ` -"\\"use strict\\"; - -Object.defineProperty(exports, \\"__esModule\\", { - value: true -}); -exports.spread = spread; - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -function spread(...args) { - return args.push(1); -} -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(spread, \\"spread\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; - -exports[`babel Targetting "modern" tags potential React components name clash.js 1`] = ` -"\\"use strict\\"; - -Object.defineProperty(exports, \\"__esModule\\", { - value: true -}); - -(function () { - var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -const _default = 10; -const _default2 = 42; -exports.default = _default2; -; - -(function () { - var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(_default, \\"_default\\", __FILENAME__); - reactHotLoader.register(_default2, \\"default\\", __FILENAME__); -})(); - -; - -(function () { - var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule; - leaveModule && leaveModule(module); -})();" -`; diff --git a/test/hot/react-dom.integration.spec.js b/test/hot/react-dom.integration.spec.js index 677d65868..666ec8065 100644 --- a/test/hot/react-dom.integration.spec.js +++ b/test/hot/react-dom.integration.spec.js @@ -25,7 +25,7 @@ describe(`🔥-dom`, () => { if (React.useContext && String(() => 42).indexOf('=>') > 0) { it('shall integrate with React', () => { expect(ReactHotLoader.IS_REACT_MERGE_ENABLED).toBe(true); - expect(configuration.intergratedResolver).toBe(true); + expect(configuration.integratedResolver).toBe(true); expect(React.useEffect.isPatchedByReactHotLoader).toBe(true); }); @@ -271,7 +271,7 @@ describe(`🔥-dom`, () => { expect(el.innerHTML).toEqual('test21'); }); - it('support lazy memo forward', () => { + it('support lazy memo forward in Provider', () => { const spy = jest.fn(); const sandbox = x => { const Comp = () => { @@ -293,9 +293,15 @@ describe(`🔥-dom`, () => { const Lazy = React.lazy(() => importer); ReactHotLoader.register(Lazy, 'S1Lazy', 'test'); + + const Context = React.createContext(); + ReactHotLoader.register(Context, 'S1Context', 'test'); + const Forward = React.forwardRef(() => ( - + + + )); const Memo = Forward; // React.memo(Forward); diff --git a/test/hot/react-dom.no-integration.spec.js b/test/hot/react-dom.no-integration.spec.js new file mode 100644 index 000000000..f43481f02 --- /dev/null +++ b/test/hot/react-dom.no-integration.spec.js @@ -0,0 +1,338 @@ +/* eslint-env browser */ +/* eslint-disable no-lone-blocks, global-require, prefer-template, import/no-unresolved */ +import 'babel-polyfill'; +import React, { Suspense } from 'react'; +import ReactDom from 'react-dom'; +// import TestRenderer from 'react-test-renderer'; +import ReactHotLoader, { setConfig } from '../../src/index.dev'; +import { configureGeneration, incrementHotGeneration } from '../../src/global/generation'; +import configuration from '../../src/configuration'; +import { AppContainer } from '../../index'; + +describe(`🔥-dom`, () => { + beforeEach(() => { + ReactHotLoader.reset(); + setConfig({ + ignoreSFC: true, + }); + configureGeneration(1, 1); + }); + + const tick = () => new Promise(resolve => setTimeout(resolve, 10)); + + if (React.useContext && String(() => 42).indexOf('=>') > 0) { + it('shall (not) integrate with React', () => { + expect(ReactHotLoader.IS_REACT_MERGE_ENABLED).toBe(false); + expect(configuration.integratedResolver).toBe(false); + expect(React.useEffect.isPatchedByReactHotLoader).toBe(true); + }); + + it('should (not) use component comparator', async () => { + const mount = jest.fn(); + const unmount = jest.fn(); + const Fun1 = () => { + React.useEffect(() => { + mount('test1'); + return unmount; + }, []); + return 'fun1'; + }; + + const el = document.createElement('div'); + ReactDom.render(, el); + + expect(el.innerHTML).toEqual('fun1'); + + incrementHotGeneration(); + { + const Fun1 = () => { + React.useEffect(() => { + mount('test2'); + return unmount; + }, []); + return 'fun2'; + }; + ReactDom.render(, el); + } + await tick(); + + expect(el.innerHTML).toEqual('fun2'); + + expect(mount).toHaveBeenCalledWith('test1'); + expect(mount).toHaveBeenCalledWith('test2'); + expect(unmount).toHaveBeenCalled(); + }); + + it('should fail component comparator', async () => { + const mount = jest.fn(); + const unmount = jest.fn(); + const Fun1 = () => { + React.useEffect(() => { + mount('test1'); + return unmount; + }, []); + return 'fun1'; + }; + + const el = document.createElement('div'); + ReactDom.render(, el); + + expect(el.innerHTML).toEqual('fun1'); + + incrementHotGeneration(); + { + const Fun2 = () => { + React.useEffect(() => { + mount('test2'); + return unmount; + }, []); + return 'fun2'; + }; + ReactDom.render(, el); + } + await tick(); + + expect(el.innerHTML).toEqual('fun2'); + + expect(mount).toHaveBeenCalledWith('test1'); + expect(mount).toHaveBeenCalledWith('test2'); + expect(unmount).toHaveBeenCalled(); + }); + + it('should reload hook effect', async () => { + const mount = jest.fn(); + const unmount = jest.fn(); + const Fun1 = () => { + React.useEffect( + () => { + mount('test1'); + return unmount; + }, + ['hot'], + ); + return 'fun1'; + }; + + const el = document.createElement('div'); + ReactDom.render(, el); + + expect(el.innerHTML).toEqual('fun1'); + incrementHotGeneration(); + { + const Fun1 = () => { + React.useEffect( + () => { + mount('test2'); + return unmount; + }, + ['hot'], + ); + return 'fun2'; + }; + ReactDom.render(, el); + } + + await tick(); + + expect(el.innerHTML).toEqual('fun2'); + + expect(mount).toHaveBeenCalledWith('test1'); + expect(unmount).toHaveBeenCalled(); + + expect(mount).toHaveBeenCalledWith('test2'); + }); + + it('should reset hook comparator', async () => { + const Fun1 = () => { + const [state, setState] = React.useState('test0'); + React.useEffect(() => setState('test1'), []); + return state; + }; + + const el = document.createElement('div'); + ReactDom.render(, el); + + expect(el.innerHTML).toEqual('test0'); + await tick(); + expect(el.innerHTML).toEqual('test1'); + + incrementHotGeneration(); + { + const Fun1 = () => { + const [state, setState] = React.useState('test0'); + React.useEffect(() => setState('test2'), []); + return state; + }; + ReactDom.render(, el); + } + + await tick(); + expect(el.innerHTML).toEqual('test2'); + + incrementHotGeneration(); + { + const f = () => React.useState(0); // aka fail + const Fun1 = () => { + const [state, setState] = React.useState('test0'); + React.useEffect(() => setState('test3'), []); + f(); + return 'h' + state; + }; + ReactHotLoader.signature(Fun1, 'somevalue'); + ReactDom.render(, el); + } + + await tick(); + expect(el.innerHTML).toEqual('htest3'); + }); + + it('should support classes', async () => { + class Comp1 extends React.Component { + state = { + x: 1, + }; + + render() { + return 'test1' + this.state.x; + } + } + + Comp1.displayName = 'Comp1'; + + const el = document.createElement('div'); + ReactDom.render(, el); + + expect(el.innerHTML).toEqual('test11'); + if (configuration.intergratedResolver) { + expect(.type).toBe(Comp1); + } + + incrementHotGeneration(); + { + class Comp1 extends React.Component { + state = { + x: 2, + }; + + render() { + return 'test2' + this.state.x; + } + } + + Comp1.displayName = 'Comp1'; + + ReactDom.render(, el); + } + await tick(); + + expect(el.innerHTML).toEqual('test22'); + }); + + it('should support registered classes', async () => { + class Comp1 extends React.Component { + state = { + x: 1, + }; + + render() { + return 'test1' + this.state.x; + } + } + + ReactHotLoader.register(Comp1, 'comp1', 'test'); + + const el = document.createElement('div'); + ReactDom.render(, el); + + expect(el.innerHTML).toEqual('test11'); + if (configuration.intergratedResolver) { + expect(.type).toBe(Comp1); + } + + incrementHotGeneration(); + { + class Comp1 extends React.Component { + state = { + x: 2, + }; + + render() { + return 'test2' + this.state.x; + } + } + + ReactHotLoader.register(Comp1, 'comp1', 'test'); + ReactDom.render(, el); + } + await tick(); + + expect(el.innerHTML).toEqual('test21'); + }); + + it('support lazy memo forward', () => { + const spy = jest.fn(); + const sandbox = x => { + const Comp = () => { + React.useEffect(() => () => spy(), []); + return
lazy {x}
; + }; + ReactHotLoader.register(Comp, 'S1Comp', 'test'); + // use sync importer + const importer = { + then(x) { + const result = x({ default: Comp }); + return { + then(cb) { + cb(result); + }, + }; + }, + }; + + const Lazy = React.lazy(() => importer); + ReactHotLoader.register(Lazy, 'S1Lazy', 'test'); + + const Context = React.createContext(); + ReactHotLoader.register(Context, 'S1Context', 'test'); + + const Forward = React.forwardRef(() => ( + + + + + + )); + + const Memo = Forward; // React.memo(Forward); + ReactHotLoader.register(Memo, 'S1Memo', 'test'); + return () => ( + + + + ); + }; + + const S1 = sandbox(1); + ReactHotLoader.register(S1, 'S1', 'test'); + + const el = document.createElement('div'); + ReactDom.render(, el); + expect(el.innerHTML).toEqual('
lazy 1
'); + expect(spy).not.toHaveBeenCalled(); + + incrementHotGeneration(); + + const S2 = sandbox(2); + ReactHotLoader.register(S2, 'S1', 'test'); + + ReactDom.render(, el); + + expect(el.innerHTML).toEqual('
lazy 2
'); + expect(spy).toHaveBeenCalled(); + }); + } else { + it('target platform does not support useContext', () => { + expect(true).toBe(true); + }); + } +});