summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webidl/ecmascript-binding/no-regexp-special-casing.any.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/webidl/ecmascript-binding/no-regexp-special-casing.any.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/webidl/ecmascript-binding/no-regexp-special-casing.any.js')
-rw-r--r--testing/web-platform/tests/webidl/ecmascript-binding/no-regexp-special-casing.any.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webidl/ecmascript-binding/no-regexp-special-casing.any.js b/testing/web-platform/tests/webidl/ecmascript-binding/no-regexp-special-casing.any.js
new file mode 100644
index 0000000000..4446dbf69c
--- /dev/null
+++ b/testing/web-platform/tests/webidl/ecmascript-binding/no-regexp-special-casing.any.js
@@ -0,0 +1,47 @@
+"use strict";
+// RegExps used to be special-cased in Web IDL, but that was removed in
+// https://github.com/heycam/webidl/commit/bbb2bde. These tests check that implementations no longer
+// do any such special-casing.
+
+test(() => {
+ const regExp = new RegExp();
+ regExp.message = "some message";
+
+ const errorEvent = new ErrorEvent("type", regExp);
+
+ assert_equals(errorEvent.message, "some message");
+}, "Conversion to a dictionary works");
+
+test(() => {
+ const messageChannel = new MessageChannel();
+ const regExp = new RegExp();
+ regExp[Symbol.iterator] = function* () {
+ yield messageChannel.port1;
+ };
+
+ const messageEvent = new MessageEvent("type", { ports: regExp });
+
+ assert_array_equals(messageEvent.ports, [messageChannel.port1]);
+}, "Conversion to a sequence works");
+
+promise_test(async () => {
+ const regExp = new RegExp();
+
+ const response = new Response(regExp);
+
+ assert_equals(await response.text(), "/(?:)/");
+}, "Can convert a RegExp to a USVString");
+
+test(() => {
+ let functionCalled = false;
+
+ const regExp = new RegExp();
+ regExp.handleEvent = () => {
+ functionCalled = true;
+ };
+
+ self.addEventListener("testevent", regExp);
+ self.dispatchEvent(new Event("testevent"));
+
+ assert_true(functionCalled);
+}, "Can be used as an object implementing a callback interface");