diff --git a/Makefile b/Makefile index bc69709bdd..50b5eec109 100644 --- a/Makefile +++ b/Makefile @@ -199,6 +199,12 @@ new-version: git pull --rebase yarn lerna version --force-publish=$(FORCE_PUBLISH) +version-cerxes: + yarn lerna version prerelease --allow-branch initializers-fix --preid csx + +publish-cerxes: prepublish + yarn lerna publish --registry="https://npm.cerxes.net" --force-publish --allow-branch initializers-fix --canary --preid csx --dist-tag csx + # NOTE: Run make new-version first publish: prepublish yarn lerna publish from-git diff --git a/packages/babel-core/src/config/helpers/config-api.js b/packages/babel-core/src/config/helpers/config-api.js index a93756ae9f..97e56da1af 100644 --- a/packages/babel-core/src/config/helpers/config-api.js +++ b/packages/babel-core/src/config/helpers/config-api.js @@ -70,7 +70,7 @@ function assertVersion(range: string | number): void { throw new Error("Expected string or integer value."); } - if (semver.satisfies(coreVersion, range)) return; + if (semver.satisfies(semver.coerce(coreVersion).raw, range)) return; const limit = Error.stackTraceLimit; diff --git a/packages/babel-helper-create-class-features-plugin/package.json b/packages/babel-helper-create-class-features-plugin/package.json index 88e7cf113c..55c39b55cb 100644 --- a/packages/babel-helper-create-class-features-plugin/package.json +++ b/packages/babel-helper-create-class-features-plugin/package.json @@ -19,7 +19,8 @@ "@babel/helper-optimise-call-expression": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-replace-supers": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4" + "@babel/helper-split-export-declaration": "^7.7.4", + "semver": "^5.5.0" }, "peerDependencies": { "@babel/core": "^7.0.0" diff --git a/packages/babel-helper-create-class-features-plugin/src/index.js b/packages/babel-helper-create-class-features-plugin/src/index.js index 57add480d2..8e10b695ed 100644 --- a/packages/babel-helper-create-class-features-plugin/src/index.js +++ b/packages/babel-helper-create-class-features-plugin/src/index.js @@ -1,5 +1,6 @@ import nameFunction from "@babel/helper-function-name"; import splitExportDeclaration from "@babel/helper-split-export-declaration"; +import semver from "semver"; import { buildPrivateNamesNodes, buildPrivateNamesMap, @@ -27,7 +28,10 @@ export { FEATURES, injectInitialization }; // as 70000100005. This method is easier than using a semver-parsing // package, but it breaks if we release x.y.z where x, y or z are // greater than 99_999. -const version = pkg.version.split(".").reduce((v, x) => v * 1e5 + +x, 0); +const version = semver + .coerce(pkg.version) + .raw.split(".") + .reduce((v, x) => v * 1e5 + +x, 0); const versionKey = "@babel/plugin-class-features/version"; export function createClassFeaturePlugin({ diff --git a/packages/babel-helper-create-regexp-features-plugin/package.json b/packages/babel-helper-create-regexp-features-plugin/package.json index 7053e7805c..493f4ed389 100644 --- a/packages/babel-helper-create-regexp-features-plugin/package.json +++ b/packages/babel-helper-create-regexp-features-plugin/package.json @@ -19,7 +19,8 @@ ], "dependencies": { "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "regexpu-core": "^4.6.0", + "semver": "^5.5.0" }, "peerDependencies": { "@babel/core": "^7.0.0" diff --git a/packages/babel-helper-create-regexp-features-plugin/src/index.js b/packages/babel-helper-create-regexp-features-plugin/src/index.js index 49554be42a..b7181c6062 100644 --- a/packages/babel-helper-create-regexp-features-plugin/src/index.js +++ b/packages/babel-helper-create-regexp-features-plugin/src/index.js @@ -1,3 +1,4 @@ +import semver from "semver"; import rewritePattern from "regexpu-core"; import { featuresKey, @@ -16,7 +17,10 @@ import { pullFlag } from "@babel/helper-regex"; // as 70000100005. This method is easier than using a semver-parsing // package, but it breaks if we release x.y.z where x, y or z are // greater than 99_999. -const version = pkg.version.split(".").reduce((v, x) => v * 1e5 + +x, 0); +const version = semver + .coerce(pkg.version) + .raw.split(".") + .reduce((v, x) => v * 1e5 + +x, 0); const versionKey = "@babel/plugin-regexp-features/version"; export function createRegExpFeaturePlugin({ name, feature, options = {} }) { diff --git a/packages/babel-helpers/src/helpers.js b/packages/babel-helpers/src/helpers.js index d235cf3285..0299408027 100644 --- a/packages/babel-helpers/src/helpers.js +++ b/packages/babel-helpers/src/helpers.js @@ -1053,16 +1053,20 @@ helpers.initializerWarningHelper = helper("7.0.0-beta.0")` * Add a helper to call as a replacement for class property definition. */ helpers.initializerDefineProperty = helper("7.0.0-beta.0")` - export default function _initializerDefineProperty(target, property, descriptor, context){ - if (!descriptor) return; - - Object.defineProperty(target, property, { - enumerable: descriptor.enumerable, - configurable: descriptor.configurable, - writable: descriptor.writable, - value: descriptor.initializer ? descriptor.initializer.call(context) : void 0, - }); - } + export default function _initializerDefineProperty(target, property, descriptor, context) { + if (!descriptor) return; + + if(descriptor.initializer){ + if(descriptor.set){ + descriptor.set.call(context, descriptor.initializer.call(context)); + }else{ + descriptor.value = descriptor.initializer.call(context); + } + delete descriptor.initializer; + } + + Object.defineProperty(target, property, descriptor); + } `; /** diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/decorators-legacy-interop/local-define-property/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/decorators-legacy-interop/local-define-property/output.js index 641307b44d..2315261ebd 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/decorators-legacy-interop/local-define-property/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/decorators-legacy-interop/local-define-property/output.js @@ -1,6 +1,6 @@ var _class, _descriptor, _descriptor2, _temp; -function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); } +function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; if (descriptor.initializer) { if (descriptor.set) { descriptor.set.call(context, descriptor.initializer.call(context)); } else { descriptor.value = descriptor.initializer.call(context); } delete descriptor.initializer; } Object.defineProperty(target, property, descriptor); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/decorators-legacy-interop/loose/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/decorators-legacy-interop/loose/output.js index 0a25e2b102..a33c992413 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/decorators-legacy-interop/loose/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/decorators-legacy-interop/loose/output.js @@ -1,6 +1,6 @@ var _class, _descriptor, _descriptor2, _temp; -function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); } +function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; if (descriptor.initializer) { if (descriptor.set) { descriptor.set.call(context, descriptor.initializer.call(context)); } else { descriptor.value = descriptor.initializer.call(context); } delete descriptor.initializer; } Object.defineProperty(target, property, descriptor); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/decorators-legacy-interop/strict/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/decorators-legacy-interop/strict/output.js index 11cce4ac92..9f9a5a425f 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/decorators-legacy-interop/strict/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/decorators-legacy-interop/strict/output.js @@ -1,6 +1,6 @@ var _class, _descriptor, _descriptor2, _temp; -function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); } +function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; if (descriptor.initializer) { if (descriptor.set) { descriptor.set.call(context, descriptor.initializer.call(context)); } else { descriptor.value = descriptor.initializer.call(context); } delete descriptor.initializer; } Object.defineProperty(target, property, descriptor); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/output.js index 9a71c17528..e530d6687b 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/output.js @@ -2,7 +2,7 @@ let _Symbol$search; var _class, _descriptor, _temp; -function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); } +function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; if (descriptor.initializer) { if (descriptor.set) { descriptor.set.call(context, descriptor.initializer.call(context)); } else { descriptor.value = descriptor.initializer.call(context); } delete descriptor.initializer; } Object.defineProperty(target, property, descriptor); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } diff --git a/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js b/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js index 9f20ecdbd9..dcdbd674d6 100644 --- a/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js +++ b/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js @@ -1,5 +1,5 @@ -import _Array$from from "../../core-js/array/from"; -import _isIterable from "../../core-js/is-iterable"; +import _Array$from from "..\\../core-js/array/from"; +import _isIterable from "..\\../core-js/is-iterable"; export default function _iterableToArray(iter) { if (_isIterable(Object(iter)) || Object.prototype.toString.call(iter) === "[object Arguments]") return _Array$from(iter); } \ No newline at end of file