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-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/tests/webidl/ecmascript-binding/no-regexp-special-casing.any.js
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esr
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");