aboutsummaryrefslogtreecommitdiff
path: root/node_modules/core-js/modules/$.object-assign.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/core-js/modules/$.object-assign.js')
-rw-r--r--node_modules/core-js/modules/$.object-assign.js33
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