EventHandlerNonNull.js 1011 B

123456789101112131415161718192021222324252627282930313233343536
  1. "use strict";
  2. const conversions = require("webidl-conversions");
  3. const utils = require("./utils.js");
  4. exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
  5. function invokeTheCallbackFunction(event) {
  6. const thisArg = utils.tryWrapperForImpl(this);
  7. let callResult;
  8. if (typeof value === "function") {
  9. event = utils.tryWrapperForImpl(event);
  10. callResult = Reflect.apply(value, thisArg, [event]);
  11. }
  12. callResult = conversions["any"](callResult, { context: context, globals: globalObject });
  13. return callResult;
  14. }
  15. invokeTheCallbackFunction.construct = event => {
  16. event = utils.tryWrapperForImpl(event);
  17. let callResult = Reflect.construct(value, [event]);
  18. callResult = conversions["any"](callResult, { context: context, globals: globalObject });
  19. return callResult;
  20. };
  21. invokeTheCallbackFunction[utils.wrapperSymbol] = value;
  22. invokeTheCallbackFunction.objectReference = value;
  23. return invokeTheCallbackFunction;
  24. };