diff --git a/packages/babel-core/src/transformation/file/file.js b/packages/babel-core/src/transformation/file/file.js index 55a9268cfe..df71a1ba65 100644 --- a/packages/babel-core/src/transformation/file/file.js +++ b/packages/babel-core/src/transformation/file/file.js @@ -166,6 +166,25 @@ export default class File { return false; } + // semver.intersects() has some surprising behavior with comparing ranges + // with preprelease versions. We add '^' to ensure that we are always + // comparing ranges with ranges, which sidesteps this logic. + // For example: + // + // semver.intersects(`<7.0.1`, "7.0.0-beta.0") // false - surprising + // semver.intersects(`<7.0.1`, "^7.0.0-beta.0") // true - expected + // + // This is because the first falls back to + // + // semver.satisfies("7.0.0-beta.0", `<7.0.1`) // false - surprising + // + // and this fails because a prerelease version can only satisfy a range + // if it is a prerelease within the same major/minor/patch range. + // + // Note: If this is found to have issues, please also revist the logic in + // transform-runtime's definitions.js file. + if (semver.valid(versionRange)) versionRange = `^${versionRange}`; + return ( typeof versionRange !== "string" || (!semver.intersects(`<${minVersion}`, versionRange) && diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/native-classes/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/native-classes/options.json index 7498668b52..7d27245aed 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/native-classes/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/native-classes/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], ["proposal-class-properties", { "loose": true }], "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/non-block-arrow-func/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/non-block-arrow-func/options.json index 7498668b52..7d27245aed 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/non-block-arrow-func/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/non-block-arrow-func/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], ["proposal-class-properties", { "loose": true }], "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/options.json index 524cdc3142..d08b0bc622 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], ["proposal-class-properties", { "loose": true }], "transform-classes", "transform-block-scoping", diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/reevaluated/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/reevaluated/options.json index 7498668b52..7d27245aed 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/reevaluated/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/reevaluated/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], ["proposal-class-properties", { "loose": true }], "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-export/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-export/options.json index 7498668b52..7d27245aed 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-export/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-export/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], ["proposal-class-properties", { "loose": true }], "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-infer-name/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-infer-name/options.json index 7498668b52..7d27245aed 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-infer-name/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-infer-name/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], ["proposal-class-properties", { "loose": true }], "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/options.json index 7498668b52..7d27245aed 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], ["proposal-class-properties", { "loose": true }], "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/options.json index 7498668b52..7d27245aed 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], ["proposal-class-properties", { "loose": true }], "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/options.json index 7498668b52..7d27245aed 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], ["proposal-class-properties", { "loose": true }], "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance/options.json index 9682dda0a9..4019398f00 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-classes", "transform-block-scoping", diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/options.json index afaaa89647..62ec3b8d83 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/non-block-arrow-func/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/non-block-arrow-func/options.json index afaaa89647..62ec3b8d83 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/non-block-arrow-func/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/non-block-arrow-func/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/options.json index d19c255940..5117d9cba1 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-classes", "transform-block-scoping", diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/options.json index afaaa89647..62ec3b8d83 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T2983/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T2983/options.json index afaaa89647..62ec3b8d83 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T2983/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T2983/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T6719/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T6719/options.json index afaaa89647..62ec3b8d83 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T6719/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T6719/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T7364/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T7364/options.json index b30203b661..cdd61b2809 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T7364/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T7364/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-block-scoping", "syntax-class-properties", diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-export/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-export/options.json index afaaa89647..62ec3b8d83 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-export/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-export/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-infer-name/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-infer-name/options.json index afaaa89647..62ec3b8d83 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-infer-name/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-infer-name/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/options.json index afaaa89647..62ec3b8d83 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/options.json index afaaa89647..62ec3b8d83 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static/options.json index afaaa89647..62ec3b8d83 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static/options.json @@ -1,6 +1,11 @@ { "plugins": [ - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "proposal-class-properties", "transform-block-scoping", "syntax-class-properties" diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/options.json index 4f9b5b01d1..42cb9721be 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/options.json +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/options.json @@ -2,6 +2,11 @@ "plugins": [ ["proposal-decorators", { "decoratorsBeforeExport": false }], "proposal-class-properties", - "external-helpers" + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ] ] } diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/options.json index 4f9b5b01d1..42cb9721be 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/options.json +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/options.json @@ -2,6 +2,11 @@ "plugins": [ ["proposal-decorators", { "decoratorsBeforeExport": false }], "proposal-class-properties", - "external-helpers" + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ] ] } diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/options.json index 4f9b5b01d1..42cb9721be 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/options.json +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/options.json @@ -2,6 +2,11 @@ "plugins": [ ["proposal-decorators", { "decoratorsBeforeExport": false }], "proposal-class-properties", - "external-helpers" + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ] ] } diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/options.json index 4f9b5b01d1..42cb9721be 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/options.json +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/options.json @@ -2,6 +2,11 @@ "plugins": [ ["proposal-decorators", { "decoratorsBeforeExport": false }], "proposal-class-properties", - "external-helpers" + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ] ] } diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/options.json index 41a1ee9b40..1208179ee7 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/options.json +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/options.json @@ -2,7 +2,12 @@ "plugins": [ ["proposal-decorators", { "decoratorsBeforeExport": false }], "proposal-class-properties", - "external-helpers", + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ], "syntax-async-generators" ] } diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/options.json index 4f9b5b01d1..42cb9721be 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/options.json +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/options.json @@ -2,6 +2,11 @@ "plugins": [ ["proposal-decorators", { "decoratorsBeforeExport": false }], "proposal-class-properties", - "external-helpers" + [ + "external-helpers", + { + "helperVersion": "7.0.1" + } + ] ] } diff --git a/packages/babel-plugin-transform-runtime/src/definitions.js b/packages/babel-plugin-transform-runtime/src/definitions.js index da11576f2d..ac044910a0 100644 --- a/packages/babel-plugin-transform-runtime/src/definitions.js +++ b/packages/babel-plugin-transform-runtime/src/definitions.js @@ -1,14 +1,40 @@ import semver from "semver"; +function hasMinVersion(minVersion, runtimeVersion) { + // If the range is unavailable, we're running the script during Babel's + // build process, and we want to assume that all versions are satisfied so + // that the built output will include all definitions. + if (!runtimeVersion) return true; + + // semver.intersects() has some surprising behavior with comparing ranges + // with preprelease versions. We add '^' to ensure that we are always + // comparing ranges with ranges, which sidesteps this logic. + // For example: + // + // semver.intersects(`<7.0.1`, "7.0.0-beta.0") // false - surprising + // semver.intersects(`<7.0.1`, "^7.0.0-beta.0") // true - expected + // + // This is because the first falls back to + // + // semver.satisfies("7.0.0-beta.0", `<7.0.1`) // false - surprising + // + // and this fails because a prerelease version can only satisfy a range + // if it is a prerelease within the same major/minor/patch range. + // + // Note: If this is found to have issues, please also revist the logic in + // babel-core's availableHelper() API. + if (semver.valid(runtimeVersion)) runtimeVersion = `^${runtimeVersion}`; + + return ( + !semver.intersects(`<${minVersion}`, runtimeVersion) && + !semver.intersects(`>=8.0.0`, runtimeVersion) + ); +} + export default runtimeVersion => { - let includeMathModule = true; - if (runtimeVersion) { - // reason for conditionally including this module: - // https://github.com/babel/babel/pull/8616#issuecomment-418154753 - includeMathModule = - !semver.intersects(`<=7.0.0`, runtimeVersion) && - !semver.intersects(`>=8.0.0`, runtimeVersion); - } + // Conditionally include 'Math' because it was not included in the 7.0.0 + // release of '@babel/runtime'. See issue https://github.com/babel/babel/pull/8616. + const includeMathModule = hasMinVersion("7.0.1", runtimeVersion); return { builtins: { diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/output.js index 7b773a5ec2..4c905ed110 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/output.js @@ -1,51 +1,17 @@ -var _Math$trunc = require("@babel/runtime-corejs2/core-js/math/trunc"); - -var _Math$tanh = require("@babel/runtime-corejs2/core-js/math/tanh"); - -var _Math$sinh = require("@babel/runtime-corejs2/core-js/math/sinh"); - -var _Math$sign = require("@babel/runtime-corejs2/core-js/math/sign"); - -var _Math$log2 = require("@babel/runtime-corejs2/core-js/math/log2"); - -var _Math$log1p = require("@babel/runtime-corejs2/core-js/math/log1p"); - -var _Math$log = require("@babel/runtime-corejs2/core-js/math/log10"); - -var _Math$imul = require("@babel/runtime-corejs2/core-js/math/imul"); - -var _Math$hypot = require("@babel/runtime-corejs2/core-js/math/hypot"); - -var _Math$fround = require("@babel/runtime-corejs2/core-js/math/fround"); - -var _Math$expm = require("@babel/runtime-corejs2/core-js/math/expm1"); - -var _Math$cosh = require("@babel/runtime-corejs2/core-js/math/cosh"); - -var _Math$clz = require("@babel/runtime-corejs2/core-js/math/clz32"); - -var _Math$cbrt = require("@babel/runtime-corejs2/core-js/math/cbrt"); - -var _Math$atanh = require("@babel/runtime-corejs2/core-js/math/atanh"); - -var _Math$asinh = require("@babel/runtime-corejs2/core-js/math/asinh"); - -var _Math$acosh = require("@babel/runtime-corejs2/core-js/math/acosh"); - -_Math$acosh; -_Math$asinh; -_Math$atanh; -_Math$cbrt; -_Math$clz; -_Math$cosh; -_Math$expm; -_Math$fround; -_Math$hypot; -_Math$imul; -_Math$log; -_Math$log1p; -_Math$log2; -_Math$sign; -_Math$sinh; -_Math$tanh; -_Math$trunc; +Math.acosh; +Math.asinh; +Math.atanh; +Math.cbrt; +Math.clz32; +Math.cosh; +Math.expm1; +Math.fround; +Math.hypot; +Math.imul; +Math.log10; +Math.log1p; +Math.log2; +Math.sign; +Math.sinh; +Math.tanh; +Math.trunc;