| | |
| | | 'use strict'; |
| | | var DESCRIPTORS = require('../internals/descriptors'); |
| | | var uncurryThis = require('../internals/function-uncurry-this'); |
| | | var call = require('../internals/function-call'); |
| | | var fails = require('../internals/fails'); |
| | | var objectKeys = require('../internals/object-keys'); |
| | | var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols'); |
| | |
| | | var toObject = require('../internals/to-object'); |
| | | var IndexedObject = require('../internals/indexed-object'); |
| | | |
| | | // eslint-disable-next-line es/no-object-assign -- safe |
| | | // eslint-disable-next-line es-x/no-object-assign -- safe |
| | | var $assign = Object.assign; |
| | | // eslint-disable-next-line es/no-object-defineproperty -- required for testing |
| | | // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing |
| | | var defineProperty = Object.defineProperty; |
| | | var concat = uncurryThis([].concat); |
| | | |
| | | // `Object.assign` method |
| | | // https://tc39.es/ecma262/#sec-object.assign |
| | |
| | | // should work with symbols and should have deterministic property order (V8 bug) |
| | | var A = {}; |
| | | var B = {}; |
| | | // eslint-disable-next-line es/no-symbol -- safe |
| | | // eslint-disable-next-line es-x/no-symbol -- safe |
| | | var symbol = Symbol(); |
| | | var alphabet = 'abcdefghijklmnopqrst'; |
| | | A[symbol] = 7; |
| | |
| | | var propertyIsEnumerable = propertyIsEnumerableModule.f; |
| | | while (argumentsLength > index) { |
| | | var S = IndexedObject(arguments[index++]); |
| | | var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S); |
| | | var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); |
| | | var length = keys.length; |
| | | var j = 0; |
| | | var key; |
| | | while (length > j) { |
| | | key = keys[j++]; |
| | | if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key]; |
| | | if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; |
| | | } |
| | | } return T; |
| | | } : $assign; |