Closed
Description
Basic info:
- Node.js version: v18.20.3
- jsdom version: 24.1.1
Minimal reproduction case
const { JSDOM, VirtualConsole } = require("jsdom");
const virtualConsole = new VirtualConsole();
virtualConsole.sendTo(console);
const options = {
runScripts: "dangerously",
virtualConsole
};
const dom = new JSDOM(`
<script>
=> console.log(e.data);
postMessage("Hello", "*");
</script>
`, options);
This code should print "Hello" in the console, but cause a TypeError instead:
$ node test.js
/tmp/test/node_modules/jsdom/lib/jsdom/living/helpers/events.js:15
const event = createAnEvent(e, target._globalObject, eventInterface, attributes);
^
TypeError: Cannot read properties of undefined (reading '_globalObject')
at fireAnEvent (/tmp/test/node_modules/jsdom/lib/jsdom/living/helpers/events.js:15:41)
at Timeout._onTimeout (/tmp/test/node_modules/jsdom/lib/jsdom/living/post-message.js:36:7)
at listOnTimeout (node:internal/timers:569:17)
at process.processTimers (node:internal/timers:512:7)
It works if I change postMessage
to window.postMessage
:
$ node test.js
Hello
How does similar code behave in browsers?
Prints "Hello" in the console without any errors.
Metadata
Metadata
Assignees
Labels
No labels