mirror of
https://github.com/denoland/deno.git
synced 2024-12-22 07:14:47 -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:
parent
b518f5e1ba
commit
c49eee551f
3 changed files with 10 additions and 16 deletions
9
cli/tests/testdata/workers/deno_worker.ts
vendored
9
cli/tests/testdata/workers/deno_worker.ts
vendored
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue