ladybird/Tests/LibWeb/Text/input/HTML/DedicatedWorkerGlobalScope-instanceof.html
sin-ack d5948709cd BindingsGenerator: Handle global interfaces without named properties
DedicatedWorkerGlobalScope is an object with a Global extended
attribute, but does not define any named property getters. This needs to
be handled by setting the prototype chain to:

    DedicatedWorkerGlobalScope
    ^ DedicatedWorkerGlobalScopePrototype
    ^ WorkerGlobalScopePrototype

(This is different from something like Window, where there is an
intermediate WindowProperties object for named properties.)

Previously, we treated the GlobalMixin object as if it was a simple
prototype object, accidentally setting DedicatedWorkerGlobalScope's
prototype to WorkerGlobalScopePrototype. This caused the expression

    self instanceof DedicatedWorkerGlobalScope

to return false inside workers.

This makes us pass many more of the "/xhr/idlharness.any.worker" WPT
tests than before, rather than failing early.
2024-10-12 19:21:59 +02:00

15 lines
434 B
HTML

<script src="../include.js"></script>
<script>
asyncTest(done => {
const worker = new Worker("DedicatedWorkerGlobalScope-instanceof-worker.js");
worker.onmessage = function (event) {
if (event.data.result === true) {
println("PASS");
} else {
println("FAIL");
}
done();
};
worker.postMessage("run");
});
</script>