'use strict'; // modified from https://github.com/es-shims/es6-shim var objectKeys = require('object-keys'); var hasSymbols = require('has-symbols/shams')(); var callBound = require('call-bind/callBound'); var toObject = Object; var $push = callBound('Array.prototype.push'); var $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable'); var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null; // eslint-disable-next-line no-unused-vars module.exports = function assign(target, source1) { if (target == null) { throw new TypeError('target must be an object'); } var to = toObject(target); // step 1 if (arguments.length === 1) { return to; // step 2 } for (var s = 1; s < arguments.length; ++s) { var from = toObject(arguments[s]); // step 3.a.i // step 3.a.ii: var keys = objectKeys(from); var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols); if (getSymbols) { var syms = getSymbols(from); for (var j = 0; j < syms.length; ++j) { var key = syms[j]; if ($propIsEnumerable(from, key)) { $push(keys, key); } } } // step 3.a.iii: for (var i = 0; i < keys.length; ++i) { var nextKey = keys[i]; if ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2 var propValue = from[nextKey]; // step 3.a.iii.2.a to[nextKey] = propValue; // step 3.a.iii.2.b } } } return to; // step 4 };
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
.github | Folder | 0755 |
|
|
dist | Folder | 0755 |
|
|
test | Folder | 0755 |
|
|
.editorconfig | File | 286 B | 0644 |
|
.eslintrc | File | 627 B | 0644 |
|
.nycrc | File | 139 B | 0644 |
|
CHANGELOG.md | File | 8.71 KB | 0644 |
|
LICENSE | File | 1.05 KB | 0644 |
|
README.md | File | 3.77 KB | 0644 |
|
auto.js | File | 36 B | 0644 |
|
hasSymbols.js | File | 1.58 KB | 0644 |
|
implementation.js | File | 1.38 KB | 0644 |
|
index.js | File | 532 B | 0644 |
|
package.json | File | 2.25 KB | 0644 |
|
polyfill.js | File | 1.27 KB | 0644 |
|
shim.js | File | 305 B | 0644 |
|
test.html | File | 1.05 MB | 0644 |
|