code: function(target, source){
  		shapeReflections.eachKey(source, function(value, key){
  			var symbol = typeReflections.isSymbolLike(canSymbol[key]) ? canSymbol[key] : canSymbol.for(key);
  			getSetReflections.setKeyValue(target, symbol, value);
  		});
  		return target;
  	}
docs: @function can-reflect.assignSymbols assignSymbols
  @parent can-reflect/shape
  @description Assign well known symbols and values to an object.
  
  @signature `.assignSymbols(target, source)`
  
  Converts each property name on the `source` object to a [can-symbol.for well known symbol]
  and uses that symbol to set the corresponding value on target.
  
  This is used to easily set symbols correctly even when symbol isn't natively supported.
  
  ```js
  canReflect.assignSymbols(Map.prototype, {
  "can.getKeyValue": Map.prototype.get
  })
  ```
  
  If a `source` property name matches a symbol on `Symbol` (like `iterator` on `Symbol.iterator`),
  that symbol will be used:
  
  ```js
  canReflect.assignSymbols(ArrayLike.prototype, {
  "iterator": function() { ... }
  })
  ArrayLike.prototype[Symbol.iterator] = function(){ ... }
  ```
  
  @param  {Object} target The value that will be updated with `source`'s symbols and values.
  @param  {Object<name,value>} source A source of symbol names and values to copy to `target`.
  @return {Object} The target.