1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 15:24:46 -05:00

feat(workers): Make the Deno namespace configurable and unfrozen (#11888)

This is the worker counterpart of PR #11062.
This commit is contained in:
Andreu Botella 2021-08-31 19:33:03 +02:00 committed by GitHub
parent b518f5e1ba
commit c49eee551f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 16 deletions

View file

@ -1,7 +1,16 @@
import { assert } from "../../../../test_util/std/testing/asserts.ts";
onmessage = function (e) {
if (typeof self.Deno === "undefined") {
throw new Error("Deno namespace not available in worker");
}
assert(!Object.isFrozen(self.Deno));
const desc = Object.getOwnPropertyDescriptor(self, "Deno");
assert(desc);
assert(desc.configurable);
assert(!desc.writable);
postMessage(e.data);
};

View file

@ -3,7 +3,6 @@
((window) => {
const {
ObjectDefineProperty,
StringPrototypeReplace,
TypeError,
Promise,
@ -55,18 +54,6 @@
return promise;
}
function immutableDefine(
o,
p,
value,
) {
ObjectDefineProperty(o, p, {
value,
configurable: false,
writable: false,
});
}
// Keep in sync with `fromFileUrl()` in `std/path/win32.ts`.
function pathFromURLWin32(url) {
let p = StringPrototypeReplace(
@ -164,7 +151,6 @@
createResolvable,
assert,
AssertionError,
immutableDefine,
pathFromURL,
writable,
nonEnumerable,

View file

@ -695,8 +695,7 @@ delete Object.prototype.__proto__;
});
// Setup `Deno` global - we're actually overriding already
// existing global `Deno` with `Deno` namespace from "./deno.ts".
util.immutableDefine(globalThis, "Deno", finalDenoNs);
ObjectFreeze(globalThis.Deno);
ObjectDefineProperty(globalThis, "Deno", util.readOnly(finalDenoNs));
ObjectFreeze(globalThis.Deno.core);
signals.setSignals();
} else {