aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/whatwg-url/lib/Function.js
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
commit76cb9c2a39d477a64824a985ade40507e3bbade1 (patch)
tree41e997aa9c6f538d3a136af61dae9424db2005a9 /vanilla/node_modules/whatwg-url/lib/Function.js
parent819a39a21ac992b1393244a4c283bbb125208c69 (diff)
downloadneko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.gz
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.bz2
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.zip
feat(vanilla): add testing infrastructure and tests (NK-wjnczv)
Diffstat (limited to 'vanilla/node_modules/whatwg-url/lib/Function.js')
-rw-r--r--vanilla/node_modules/whatwg-url/lib/Function.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/vanilla/node_modules/whatwg-url/lib/Function.js b/vanilla/node_modules/whatwg-url/lib/Function.js
new file mode 100644
index 0000000..ea8712f
--- /dev/null
+++ b/vanilla/node_modules/whatwg-url/lib/Function.js
@@ -0,0 +1,42 @@
+"use strict";
+
+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(...args) {
+ 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, globals: globalObject });
+
+ 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, globals: globalObject });
+
+ return callResult;
+ };
+
+ invokeTheCallbackFunction[utils.wrapperSymbol] = value;
+ invokeTheCallbackFunction.objectReference = value;
+
+ return invokeTheCallbackFunction;
+};