Sha256: f09cee7f7d334c38a94c744131317a391b502cd2e8d924457d8362c310bd575f

Contents?: true

Size: 1.22 KB

Versions: 40

Compression:

Stored size: 1.22 KB

Contents

"use strict";

const conversions = require("webidl-conversions");
const utils = require("./utils.js");

exports.convert = (value, { context = "The provided value" } = {}) => {
  if (typeof value !== "function") {
    throw new TypeError(context + " is not a function");
  }

  function invokeTheCallbackFunction(...args) {
    if (new.target !== undefined) {
      throw new Error("Internal error: invokeTheCallbackFunction is not a constructor");
    }

    const thisArg = utils.tryWrapperForImpl(this);
    let callResult;

    for (let i = 0; i < args.length; i++) {
      args[i] = utils.tryWrapperForImpl(args[i]);
    }

    callResult = Reflect.apply(value, thisArg, args);

    callResult = conversions["any"](callResult, { context: context });

    return callResult;
  }

  invokeTheCallbackFunction.construct = (...args) => {
    for (let i = 0; i < args.length; i++) {
      args[i] = utils.tryWrapperForImpl(args[i]);
    }

    let callResult = Reflect.construct(value, args);

    callResult = conversions["any"](callResult, { context: context });

    return callResult;
  };

  invokeTheCallbackFunction[utils.wrapperSymbol] = value;
  invokeTheCallbackFunction.objectReference = value;

  return invokeTheCallbackFunction;
};

Version data entries

40 entries across 20 versions & 1 rubygems

Version Path
appmap-0.72.2 ./node_modules/whatwg-url/dist/Function.js
appmap-0.72.2 ./node_modules/jsdom/lib/jsdom/living/generated/Function.js
appmap-0.72.1 ./node_modules/whatwg-url/dist/Function.js
appmap-0.72.1 ./node_modules/jsdom/lib/jsdom/living/generated/Function.js
appmap-0.72.0 ./node_modules/jsdom/lib/jsdom/living/generated/Function.js
appmap-0.72.0 ./node_modules/whatwg-url/dist/Function.js
appmap-0.71.0 ./node_modules/whatwg-url/dist/Function.js
appmap-0.71.0 ./node_modules/jsdom/lib/jsdom/living/generated/Function.js
appmap-0.70.2 ./node_modules/whatwg-url/dist/Function.js
appmap-0.70.2 ./node_modules/jsdom/lib/jsdom/living/generated/Function.js
appmap-0.70.1 ./node_modules/whatwg-url/dist/Function.js
appmap-0.70.1 ./node_modules/jsdom/lib/jsdom/living/generated/Function.js
appmap-0.70.0 ./node_modules/whatwg-url/dist/Function.js
appmap-0.70.0 ./node_modules/jsdom/lib/jsdom/living/generated/Function.js
appmap-0.69.0 ./node_modules/whatwg-url/dist/Function.js
appmap-0.69.0 ./node_modules/jsdom/lib/jsdom/living/generated/Function.js
appmap-0.68.2 ./node_modules/whatwg-url/dist/Function.js
appmap-0.68.2 ./node_modules/jsdom/lib/jsdom/living/generated/Function.js
appmap-0.68.1 ./node_modules/jsdom/lib/jsdom/living/generated/Function.js
appmap-0.68.1 ./node_modules/whatwg-url/dist/Function.js