Fix object spread according to spec (#7034)

This commit is contained in:
Andrea Puddu
2018-02-17 02:06:17 +01:00
committed by Justin Ridgewell
parent e732ee0c5b
commit ee6dfd1580
22 changed files with 177 additions and 36 deletions

View File

@@ -374,6 +374,26 @@ helpers.extends = defineHelper(`
}
`);
helpers.objectSpread = defineHelper(`
import defineProperty from "defineProperty";
export default 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;
}
`);
helpers.get = defineHelper(`
export default function _get(object, property, receiver) {
if (object === null) object = Function.prototype;