Retry to fix object spread helper compatibility (#9384)
This reverts commit 43b83f8ed7545b9c049eeed85541fa162842fb8f. Fix objectSpread helper breaking old codes remove tests to regenerate later renamed output new name try using word add comment as requested revert inline name changes add 2 for consistency Update packages/babel-helpers/src/helpers.js Co-Authored-By: Daniel Tschinder <daniel@tschinder.de>
This commit is contained in:
parent
1cfb92d66a
commit
a596da2822
@ -384,6 +384,7 @@ helpers.extends = helper("7.0.0-beta.0")`
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
// This old helper can be removed in babel v8
|
||||||
helpers.objectSpread = helper("7.0.0-beta.0")`
|
helpers.objectSpread = helper("7.0.0-beta.0")`
|
||||||
import defineProperty from "defineProperty";
|
import defineProperty from "defineProperty";
|
||||||
|
|
||||||
@ -404,6 +405,30 @@ helpers.objectSpread = helper("7.0.0-beta.0")`
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
helpers.objectSpread2 = helper("7.0.0-beta.0")`
|
||||||
|
import defineProperty from "defineProperty";
|
||||||
|
|
||||||
|
export default function _objectSpread2(target) {
|
||||||
|
for (var i = 1; i < arguments.length; i++) {
|
||||||
|
if (i % 2) {
|
||||||
|
var source = (arguments[i] != null) ? arguments[i] : {};
|
||||||
|
var ownKeys = Object.keys(source);
|
||||||
|
if (typeof Object.getOwnPropertySymbols === 'function') {
|
||||||
|
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
||||||
|
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
ownKeys.forEach(function(key) {
|
||||||
|
defineProperty(target, key, source[key]);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
helpers.inherits = helper("7.0.0-beta.0")`
|
helpers.inherits = helper("7.0.0-beta.0")`
|
||||||
import setPrototypeOf from "setPrototypeOf";
|
import setPrototypeOf from "setPrototypeOf";
|
||||||
|
|
||||||
|
|||||||
@ -431,15 +431,10 @@ export default declare((api, opts) => {
|
|||||||
let props = [];
|
let props = [];
|
||||||
|
|
||||||
function push() {
|
function push() {
|
||||||
if (!props.length) return;
|
|
||||||
args.push(t.objectExpression(props));
|
args.push(t.objectExpression(props));
|
||||||
props = [];
|
props = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t.isSpreadElement(path.node.properties[0])) {
|
|
||||||
args.push(t.objectExpression([]));
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const prop of (path.node.properties: Array)) {
|
for (const prop of (path.node.properties: Array)) {
|
||||||
if (t.isSpreadElement(prop)) {
|
if (t.isSpreadElement(prop)) {
|
||||||
push();
|
push();
|
||||||
@ -449,13 +444,15 @@ export default declare((api, opts) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (props.length) {
|
||||||
push();
|
push();
|
||||||
|
}
|
||||||
|
|
||||||
let helper;
|
let helper;
|
||||||
if (loose) {
|
if (loose) {
|
||||||
helper = getExtendsHelper(file);
|
helper = getExtendsHelper(file);
|
||||||
} else {
|
} else {
|
||||||
helper = file.addHelper("objectSpread");
|
helper = file.addHelper("objectSpread2");
|
||||||
}
|
}
|
||||||
|
|
||||||
path.replaceWith(t.callExpression(helper, args));
|
path.replaceWith(t.callExpression(helper, args));
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
|
||||||
|
|
||||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,8 @@
|
|||||||
|
var log = [];
|
||||||
|
|
||||||
|
var a = {
|
||||||
|
...{ get foo() { log.push(1); } },
|
||||||
|
get bar() { log.push(2); }
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(log).toEqual([1]);
|
||||||
@ -4,4 +4,6 @@
|
|||||||
|
|
||||||
({ ...{ foo: 'bar' } });
|
({ ...{ foo: 'bar' } });
|
||||||
|
|
||||||
|
({ ...{ foo: 'bar' }, ...{ bar: 'baz' } });
|
||||||
|
|
||||||
({ ...{ get foo () { return 'foo' } } });
|
({ ...{ get foo () { return 'foo' } } });
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
|
||||||
|
|
||||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
@ -16,6 +16,12 @@ _objectSpread({}, {
|
|||||||
foo: 'bar'
|
foo: 'bar'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_objectSpread({}, {
|
||||||
|
foo: 'bar'
|
||||||
|
}, {}, {
|
||||||
|
bar: 'baz'
|
||||||
|
});
|
||||||
|
|
||||||
_objectSpread({}, {
|
_objectSpread({}, {
|
||||||
get foo() {
|
get foo() {
|
||||||
return 'foo';
|
return 'foo';
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
|
||||||
|
|
||||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
|||||||
@ -296,7 +296,7 @@ require("core-js/modules/web.dom.iterable");
|
|||||||
|
|
||||||
require("regenerator-runtime/runtime");
|
require("regenerator-runtime/runtime");
|
||||||
|
|
||||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
|
||||||
|
|
||||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,9 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
require("core-js/modules/es7.object.get-own-property-descriptors");
|
||||||
|
|
||||||
|
require("core-js/modules/es6.object.define-properties");
|
||||||
|
|
||||||
require("core-js/modules/es6.array.for-each");
|
require("core-js/modules/es6.array.for-each");
|
||||||
|
|
||||||
require("core-js/modules/es6.array.filter");
|
require("core-js/modules/es6.array.filter");
|
||||||
@ -24,7 +28,7 @@ require("core-js/modules/es6.promise");
|
|||||||
|
|
||||||
require("core-js/modules/es6.object.to-string");
|
require("core-js/modules/es6.object.to-string");
|
||||||
|
|
||||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
|
||||||
|
|
||||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
|
||||||
|
|
||||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user