code: function(func, context, args){
  		var apply = func[canSymbol.for("can.apply")];
  		if(apply) {
  			return apply.call(func, context, args);
  		} else {
  			return func.apply(context, args);
  		}
  	}
docs: @function {function(...), Object, ...} can-reflect/call.apply apply
  @parent can-reflect/call
  @description  Call a callable, with a context object and a list of parameters
  
  @signature `apply(func, context, args)`
  
  Call the callable `func` as if it were a function, bound to `context` and with any additional parameters
  contained in the Array-like `args`
  
  Note that `func` *must* either be natively callable, implement [can-symbol/symbols/apply @@@@can.apply],
  or have a callable `apply` property to work with `canReflect.apply`
  
  ```js
  var compute = canCompute("foo");
  
  canReflect.apply(compute, null, ["bar"]);
  canReflect.apply(compute, null, []); // -> "bar"
  ```
  
  @param  {function(...)} func the function to call
  @param  {Object} context the context object to set as `this` on the function call
  @param  {*} args arguments to be passed to the function call
  @return {*}  return types and values are determined by the call to `func`