tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

no-regexp-special-casing.any.js (1318B)


      1 "use strict";
      2 // RegExps used to be special-cased in Web IDL, but that was removed in
      3 // https://github.com/heycam/webidl/commit/bbb2bde. These tests check that implementations no longer
      4 // do any such special-casing.
      5 
      6 test(() => {
      7  const regExp = new RegExp();
      8  regExp.message = "some message";
      9 
     10  const errorEvent = new ErrorEvent("type", regExp);
     11 
     12  assert_equals(errorEvent.message, "some message");
     13 }, "Conversion to a dictionary works");
     14 
     15 test(() => {
     16  const messageChannel = new MessageChannel();
     17  const regExp = new RegExp();
     18  regExp[Symbol.iterator] = function* () {
     19    yield messageChannel.port1;
     20  };
     21 
     22  const messageEvent = new MessageEvent("type", { ports: regExp });
     23 
     24  assert_array_equals(messageEvent.ports, [messageChannel.port1]);
     25 }, "Conversion to a sequence works");
     26 
     27 promise_test(async () => {
     28  const regExp = new RegExp();
     29 
     30  const response = new Response(regExp);
     31 
     32  assert_equals(await response.text(), "/(?:)/");
     33 }, "Can convert a RegExp to a USVString");
     34 
     35 test(() => {
     36  let functionCalled = false;
     37 
     38  const regExp = new RegExp();
     39  regExp.handleEvent = () => {
     40    functionCalled = true;
     41  };
     42 
     43  self.addEventListener("testevent", regExp);
     44  self.dispatchEvent(new Event("testevent"));
     45 
     46  assert_true(functionCalled);
     47 }, "Can be used as an object implementing a callback interface");