UNPKG

886 BJavaScriptView Raw
1var $ = require('../internals/export');
2var getBuiltIn = require('../internals/get-built-in');
3var aFunction = require('../internals/a-function');
4var anObject = require('../internals/an-object');
5var fails = require('../internals/fails');
6
7var nativeApply = getBuiltIn('Reflect', 'apply');
8var functionApply = Function.apply;
9
10// MS Edge argumentsList argument is optional
11var OPTIONAL_ARGUMENTS_LIST = !fails(function () {
12 nativeApply(function () { /* empty */ });
13});
14
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) {
19 aFunction(target);
20 anObject(argumentsList);
21 return nativeApply
22 ? nativeApply(target, thisArgument, argumentsList)
23 : functionApply.call(target, thisArgument, argumentsList);
24 }
25});