mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
fix(runtime): use more null proto objects again (#25040)
proceed with #23921 This PR is a preparation for https://github.com/denoland/deno_lint/pull/1307 --------- Signed-off-by: Kenta Moriuchi <moriken@kimamass.com> Co-authored-by: Luca Casonato <hello@lcas.dev>
This commit is contained in:
parent
8ef08f1d29
commit
f0a3d20642
34 changed files with 144 additions and 20 deletions
|
@ -260,6 +260,7 @@ const colors = {
|
|||
|
||||
function defineColorAlias(target, alias) {
|
||||
ObjectDefineProperty(colors, alias, {
|
||||
__proto__: null,
|
||||
get() {
|
||||
return this[target];
|
||||
},
|
||||
|
@ -3447,7 +3448,10 @@ function inspect(
|
|||
function createFilteredInspectProxy({ object, keys, evaluate }) {
|
||||
const obj = class {};
|
||||
if (object.constructor?.name) {
|
||||
ObjectDefineProperty(obj, "name", { value: object.constructor.name });
|
||||
ObjectDefineProperty(obj, "name", {
|
||||
__proto__: null,
|
||||
value: object.constructor.name,
|
||||
});
|
||||
}
|
||||
|
||||
return new Proxy(new obj(), {
|
||||
|
|
|
@ -263,6 +263,7 @@ function mixinBody(prototype, bodySymbol, mimeTypeSymbol) {
|
|||
/** @type {PropertyDescriptorMap} */
|
||||
const mixin = {
|
||||
body: {
|
||||
__proto__: null,
|
||||
/**
|
||||
* @returns {ReadableStream<Uint8Array> | null}
|
||||
*/
|
||||
|
@ -278,6 +279,7 @@ function mixinBody(prototype, bodySymbol, mimeTypeSymbol) {
|
|||
enumerable: true,
|
||||
},
|
||||
bodyUsed: {
|
||||
__proto__: null,
|
||||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
|
@ -292,6 +294,7 @@ function mixinBody(prototype, bodySymbol, mimeTypeSymbol) {
|
|||
enumerable: true,
|
||||
},
|
||||
arrayBuffer: {
|
||||
__proto__: null,
|
||||
/** @returns {Promise<ArrayBuffer>} */
|
||||
value: function arrayBuffer() {
|
||||
return consumeBody(this, "ArrayBuffer");
|
||||
|
@ -301,6 +304,7 @@ function mixinBody(prototype, bodySymbol, mimeTypeSymbol) {
|
|||
enumerable: true,
|
||||
},
|
||||
blob: {
|
||||
__proto__: null,
|
||||
/** @returns {Promise<Blob>} */
|
||||
value: function blob() {
|
||||
return consumeBody(this, "Blob");
|
||||
|
@ -310,6 +314,7 @@ function mixinBody(prototype, bodySymbol, mimeTypeSymbol) {
|
|||
enumerable: true,
|
||||
},
|
||||
bytes: {
|
||||
__proto__: null,
|
||||
/** @returns {Promise<Uint8Array>} */
|
||||
value: function bytes() {
|
||||
return consumeBody(this, "bytes");
|
||||
|
@ -319,6 +324,7 @@ function mixinBody(prototype, bodySymbol, mimeTypeSymbol) {
|
|||
enumerable: true,
|
||||
},
|
||||
formData: {
|
||||
__proto__: null,
|
||||
/** @returns {Promise<FormData>} */
|
||||
value: function formData() {
|
||||
return consumeBody(this, "FormData");
|
||||
|
@ -328,6 +334,7 @@ function mixinBody(prototype, bodySymbol, mimeTypeSymbol) {
|
|||
enumerable: true,
|
||||
},
|
||||
json: {
|
||||
__proto__: null,
|
||||
/** @returns {Promise<any>} */
|
||||
value: function json() {
|
||||
return consumeBody(this, "JSON");
|
||||
|
@ -337,6 +344,7 @@ function mixinBody(prototype, bodySymbol, mimeTypeSymbol) {
|
|||
enumerable: true,
|
||||
},
|
||||
text: {
|
||||
__proto__: null,
|
||||
/** @returns {Promise<string>} */
|
||||
value: function text() {
|
||||
return consumeBody(this, "text");
|
||||
|
|
|
@ -42,6 +42,7 @@ class HttpClient {
|
|||
*/
|
||||
constructor(rid) {
|
||||
ObjectDefineProperty(this, internalRidSymbol, {
|
||||
__proto__: null,
|
||||
enumerable: false,
|
||||
value: rid,
|
||||
});
|
||||
|
|
|
@ -432,9 +432,9 @@ class Response {
|
|||
|
||||
webidl.configureInterface(Response);
|
||||
ObjectDefineProperties(Response, {
|
||||
json: { enumerable: true },
|
||||
redirect: { enumerable: true },
|
||||
error: { enumerable: true },
|
||||
json: { __proto__: null, enumerable: true },
|
||||
redirect: { __proto__: null, enumerable: true },
|
||||
error: { __proto__: null, enumerable: true },
|
||||
});
|
||||
const ResponsePrototype = Response.prototype;
|
||||
mixinBody(ResponsePrototype, _body, _mimeType);
|
||||
|
|
|
@ -355,12 +355,15 @@ const EventSourcePrototype = EventSource.prototype;
|
|||
|
||||
ObjectDefineProperties(EventSource, {
|
||||
CONNECTING: {
|
||||
__proto__: null,
|
||||
value: 0,
|
||||
},
|
||||
OPEN: {
|
||||
__proto__: null,
|
||||
value: 1,
|
||||
},
|
||||
CLOSED: {
|
||||
__proto__: null,
|
||||
value: 2,
|
||||
},
|
||||
});
|
||||
|
|
|
@ -484,10 +484,11 @@ class DynamicLibrary {
|
|||
this.symbols,
|
||||
symbol,
|
||||
{
|
||||
__proto__: null,
|
||||
configurable: false,
|
||||
enumerable: true,
|
||||
value,
|
||||
writable: false,
|
||||
value,
|
||||
},
|
||||
);
|
||||
continue;
|
||||
|
@ -504,8 +505,10 @@ class DynamicLibrary {
|
|||
this.symbols,
|
||||
symbol,
|
||||
{
|
||||
__proto__: null,
|
||||
configurable: false,
|
||||
enumerable: true,
|
||||
writable: false,
|
||||
value: (...parameters) => {
|
||||
if (isStructResult) {
|
||||
const buffer = new Uint8Array(structSize);
|
||||
|
@ -527,7 +530,6 @@ class DynamicLibrary {
|
|||
);
|
||||
}
|
||||
},
|
||||
writable: false,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
|
@ -585,6 +585,7 @@ class FsFile {
|
|||
|
||||
constructor(rid, symbol) {
|
||||
ObjectDefineProperty(this, internalRidSymbol, {
|
||||
__proto__: null,
|
||||
enumerable: false,
|
||||
value: rid,
|
||||
});
|
||||
|
|
|
@ -103,11 +103,13 @@ class Conn {
|
|||
constructor(rid, remoteAddr, localAddr) {
|
||||
if (internals.future) {
|
||||
ObjectDefineProperty(this, "rid", {
|
||||
__proto__: null,
|
||||
enumerable: false,
|
||||
value: undefined,
|
||||
});
|
||||
}
|
||||
ObjectDefineProperty(this, internalRidSymbol, {
|
||||
__proto__: null,
|
||||
enumerable: false,
|
||||
value: rid,
|
||||
});
|
||||
|
@ -214,6 +216,7 @@ class TcpConn extends Conn {
|
|||
constructor(rid, remoteAddr, localAddr) {
|
||||
super(rid, remoteAddr, localAddr);
|
||||
ObjectDefineProperty(this, internalRidSymbol, {
|
||||
__proto__: null,
|
||||
enumerable: false,
|
||||
value: rid,
|
||||
});
|
||||
|
@ -244,6 +247,7 @@ class UnixConn extends Conn {
|
|||
constructor(rid, remoteAddr, localAddr) {
|
||||
super(rid, remoteAddr, localAddr);
|
||||
ObjectDefineProperty(this, internalRidSymbol, {
|
||||
__proto__: null,
|
||||
enumerable: false,
|
||||
value: rid,
|
||||
});
|
||||
|
@ -269,11 +273,13 @@ class Listener {
|
|||
constructor(rid, addr) {
|
||||
if (internals.future) {
|
||||
ObjectDefineProperty(this, "rid", {
|
||||
__proto__: null,
|
||||
enumerable: false,
|
||||
value: undefined,
|
||||
});
|
||||
}
|
||||
ObjectDefineProperty(this, internalRidSymbol, {
|
||||
__proto__: null,
|
||||
enumerable: false,
|
||||
value: rid,
|
||||
});
|
||||
|
|
|
@ -30,6 +30,7 @@ class TlsConn extends Conn {
|
|||
constructor(rid, remoteAddr, localAddr) {
|
||||
super(rid, remoteAddr, localAddr);
|
||||
ObjectDefineProperty(this, internalRidSymbol, {
|
||||
__proto__: null,
|
||||
enumerable: false,
|
||||
value: rid,
|
||||
});
|
||||
|
@ -110,6 +111,7 @@ class TlsListener extends Listener {
|
|||
constructor(rid, addr) {
|
||||
super(rid, addr);
|
||||
ObjectDefineProperty(this, internalRidSymbol, {
|
||||
__proto__: null,
|
||||
enumerable: false,
|
||||
value: rid,
|
||||
});
|
||||
|
|
|
@ -29,6 +29,7 @@ if (process.env.CHILD) {
|
|||
const start = performance.now();
|
||||
|
||||
const options = {
|
||||
__proto__: null,
|
||||
"stdio": ["inherit", "inherit", "inherit", "ipc"],
|
||||
"env": { "CHILD": len.toString() },
|
||||
};
|
||||
|
|
|
@ -60,7 +60,7 @@ export class BrotliDecompress extends Transform {
|
|||
#context;
|
||||
|
||||
// TODO(littledivy): use `options` argument
|
||||
constructor(_options = {}) {
|
||||
constructor(_options = { __proto__: null }) {
|
||||
super({
|
||||
// TODO(littledivy): use `encoding` argument
|
||||
transform(chunk, _encoding, callback) {
|
||||
|
@ -91,7 +91,7 @@ export class BrotliDecompress extends Transform {
|
|||
export class BrotliCompress extends Transform {
|
||||
#context;
|
||||
|
||||
constructor(options = {}) {
|
||||
constructor(options = { __proto__: null }) {
|
||||
super({
|
||||
// TODO(littledivy): use `encoding` argument
|
||||
transform(chunk, _encoding, callback) {
|
||||
|
|
|
@ -65,22 +65,26 @@ export function createWritableStdioStream(writer, name, warmup = false) {
|
|||
stream.once("close", () => writer?.close());
|
||||
ObjectDefineProperties(stream, {
|
||||
columns: {
|
||||
__proto__: null,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
get: () =>
|
||||
writer?.isTerminal() ? Deno.consoleSize?.().columns : undefined,
|
||||
},
|
||||
rows: {
|
||||
__proto__: null,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
get: () => writer?.isTerminal() ? Deno.consoleSize?.().rows : undefined,
|
||||
},
|
||||
isTTY: {
|
||||
__proto__: null,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
get: () => writer?.isTerminal(),
|
||||
},
|
||||
getWindowSize: {
|
||||
__proto__: null,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
value: () =>
|
||||
|
@ -203,6 +207,7 @@ export const initStdin = (warmup = false) => {
|
|||
stdin.on("close", () => io.stdin?.close());
|
||||
stdin.fd = io.stdin ? io.STDIN_RID : -1;
|
||||
ObjectDefineProperty(stdin, "isTTY", {
|
||||
__proto__: null,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
get() {
|
||||
|
@ -216,6 +221,7 @@ export const initStdin = (warmup = false) => {
|
|||
return stdin;
|
||||
};
|
||||
ObjectDefineProperty(stdin, "isRaw", {
|
||||
__proto__: null,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
get() {
|
||||
|
|
|
@ -13,7 +13,7 @@ import { clearTimeout, setTimeout } from "ext:deno_web/02_timers.js";
|
|||
/** Resolve a Promise after a given amount of milliseconds. */
|
||||
export function delay(
|
||||
ms: number,
|
||||
options: { signal?: AbortSignal } = {},
|
||||
options: { signal?: AbortSignal } = { __proto__: null },
|
||||
): Promise<void> {
|
||||
const { signal } = options;
|
||||
if (signal?.aborted) {
|
||||
|
|
|
@ -325,7 +325,10 @@ export function diffstr(A: string, B: string) {
|
|||
);
|
||||
}
|
||||
|
||||
function tokenize(string: string, { wordDiff = false } = {}): string[] {
|
||||
function tokenize(
|
||||
string: string,
|
||||
{ wordDiff = false } = { __proto__: null },
|
||||
): string[] {
|
||||
if (wordDiff) {
|
||||
// Split string on whitespace symbols
|
||||
const tokens = StringPrototypeSplit(string, WHITESPACE_SYMBOL_PATTERN);
|
||||
|
@ -450,7 +453,7 @@ export function diffstr(A: string, B: string) {
|
|||
*/
|
||||
function createColor(
|
||||
diffType: DiffType,
|
||||
{ background = false } = {},
|
||||
{ background = false } = { __proto__: null },
|
||||
): (s: string) => string {
|
||||
// TODO(@littledivy): Remove this when we can detect
|
||||
// true color terminals.
|
||||
|
@ -484,7 +487,7 @@ function createSign(diffType: DiffType): string {
|
|||
|
||||
export function buildMessage(
|
||||
diffResult: ReadonlyArray<DiffResult<string>>,
|
||||
{ stringDiff = false } = {},
|
||||
{ stringDiff = false } = { __proto__: null },
|
||||
): string[] {
|
||||
const messages: string[] = [], diffMessages: string[] = [];
|
||||
ArrayPrototypePush(messages, "");
|
||||
|
|
|
@ -403,6 +403,7 @@ StringDecoder.prototype.text = function text(
|
|||
|
||||
ObjectDefineProperties(StringDecoder.prototype, {
|
||||
lastNeed: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get(this: StringDecoder): number {
|
||||
|
@ -410,6 +411,7 @@ ObjectDefineProperties(StringDecoder.prototype, {
|
|||
},
|
||||
},
|
||||
lastTotal: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get(this: StringDecoder): number {
|
||||
|
|
|
@ -33,6 +33,7 @@ export function setTimeout(
|
|||
}
|
||||
|
||||
ObjectDefineProperty(setTimeout, promisify.custom, {
|
||||
__proto__: null,
|
||||
value: (timeout: number, ...args: unknown[]) => {
|
||||
return new Promise((cb) =>
|
||||
setTimeout(cb, timeout, ...new SafeArrayIterator(args))
|
||||
|
|
|
@ -177,6 +177,7 @@ export function inherits<T, U>(
|
|||
);
|
||||
}
|
||||
ObjectDefineProperty(ctor, "super_", {
|
||||
__proto__: null,
|
||||
value: superCtor,
|
||||
writable: true,
|
||||
configurable: true,
|
||||
|
|
|
@ -34,7 +34,7 @@ const kParsingContext = Symbol("script parsing context");
|
|||
export class Script {
|
||||
#inner;
|
||||
|
||||
constructor(code, options = {}) {
|
||||
constructor(code, options = { __proto__: null }) {
|
||||
code = `${code}`;
|
||||
if (typeof options === "string") {
|
||||
options = { filename: options };
|
||||
|
@ -80,7 +80,7 @@ export class Script {
|
|||
: undefined;
|
||||
}
|
||||
|
||||
#runInContext(contextifiedObject, options = {}) {
|
||||
#runInContext(contextifiedObject, options = { __proto__: null }) {
|
||||
validateObject(options, "options");
|
||||
|
||||
let timeout = options.timeout;
|
||||
|
@ -181,7 +181,10 @@ function getContextOptions(options) {
|
|||
}
|
||||
|
||||
let defaultContextNameIndex = 1;
|
||||
export function createContext(contextObject = {}, options = {}) {
|
||||
export function createContext(
|
||||
contextObject = {},
|
||||
options = { __proto__: null },
|
||||
) {
|
||||
if (isContext(contextObject)) {
|
||||
return contextObject;
|
||||
}
|
||||
|
@ -276,7 +279,7 @@ export function isContext(object) {
|
|||
return op_vm_is_context(object);
|
||||
}
|
||||
|
||||
export function compileFunction(code, params, options = {}) {
|
||||
export function compileFunction(code, params, options = { __proto__: null }) {
|
||||
validateString(code, "code");
|
||||
if (params !== undefined) {
|
||||
validateStringArray(params, "params");
|
||||
|
|
|
@ -267,7 +267,7 @@ class NodeWorker extends EventEmitter {
|
|||
}
|
||||
};
|
||||
|
||||
postMessage(message, transferOrOptions = {}) {
|
||||
postMessage(message, transferOrOptions = { __proto__: null }) {
|
||||
const prefix = "Failed to execute 'postMessage' on 'MessagePort'";
|
||||
webidl.requiredArguments(arguments.length, 1, prefix);
|
||||
message = webidl.converters.any(message);
|
||||
|
|
|
@ -186,7 +186,7 @@ const entries = ObjectEntries({
|
|||
});
|
||||
for (let i = 0; i < entries.length; ++i) {
|
||||
const { 0: key, 1: value } = entries[i];
|
||||
const desc = { value, enumerable: true };
|
||||
const desc = { __proto__: null, value, enumerable: true };
|
||||
ObjectDefineProperty(DOMException, key, desc);
|
||||
ObjectDefineProperty(DOMException.prototype, key, desc);
|
||||
}
|
||||
|
|
|
@ -392,6 +392,7 @@ const EventPrototype = Event.prototype;
|
|||
// Not spec compliant. The spec defines it as [LegacyUnforgeable]
|
||||
// but doing so has a big performance hit
|
||||
ReflectDefineProperty(Event.prototype, "isTrusted", {
|
||||
__proto__: null,
|
||||
enumerable: true,
|
||||
get: isTrusted,
|
||||
});
|
||||
|
@ -402,7 +403,10 @@ function defineEnumerableProps(
|
|||
) {
|
||||
for (let i = 0; i < props.length; ++i) {
|
||||
const prop = props[i];
|
||||
ReflectDefineProperty(Ctor.prototype, prop, { enumerable: true });
|
||||
ReflectDefineProperty(Ctor.prototype, prop, {
|
||||
__proto__: null,
|
||||
enumerable: true,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1274,6 +1278,7 @@ class CustomEvent extends Event {
|
|||
const CustomEventPrototype = CustomEvent.prototype;
|
||||
|
||||
ReflectDefineProperty(CustomEvent.prototype, "detail", {
|
||||
__proto__: null,
|
||||
enumerable: true,
|
||||
});
|
||||
|
||||
|
@ -1417,6 +1422,7 @@ function defineEventHandler(
|
|||
) {
|
||||
// HTML specification section 8.1.7.1
|
||||
ObjectDefineProperty(emitter, `on${name}`, {
|
||||
__proto__: null,
|
||||
get() {
|
||||
if (!this[_eventHandlers]) {
|
||||
return null;
|
||||
|
|
|
@ -5420,6 +5420,7 @@ class ReadableStream {
|
|||
// TODO(lucacasonato): should be moved to webidl crate
|
||||
ReadableStream.prototype[SymbolAsyncIterator] = ReadableStream.prototype.values;
|
||||
ObjectDefineProperty(ReadableStream.prototype, SymbolAsyncIterator, {
|
||||
__proto__: null,
|
||||
writable: true,
|
||||
enumerable: false,
|
||||
configurable: true,
|
||||
|
|
|
@ -454,36 +454,42 @@ webidl.configureInterface(FileReader);
|
|||
const FileReaderPrototype = FileReader.prototype;
|
||||
|
||||
ObjectDefineProperty(FileReader, "EMPTY", {
|
||||
__proto__: null,
|
||||
writable: false,
|
||||
enumerable: true,
|
||||
configurable: false,
|
||||
value: 0,
|
||||
});
|
||||
ObjectDefineProperty(FileReader, "LOADING", {
|
||||
__proto__: null,
|
||||
writable: false,
|
||||
enumerable: true,
|
||||
configurable: false,
|
||||
value: 1,
|
||||
});
|
||||
ObjectDefineProperty(FileReader, "DONE", {
|
||||
__proto__: null,
|
||||
writable: false,
|
||||
enumerable: true,
|
||||
configurable: false,
|
||||
value: 2,
|
||||
});
|
||||
ObjectDefineProperty(FileReader.prototype, "EMPTY", {
|
||||
__proto__: null,
|
||||
writable: false,
|
||||
enumerable: true,
|
||||
configurable: false,
|
||||
value: 0,
|
||||
});
|
||||
ObjectDefineProperty(FileReader.prototype, "LOADING", {
|
||||
__proto__: null,
|
||||
writable: false,
|
||||
enumerable: true,
|
||||
configurable: false,
|
||||
value: 1,
|
||||
});
|
||||
ObjectDefineProperty(FileReader.prototype, "DONE", {
|
||||
__proto__: null,
|
||||
writable: false,
|
||||
enumerable: true,
|
||||
configurable: false,
|
||||
|
|
|
@ -35,6 +35,7 @@ class Location {
|
|||
url.password = "";
|
||||
ObjectDefineProperties(this, {
|
||||
hash: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
return url.hash;
|
||||
},
|
||||
|
@ -47,6 +48,7 @@ class Location {
|
|||
enumerable: true,
|
||||
},
|
||||
host: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
return url.host;
|
||||
},
|
||||
|
@ -59,6 +61,7 @@ class Location {
|
|||
enumerable: true,
|
||||
},
|
||||
hostname: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
return url.hostname;
|
||||
},
|
||||
|
@ -71,6 +74,7 @@ class Location {
|
|||
enumerable: true,
|
||||
},
|
||||
href: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
return url.href;
|
||||
},
|
||||
|
@ -83,12 +87,14 @@ class Location {
|
|||
enumerable: true,
|
||||
},
|
||||
origin: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
return url.origin;
|
||||
},
|
||||
enumerable: true,
|
||||
},
|
||||
pathname: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
return url.pathname;
|
||||
},
|
||||
|
@ -101,6 +107,7 @@ class Location {
|
|||
enumerable: true,
|
||||
},
|
||||
port: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
return url.port;
|
||||
},
|
||||
|
@ -113,6 +120,7 @@ class Location {
|
|||
enumerable: true,
|
||||
},
|
||||
protocol: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
return url.protocol;
|
||||
},
|
||||
|
@ -125,6 +133,7 @@ class Location {
|
|||
enumerable: true,
|
||||
},
|
||||
search: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
return url.search;
|
||||
},
|
||||
|
@ -137,6 +146,7 @@ class Location {
|
|||
enumerable: true,
|
||||
},
|
||||
ancestorOrigins: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
// TODO(nayeemrmn): Replace with a `DOMStringList` instance.
|
||||
return {
|
||||
|
@ -148,6 +158,7 @@ class Location {
|
|||
enumerable: true,
|
||||
},
|
||||
assign: {
|
||||
__proto__: null,
|
||||
value: function assign() {
|
||||
throw new DOMException(
|
||||
`Cannot call "location.assign()".`,
|
||||
|
@ -157,6 +168,7 @@ class Location {
|
|||
enumerable: true,
|
||||
},
|
||||
reload: {
|
||||
__proto__: null,
|
||||
value: function reload() {
|
||||
throw new DOMException(
|
||||
`Cannot call "location.reload()".`,
|
||||
|
@ -166,6 +178,7 @@ class Location {
|
|||
enumerable: true,
|
||||
},
|
||||
replace: {
|
||||
__proto__: null,
|
||||
value: function replace() {
|
||||
throw new DOMException(
|
||||
`Cannot call "location.replace()".`,
|
||||
|
@ -175,12 +188,14 @@ class Location {
|
|||
enumerable: true,
|
||||
},
|
||||
toString: {
|
||||
__proto__: null,
|
||||
value: function toString() {
|
||||
return url.href;
|
||||
},
|
||||
enumerable: true,
|
||||
},
|
||||
[SymbolFor("Deno.privateCustomInspect")]: {
|
||||
__proto__: null,
|
||||
value: function (inspect, inspectOptions) {
|
||||
return `${this.constructor.name} ${
|
||||
inspect({
|
||||
|
@ -203,6 +218,7 @@ class Location {
|
|||
|
||||
ObjectDefineProperties(Location.prototype, {
|
||||
[SymbolToStringTag]: {
|
||||
__proto__: null,
|
||||
value: "Location",
|
||||
configurable: true,
|
||||
},
|
||||
|
@ -224,6 +240,7 @@ class WorkerLocation {
|
|||
|
||||
ObjectDefineProperties(WorkerLocation.prototype, {
|
||||
hash: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
const url = WeakMapPrototypeGet(workerLocationUrls, this);
|
||||
if (url == null) {
|
||||
|
@ -235,6 +252,7 @@ ObjectDefineProperties(WorkerLocation.prototype, {
|
|||
enumerable: true,
|
||||
},
|
||||
host: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
const url = WeakMapPrototypeGet(workerLocationUrls, this);
|
||||
if (url == null) {
|
||||
|
@ -246,6 +264,7 @@ ObjectDefineProperties(WorkerLocation.prototype, {
|
|||
enumerable: true,
|
||||
},
|
||||
hostname: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
const url = WeakMapPrototypeGet(workerLocationUrls, this);
|
||||
if (url == null) {
|
||||
|
@ -257,6 +276,7 @@ ObjectDefineProperties(WorkerLocation.prototype, {
|
|||
enumerable: true,
|
||||
},
|
||||
href: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
const url = WeakMapPrototypeGet(workerLocationUrls, this);
|
||||
if (url == null) {
|
||||
|
@ -268,6 +288,7 @@ ObjectDefineProperties(WorkerLocation.prototype, {
|
|||
enumerable: true,
|
||||
},
|
||||
origin: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
const url = WeakMapPrototypeGet(workerLocationUrls, this);
|
||||
if (url == null) {
|
||||
|
@ -279,6 +300,7 @@ ObjectDefineProperties(WorkerLocation.prototype, {
|
|||
enumerable: true,
|
||||
},
|
||||
pathname: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
const url = WeakMapPrototypeGet(workerLocationUrls, this);
|
||||
if (url == null) {
|
||||
|
@ -290,6 +312,7 @@ ObjectDefineProperties(WorkerLocation.prototype, {
|
|||
enumerable: true,
|
||||
},
|
||||
port: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
const url = WeakMapPrototypeGet(workerLocationUrls, this);
|
||||
if (url == null) {
|
||||
|
@ -301,6 +324,7 @@ ObjectDefineProperties(WorkerLocation.prototype, {
|
|||
enumerable: true,
|
||||
},
|
||||
protocol: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
const url = WeakMapPrototypeGet(workerLocationUrls, this);
|
||||
if (url == null) {
|
||||
|
@ -312,6 +336,7 @@ ObjectDefineProperties(WorkerLocation.prototype, {
|
|||
enumerable: true,
|
||||
},
|
||||
search: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
const url = WeakMapPrototypeGet(workerLocationUrls, this);
|
||||
if (url == null) {
|
||||
|
@ -323,6 +348,7 @@ ObjectDefineProperties(WorkerLocation.prototype, {
|
|||
enumerable: true,
|
||||
},
|
||||
toString: {
|
||||
__proto__: null,
|
||||
value: function toString() {
|
||||
const url = WeakMapPrototypeGet(workerLocationUrls, this);
|
||||
if (url == null) {
|
||||
|
@ -335,10 +361,12 @@ ObjectDefineProperties(WorkerLocation.prototype, {
|
|||
writable: true,
|
||||
},
|
||||
[SymbolToStringTag]: {
|
||||
__proto__: null,
|
||||
value: "WorkerLocation",
|
||||
configurable: true,
|
||||
},
|
||||
[SymbolFor("Deno.privateCustomInspect")]: {
|
||||
__proto__: null,
|
||||
value: function (inspect, inspectOptions) {
|
||||
return `${this.constructor.name} ${
|
||||
inspect({
|
||||
|
|
|
@ -132,14 +132,17 @@ class MessagePort extends EventTarget {
|
|||
constructor() {
|
||||
super();
|
||||
ObjectDefineProperty(this, MessagePortReceiveMessageOnPortSymbol, {
|
||||
__proto__: null,
|
||||
value: false,
|
||||
enumerable: false,
|
||||
});
|
||||
ObjectDefineProperty(this, nodeWorkerThreadCloseCb, {
|
||||
__proto__: null,
|
||||
value: null,
|
||||
enumerable: false,
|
||||
});
|
||||
ObjectDefineProperty(this, nodeWorkerThreadCloseCbInvoked, {
|
||||
__proto__: null,
|
||||
value: false,
|
||||
enumerable: false,
|
||||
});
|
||||
|
|
|
@ -907,6 +907,7 @@ const GPUDeviceLostInfoPrototype = GPUDeviceLostInfo.prototype;
|
|||
function GPUObjectBaseMixin(name, type) {
|
||||
type.prototype[_label] = null;
|
||||
ObjectDefineProperty(type.prototype, "label", {
|
||||
__proto__: null,
|
||||
/**
|
||||
* @return {string | null}
|
||||
*/
|
||||
|
|
|
@ -753,6 +753,7 @@ function createDictionaryConverter(name, ...dictionaries) {
|
|||
defaultValues[member.key] = member.converter(idlMemberValue, {});
|
||||
} else {
|
||||
ObjectDefineProperty(defaultValues, member.key, {
|
||||
__proto__: null,
|
||||
get() {
|
||||
return member.converter(idlMemberValue, member.defaultValue);
|
||||
},
|
||||
|
@ -1076,6 +1077,7 @@ function mixinPairIterable(name, prototype, dataSymbol, keyKey, valueKey) {
|
|||
function createDefaultIterator(target, kind) {
|
||||
const iterator = ObjectCreate(iteratorPrototype);
|
||||
ObjectDefineProperty(iterator, _iteratorInternal, {
|
||||
__proto__: null,
|
||||
value: { target, kind, index: 0 },
|
||||
configurable: true,
|
||||
});
|
||||
|
@ -1149,6 +1151,7 @@ function configureInterface(interface_) {
|
|||
configureProperties(interface_);
|
||||
configureProperties(interface_.prototype);
|
||||
ObjectDefineProperty(interface_.prototype, SymbolToStringTag, {
|
||||
__proto__: null,
|
||||
value: interface_.name,
|
||||
enumerable: false,
|
||||
configurable: true,
|
||||
|
@ -1170,12 +1173,14 @@ function configureProperties(obj) {
|
|||
typeof descriptor.value === "function"
|
||||
) {
|
||||
ObjectDefineProperty(obj, key, {
|
||||
__proto__: null,
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: true,
|
||||
});
|
||||
} else if (ReflectHas(descriptor, "get")) {
|
||||
ObjectDefineProperty(obj, key, {
|
||||
__proto__: null,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
});
|
||||
|
@ -1189,6 +1194,7 @@ const setlikeInner = Symbol("[[set]]");
|
|||
function setlike(obj, objPrototype, readonly) {
|
||||
ObjectDefineProperties(obj, {
|
||||
size: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get() {
|
||||
|
@ -1197,6 +1203,7 @@ function setlike(obj, objPrototype, readonly) {
|
|||
},
|
||||
},
|
||||
[SymbolIterator]: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
|
@ -1206,6 +1213,7 @@ function setlike(obj, objPrototype, readonly) {
|
|||
},
|
||||
},
|
||||
entries: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
|
@ -1215,6 +1223,7 @@ function setlike(obj, objPrototype, readonly) {
|
|||
},
|
||||
},
|
||||
keys: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
|
@ -1224,6 +1233,7 @@ function setlike(obj, objPrototype, readonly) {
|
|||
},
|
||||
},
|
||||
values: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
|
@ -1233,6 +1243,7 @@ function setlike(obj, objPrototype, readonly) {
|
|||
},
|
||||
},
|
||||
forEach: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
|
@ -1242,6 +1253,7 @@ function setlike(obj, objPrototype, readonly) {
|
|||
},
|
||||
},
|
||||
has: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
|
@ -1255,6 +1267,7 @@ function setlike(obj, objPrototype, readonly) {
|
|||
if (!readonly) {
|
||||
ObjectDefineProperties(obj, {
|
||||
add: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
|
@ -1264,6 +1277,7 @@ function setlike(obj, objPrototype, readonly) {
|
|||
},
|
||||
},
|
||||
delete: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
|
@ -1273,6 +1287,7 @@ function setlike(obj, objPrototype, readonly) {
|
|||
},
|
||||
},
|
||||
clear: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
|
|
|
@ -627,15 +627,19 @@ class WebSocket extends EventTarget {
|
|||
|
||||
ObjectDefineProperties(WebSocket, {
|
||||
CONNECTING: {
|
||||
__proto__: null,
|
||||
value: 0,
|
||||
},
|
||||
OPEN: {
|
||||
__proto__: null,
|
||||
value: 1,
|
||||
},
|
||||
CLOSING: {
|
||||
__proto__: null,
|
||||
value: 2,
|
||||
},
|
||||
CLOSED: {
|
||||
__proto__: null,
|
||||
value: 3,
|
||||
},
|
||||
});
|
||||
|
|
|
@ -119,6 +119,7 @@ function createStorage(persistent) {
|
|||
set(target, key, value) {
|
||||
if (typeof key === "symbol") {
|
||||
return ReflectDefineProperty(target, key, {
|
||||
__proto__: null,
|
||||
value,
|
||||
configurable: true,
|
||||
});
|
||||
|
|
|
@ -23,6 +23,7 @@ class FsWatcher {
|
|||
constructor(paths, options) {
|
||||
if (internals.future) {
|
||||
ObjectDefineProperty(this, "rid", {
|
||||
__proto__: null,
|
||||
enumerable: false,
|
||||
value: undefined,
|
||||
});
|
||||
|
@ -79,7 +80,7 @@ class FsWatcher {
|
|||
|
||||
function watchFs(
|
||||
paths,
|
||||
options = { recursive: true },
|
||||
options = { __proto__: null, recursive: true },
|
||||
) {
|
||||
return new FsWatcher(ArrayIsArray(paths) ? paths : [paths], options);
|
||||
}
|
||||
|
|
|
@ -463,6 +463,7 @@ class Command {
|
|||
|
||||
spawn() {
|
||||
const options = {
|
||||
__proto__: null,
|
||||
...(this.#options ?? {}),
|
||||
stdout: this.#options?.stdout ?? "inherit",
|
||||
stderr: this.#options?.stderr ?? "inherit",
|
||||
|
|
|
@ -60,6 +60,7 @@ const language = memoizeLazy(() => op_bootstrap_language());
|
|||
|
||||
ObjectDefineProperties(Navigator.prototype, {
|
||||
gpu: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get() {
|
||||
|
@ -69,6 +70,7 @@ ObjectDefineProperties(Navigator.prototype, {
|
|||
},
|
||||
},
|
||||
hardwareConcurrency: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get() {
|
||||
|
@ -77,6 +79,7 @@ ObjectDefineProperties(Navigator.prototype, {
|
|||
},
|
||||
},
|
||||
userAgent: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get() {
|
||||
|
@ -85,6 +88,7 @@ ObjectDefineProperties(Navigator.prototype, {
|
|||
},
|
||||
},
|
||||
language: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get() {
|
||||
|
@ -93,6 +97,7 @@ ObjectDefineProperties(Navigator.prototype, {
|
|||
},
|
||||
},
|
||||
languages: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get() {
|
||||
|
|
|
@ -58,6 +58,7 @@ const workerNavigator = webidl.createBranded(WorkerNavigator);
|
|||
|
||||
ObjectDefineProperties(WorkerNavigator.prototype, {
|
||||
gpu: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get() {
|
||||
|
@ -67,6 +68,7 @@ ObjectDefineProperties(WorkerNavigator.prototype, {
|
|||
},
|
||||
},
|
||||
hardwareConcurrency: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get() {
|
||||
|
@ -75,6 +77,7 @@ ObjectDefineProperties(WorkerNavigator.prototype, {
|
|||
},
|
||||
},
|
||||
userAgent: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get() {
|
||||
|
@ -83,6 +86,7 @@ ObjectDefineProperties(WorkerNavigator.prototype, {
|
|||
},
|
||||
},
|
||||
language: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get() {
|
||||
|
@ -91,6 +95,7 @@ ObjectDefineProperties(WorkerNavigator.prototype, {
|
|||
},
|
||||
},
|
||||
languages: {
|
||||
__proto__: null,
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get() {
|
||||
|
|
|
@ -92,12 +92,14 @@ if (Symbol.metadata) {
|
|||
}
|
||||
ObjectDefineProperties(Symbol, {
|
||||
dispose: {
|
||||
__proto__: null,
|
||||
value: SymbolDispose,
|
||||
enumerable: false,
|
||||
writable: false,
|
||||
configurable: false,
|
||||
},
|
||||
metadata: {
|
||||
__proto__: null,
|
||||
value: SymbolMetadata,
|
||||
enumerable: false,
|
||||
writable: false,
|
||||
|
@ -533,6 +535,7 @@ ObjectDefineProperties(finalDenoNs, {
|
|||
args: core.propGetterOnly(opArgs),
|
||||
mainModule: core.propGetterOnly(() => op_main_module()),
|
||||
exitCode: {
|
||||
__proto__: null,
|
||||
get() {
|
||||
return os.getExitCode();
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue