mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-24 00:49:46 +00:00
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.
15 lines
434 B
HTML
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>
|