38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
"use strict";
|
|
|
|
console.log("initial-message-from-worker", { foo: "bar" }, globalThis);
|
|
|
|
self.addEventListener("message", function onMessage(event) {
|
|
const { type, message } = event.data;
|
|
|
|
// Override Date.prototype.getTime and RegExp.toString to make sure those are not
|
|
// called when logging to the console (see Bug 1892638)
|
|
const date = new Date(2024, 0, 1);
|
|
date.getTime = () => {
|
|
return 42;
|
|
};
|
|
// eslint-disable-next-line no-extend-native
|
|
Date.prototype.getTime = date.getTime;
|
|
const regexp = /foo/m;
|
|
regexp.toString = () => {
|
|
return "24";
|
|
};
|
|
|
|
switch (type) {
|
|
case "log":
|
|
console.log(message);
|
|
break;
|
|
case "error":
|
|
throw new Error(message);
|
|
case "log-objects":
|
|
console.log("log-from-worker", message, globalThis);
|
|
console.log(Symbol("logged-symbol-from-worker"));
|
|
console.log(["array-item", 42, { key: "value" }]);
|
|
console.log("sab-from-worker", event.data.sab);
|
|
|
|
/* Check if page functions can be called by console previewers */
|
|
console.log("date-from-worker", date);
|
|
console.log("regexp-from-worker", regexp, /not-overloaded/g);
|
|
break;
|
|
}
|
|
});
|