v154 · typed om in workers

What exists where

The same probe run in three global scopes. Every worker here is created from a blob URL and torn down afterwards, and each one reports on itself — nothing is inferred from the window.

Probe three contexts

Running…

Constructors defined in each global scope
interfaceWindowdedicated workermodule worker

The specification says [Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)] for all of these, so every cell should be "yes". A "no" in a worker column is the gap Chrome 154 closes — and it was a portability problem too, because the same code worked in Firefox and Safari.

code path

// Inside the worker. There is no CSS.supports here, so the probe is
// simply whether the global is a constructor.
const report = {};
for (const name of ["CSSStyleValue", "CSSKeywordValue", "CSSNumericValue",
                    "CSSUnitValue", "CSSUnparsedValue"]) {
  report[name] = typeof self[name] === "function";
}
postMessage(report);

see also