Spaces:
Paused
Paused
| ; | |
| const conversions = require("webidl-conversions"); | |
| const utils = require("./utils.js"); | |
| exports.convert = (globalObject, value, { context = "The provided value" } = {}) => { | |
| if (typeof value !== "function") { | |
| throw new globalObject.TypeError(context + " is not a function"); | |
| } | |
| function invokeTheCallbackFunction() { | |
| const thisArg = utils.tryWrapperForImpl(this); | |
| let callResult; | |
| callResult = Reflect.apply(value, thisArg, []); | |
| callResult = conversions["any"](callResult, { context: context, globals: globalObject }); | |
| return callResult; | |
| } | |
| invokeTheCallbackFunction.construct = () => { | |
| let callResult = Reflect.construct(value, []); | |
| callResult = conversions["any"](callResult, { context: context, globals: globalObject }); | |
| return callResult; | |
| }; | |
| invokeTheCallbackFunction[utils.wrapperSymbol] = value; | |
| invokeTheCallbackFunction.objectReference = value; | |
| return invokeTheCallbackFunction; | |
| }; | |