| /*! |
| * assign-symbols <https://github.com/jonschlinkert/assign-symbols> |
| * |
| * Copyright (c) 2015, Jon Schlinkert. |
| * Licensed under the MIT License. |
| */ |
| |
| 'use strict'; |
| |
| module.exports = function(receiver, objects) { |
| if (receiver === null || typeof receiver === 'undefined') { |
| throw new TypeError('expected first argument to be an object.'); |
| } |
| |
| if (typeof objects === 'undefined' || typeof Symbol === 'undefined') { |
| return receiver; |
| } |
| |
| if (typeof Object.getOwnPropertySymbols !== 'function') { |
| return receiver; |
| } |
| |
| var isEnumerable = Object.prototype.propertyIsEnumerable; |
| var target = Object(receiver); |
| var len = arguments.length, i = 0; |
| |
| while (++i < len) { |
| var provider = Object(arguments[i]); |
| var names = Object.getOwnPropertySymbols(provider); |
| |
| for (var j = 0; j < names.length; j++) { |
| var key = names[j]; |
| |
| if (isEnumerable.call(provider, key)) { |
| target[key] = provider[key]; |
| } |
| } |
| } |
| return target; |
| }; |