Skip to content

Commit

Permalink
Use toPropertyKey in the "decorate" helper
Browse files Browse the repository at this point in the history
This commit also makes the "toPropertyKey" helper call @@toPrimitive
when needed.
  • Loading branch information
nicolo-ribaudo committed Nov 2, 2018
1 parent cd81b07 commit 38397ce
Show file tree
Hide file tree
Showing 14 changed files with 47 additions and 36 deletions.
@@ -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"
]
}
36 changes: 26 additions & 10 deletions packages/babel-helpers/src/helpers.js
Expand Up @@ -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);
}
`;

Expand Down Expand Up @@ -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
/*::
Expand Down Expand Up @@ -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 (
Expand Down Expand Up @@ -1716,4 +1732,4 @@ helpers.decorate = helper("7.0.2")`
}
return constructor;
}
`;
`;
Expand Up @@ -5,7 +5,7 @@
[
"external-helpers",
{
"helperVersion": "7.0.2"
"helperVersion": "7.1.5"
}
]
]
Expand Down
Expand Up @@ -5,7 +5,7 @@
[
"external-helpers",
{
"helperVersion": "7.0.2"
"helperVersion": "7.1.5"
}
]
]
Expand Down
Expand Up @@ -5,7 +5,7 @@
[
"external-helpers",
{
"helperVersion": "7.0.2"
"helperVersion": "7.1.5"
}
]
]
Expand Down
Expand Up @@ -5,7 +5,7 @@
[
"external-helpers",
{
"helperVersion": "7.0.2"
"helperVersion": "7.1.5"
}
]
]
Expand Down
Expand Up @@ -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" }]
]
}
Expand Up @@ -5,7 +5,7 @@
[
"external-helpers",
{
"helperVersion": "7.0.2"
"helperVersion": "7.1.5"
}
],
"syntax-async-generators"
Expand Down
Expand Up @@ -5,7 +5,7 @@
[
"external-helpers",
{
"helperVersion": "7.0.2"
"helperVersion": "7.1.5"
}
]
]
Expand Down
Expand Up @@ -2,6 +2,6 @@
"plugins": [
"syntax-async-generators",
"proposal-object-rest-spread",
"external-helpers"
["external-helpers", { "helperVersion": "7.1.5" }]
]
}
@@ -1,6 +1,6 @@
{
"plugins": [
"external-helpers",
["external-helpers", { "helperVersion": "7.1.5" }],
["transform-destructuring", { "useBuiltIns": true }],
"transform-spread",
"transform-parameters",
Expand Down
@@ -1,6 +1,7 @@
{
"plugins": [
["transform-destructuring", { "loose": true }],
"proposal-object-rest-spread"
"proposal-object-rest-spread",
["external-helpers", { "helperVersion": "7.1.5" }]
]
}
@@ -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;
@@ -1,6 +1,6 @@
{
"plugins": [
"external-helpers",
["external-helpers", { "helperVersion": "7.1.5" }],
"transform-destructuring",
"transform-spread",
"transform-parameters",
Expand Down

0 comments on commit 38397ce

Please sign in to comment.