diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-03 15:35:00 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-03 15:35:00 +0200 |
commit | de98e0b232509d5f40c135d540a70e415272ff85 (patch) | |
tree | a79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/core-js/modules/$.object-assign.js | |
parent | e0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff) |
node_modules
Diffstat (limited to 'node_modules/core-js/modules/$.object-assign.js')
-rw-r--r-- | node_modules/core-js/modules/$.object-assign.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/$.object-assign.js b/node_modules/core-js/modules/$.object-assign.js new file mode 100644 index 000000000..5ce43f781 --- /dev/null +++ b/node_modules/core-js/modules/$.object-assign.js @@ -0,0 +1,33 @@ +// 19.1.2.1 Object.assign(target, source, ...) +var $ = require('./$') + , toObject = require('./$.to-object') + , IObject = require('./$.iobject'); + +// should work with symbols and should have deterministic property order (V8 bug) +module.exports = require('./$.fails')(function(){ + var a = Object.assign + , A = {} + , B = {} + , S = Symbol() + , K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function(k){ B[k] = k; }); + return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K; +}) ? function assign(target, source){ // eslint-disable-line no-unused-vars + var T = toObject(target) + , $$ = arguments + , $$len = $$.length + , index = 1 + , getKeys = $.getKeys + , getSymbols = $.getSymbols + , isEnum = $.isEnum; + while($$len > index){ + var S = IObject($$[index++]) + , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) + , length = keys.length + , j = 0 + , key; + while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; + } + return T; +} : Object.assign;
\ No newline at end of file |