Use toPropertyKey in the "decorate" helper

This commit also makes the "toPropertyKey" helper call @@toPrimitive
when needed.
This commit is contained in:
Nicolò Ribaudo 2018-09-20 20:03:45 +02:00
parent cd81b079ee
commit 38397ce11f
14 changed files with 47 additions and 36 deletions

View File

@ -1,5 +1,8 @@
{
"compact": false,
"presets": ["env"],
"plugins": ["external-helpers", "proposal-object-rest-spread"]
"plugins": [
["external-helpers", { "helperVersion": "7.1.5" }],
"proposal-object-rest-spread"
]
}

View File

@ -935,13 +935,28 @@ helpers.skipFirstGeneratorNext = helper("7.0.0-beta.0")`
}
`;
helpers.toPropertyKey = helper("7.0.0-beta.0")`
export default function _toPropertyKey(key) {
if (typeof key === "symbol") {
return key;
} else {
return String(key);
helpers.toPrimitive = helper("7.1.5")`
export default function _toPrimitive(
input,
hint /*: "default" | "string" | "number" | void */
) {
if (typeof input !== "object" || input === null) return input;
var prim = input[Symbol.toPrimitive];
if (prim !== undefined) {
var res = prim.call(input, hint || "default");
if (typeof res !== "object") return res;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return (hint === "string" ? String : Number)(input);
}
`;
helpers.toPropertyKey = helper("7.1.5")`
import toPrimitive from "toPrimitive";
export default function _toPropertyKey(arg) {
var key = toPrimitive(arg, "string");
return typeof key === "symbol" ? key : String(key);
}
`;
@ -1077,10 +1092,12 @@ helpers.classStaticPrivateFieldSpecSet = helper("7.0.2")`
descriptor.value = value;
return value;
}
`;
helpers.decorate = helper("7.0.2")`
helpers.decorate = helper("7.1.5")`
import toArray from "toArray";
import toPropertyKey from "toPropertyKey";
// These comments are stripped by @babel/template
/*::
@ -1574,8 +1591,7 @@ helpers.decorate = helper("7.0.2")`
);
}
var key = elementObject.key;
if (typeof key !== "string" && typeof key !== "symbol") key = String(key);
var key = toPropertyKey(elementObject.key);
var placement = String(elementObject.placement);
if (

View File

@ -5,7 +5,7 @@
[
"external-helpers",
{
"helperVersion": "7.0.2"
"helperVersion": "7.1.5"
}
]
]

View File

@ -5,7 +5,7 @@
[
"external-helpers",
{
"helperVersion": "7.0.2"
"helperVersion": "7.1.5"
}
]
]

View File

@ -5,7 +5,7 @@
[
"external-helpers",
{
"helperVersion": "7.0.2"
"helperVersion": "7.1.5"
}
]
]

View File

@ -5,7 +5,7 @@
[
"external-helpers",
{
"helperVersion": "7.0.2"
"helperVersion": "7.1.5"
}
]
]

View File

@ -3,6 +3,6 @@
["proposal-decorators", { "decoratorsBeforeExport": false }],
"proposal-class-properties",
"syntax-async-generators",
["external-helpers", { "helperVersion": "7.0.2" }]
["external-helpers", { "helperVersion": "7.1.5" }]
]
}

View File

@ -5,7 +5,7 @@
[
"external-helpers",
{
"helperVersion": "7.0.2"
"helperVersion": "7.1.5"
}
],
"syntax-async-generators"

View File

@ -5,7 +5,7 @@
[
"external-helpers",
{
"helperVersion": "7.0.2"
"helperVersion": "7.1.5"
}
]
]

View File

@ -2,6 +2,6 @@
"plugins": [
"syntax-async-generators",
"proposal-object-rest-spread",
"external-helpers"
["external-helpers", { "helperVersion": "7.1.5" }]
]
}

View File

@ -1,6 +1,6 @@
{
"plugins": [
"external-helpers",
["external-helpers", { "helperVersion": "7.1.5" }],
["transform-destructuring", { "useBuiltIns": true }],
"transform-spread",
"transform-parameters",

View File

@ -1,6 +1,7 @@
{
"plugins": [
["transform-destructuring", { "loose": true }],
"proposal-object-rest-spread"
"proposal-object-rest-spread",
["external-helpers", { "helperVersion": "7.1.5" }]
]
}

View File

@ -1,29 +1,20 @@
function _toPropertyKey(key) { if (typeof key === "symbol") { return key; } else { return String(key); } }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var z = {};
var _z = z,
x = _extends({}, _z);
x = babelHelpers.extends({}, _z);
var _z2 = z,
x = _z2.x,
y = _objectWithoutPropertiesLoose(_z2, ["x"]);
y = babelHelpers.objectWithoutPropertiesLoose(_z2, ["x"]);
var _z3 = z,
x = _z3[x],
y = _objectWithoutPropertiesLoose(_z3, [x].map(_toPropertyKey));
y = babelHelpers.objectWithoutPropertiesLoose(_z3, [x].map(babelHelpers.toPropertyKey));
(function (_ref) {
let x = _ref.x,
y = _objectWithoutPropertiesLoose(_ref, ["x"]);
y = babelHelpers.objectWithoutPropertiesLoose(_ref, ["x"]);
});
var _o = o;
x = _o.x;
y = _o.y;
z = _objectWithoutPropertiesLoose(_o, ["x", "y"]);
z = babelHelpers.objectWithoutPropertiesLoose(_o, ["x", "y"]);
_o;

View File

@ -1,6 +1,6 @@
{
"plugins": [
"external-helpers",
["external-helpers", { "helperVersion": "7.1.5" }],
"transform-destructuring",
"transform-spread",
"transform-parameters",