1 var $ = require('../internals/export');
2 var getBuiltIn = require('../internals/get-built-in');
3 var aFunction = require('../internals/a-function');
4 var anObject = require('../internals/an-object');
5 var fails = require('../internals/fails');
7 var nativeApply = getBuiltIn('Reflect', 'apply');
8 var functionApply = Function.apply;
10 // MS Edge argumentsList argument is optional
11 var OPTIONAL_ARGUMENTS_LIST = !fails(function () {
12 nativeApply(function () { /* empty */ });
15 // `Reflect.apply` method
16 // https://tc39.es/ecma262/#sec-reflect.apply
17 $({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {
18 apply: function apply(target, thisArgument, argumentsList) {
20 anObject(argumentsList);
22 ? nativeApply(target, thisArgument, argumentsList)
23 : functionApply.call(target, thisArgument, argumentsList);