mirror of
https://github.com/denoland/deno.git
synced 2024-11-24 15:19:26 -05:00
chore: update dlint to v0.37.0 for GitHub Actions (#17295)
Updated third_party dlint to v0.37.0 for GitHub Actions. This PR includes following changes: * fix(prefer-primordials): Stop using array pattern assignments * fix(prefer-primordials): Stop using global intrinsics except for `SharedArrayBuffer` * feat(guard-for-in): Apply new guard-for-in rule
This commit is contained in:
parent
47130f3500
commit
566e30c29d
29 changed files with 128 additions and 103 deletions
|
@ -3,7 +3,8 @@
|
|||
"tags": ["recommended"],
|
||||
"include": [
|
||||
"ban-untagged-todo",
|
||||
"camelcase"
|
||||
"camelcase",
|
||||
"guard-for-in"
|
||||
],
|
||||
"exclude": [
|
||||
"no-invalid-triple-slash-reference"
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
MapPrototypeSet,
|
||||
MathCeil,
|
||||
ObjectKeys,
|
||||
ObjectPrototypeHasOwnProperty,
|
||||
ObjectPrototypeIsPrototypeOf,
|
||||
Promise,
|
||||
SafeArrayIterator,
|
||||
|
@ -167,6 +168,9 @@
|
|||
|
||||
const details = [];
|
||||
for (const key in post.ops) {
|
||||
if (!ObjectPrototypeHasOwnProperty(post.ops, key)) {
|
||||
continue;
|
||||
}
|
||||
const preOp = pre.ops[key] ??
|
||||
{ opsDispatchedAsync: 0, opsCompletedAsync: 0 };
|
||||
const postOp = post.ops[key];
|
||||
|
|
|
@ -34,52 +34,52 @@ const headerDict: Record<string, string> = {
|
|||
};
|
||||
// deno-lint-ignore no-explicit-any
|
||||
const headerSeq: any[] = [];
|
||||
for (const name in headerDict) {
|
||||
headerSeq.push([name, headerDict[name]]);
|
||||
for (const [name, value] of Object.entries(headerDict)) {
|
||||
headerSeq.push([name, value]);
|
||||
}
|
||||
|
||||
Deno.test(function newHeaderWithSequence() {
|
||||
const headers = new Headers(headerSeq);
|
||||
for (const name in headerDict) {
|
||||
assertEquals(headers.get(name), String(headerDict[name]));
|
||||
for (const [name, value] of Object.entries(headerDict)) {
|
||||
assertEquals(headers.get(name), String(value));
|
||||
}
|
||||
assertEquals(headers.get("length"), null);
|
||||
});
|
||||
|
||||
Deno.test(function newHeaderWithRecord() {
|
||||
const headers = new Headers(headerDict);
|
||||
for (const name in headerDict) {
|
||||
assertEquals(headers.get(name), String(headerDict[name]));
|
||||
for (const [name, value] of Object.entries(headerDict)) {
|
||||
assertEquals(headers.get(name), String(value));
|
||||
}
|
||||
});
|
||||
|
||||
Deno.test(function newHeaderWithHeadersInstance() {
|
||||
const headers = new Headers(headerDict);
|
||||
const headers2 = new Headers(headers);
|
||||
for (const name in headerDict) {
|
||||
assertEquals(headers2.get(name), String(headerDict[name]));
|
||||
for (const [name, value] of Object.entries(headerDict)) {
|
||||
assertEquals(headers2.get(name), String(value));
|
||||
}
|
||||
});
|
||||
|
||||
Deno.test(function headerAppendSuccess() {
|
||||
const headers = new Headers();
|
||||
for (const name in headerDict) {
|
||||
headers.append(name, headerDict[name]);
|
||||
assertEquals(headers.get(name), String(headerDict[name]));
|
||||
for (const [name, value] of Object.entries(headerDict)) {
|
||||
headers.append(name, value);
|
||||
assertEquals(headers.get(name), String(value));
|
||||
}
|
||||
});
|
||||
|
||||
Deno.test(function headerSetSuccess() {
|
||||
const headers = new Headers();
|
||||
for (const name in headerDict) {
|
||||
headers.set(name, headerDict[name]);
|
||||
assertEquals(headers.get(name), String(headerDict[name]));
|
||||
for (const [name, value] of Object.entries(headerDict)) {
|
||||
headers.set(name, value);
|
||||
assertEquals(headers.get(name), String(value));
|
||||
}
|
||||
});
|
||||
|
||||
Deno.test(function headerHasSuccess() {
|
||||
const headers = new Headers(headerDict);
|
||||
for (const name in headerDict) {
|
||||
for (const name of Object.keys(headerDict)) {
|
||||
assert(headers.has(name), "headers has name " + name);
|
||||
assert(
|
||||
!headers.has("nameNotInHeaders"),
|
||||
|
@ -90,7 +90,7 @@ Deno.test(function headerHasSuccess() {
|
|||
|
||||
Deno.test(function headerDeleteSuccess() {
|
||||
const headers = new Headers(headerDict);
|
||||
for (const name in headerDict) {
|
||||
for (const name of Object.keys(headerDict)) {
|
||||
assert(headers.has(name), "headers have a header: " + name);
|
||||
headers.delete(name);
|
||||
assert(!headers.has(name), "headers do not have anymore a header: " + name);
|
||||
|
@ -99,8 +99,8 @@ Deno.test(function headerDeleteSuccess() {
|
|||
|
||||
Deno.test(function headerGetSuccess() {
|
||||
const headers = new Headers(headerDict);
|
||||
for (const name in headerDict) {
|
||||
assertEquals(headers.get(name), String(headerDict[name]));
|
||||
for (const [name, value] of Object.entries(headerDict)) {
|
||||
assertEquals(headers.get(name), String(value));
|
||||
assertEquals(headers.get("nameNotInHeaders"), null);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
break;
|
||||
}
|
||||
|
||||
const [name, data] = message;
|
||||
const { 0: name, 1: data } = message;
|
||||
dispatch(null, name, new Uint8Array(data));
|
||||
}
|
||||
|
||||
|
|
2
ext/cache/01_cache.js
vendored
2
ext/cache/01_cache.js
vendored
|
@ -255,7 +255,7 @@
|
|||
},
|
||||
);
|
||||
if (matchResult) {
|
||||
const [meta, responseBodyRid] = matchResult;
|
||||
const { 0: meta, 1: responseBodyRid } = matchResult;
|
||||
let body = null;
|
||||
if (responseBodyRid !== null) {
|
||||
body = readableStreamForRid(responseBodyRid);
|
||||
|
|
|
@ -360,7 +360,7 @@
|
|||
ObjectKeys(value).length > 0 ||
|
||||
ObjectGetOwnPropertySymbols(value).length > 0
|
||||
) {
|
||||
const [propString, refIndex] = inspectRawObject(
|
||||
const { 0: propString, 1: refIndex } = inspectRawObject(
|
||||
value,
|
||||
inspectOptions,
|
||||
);
|
||||
|
@ -847,7 +847,7 @@
|
|||
displayName: "",
|
||||
delims: ["[", "]"],
|
||||
entryHandler: (entry, inspectOptions) => {
|
||||
const [index, val] = entry;
|
||||
const { 0: index, 1: val } = entry;
|
||||
let i = index;
|
||||
lastValidIndex = index;
|
||||
if (!ObjectPrototypeHasOwnProperty(value, i)) {
|
||||
|
@ -940,7 +940,7 @@
|
|||
displayName: "Map",
|
||||
delims: ["{", "}"],
|
||||
entryHandler: (entry, inspectOptions) => {
|
||||
const [key, val] = entry;
|
||||
const { 0: key, 1: val } = entry;
|
||||
inspectOptions.indentLevel++;
|
||||
const inspectedValue = `${
|
||||
inspectValueWithQuotes(key, inspectOptions)
|
||||
|
@ -1100,7 +1100,7 @@
|
|||
const cyan = maybeColor(colors.cyan, inspectOptions);
|
||||
const red = maybeColor(colors.red, inspectOptions);
|
||||
|
||||
const [state, result] = core.getPromiseDetails(value);
|
||||
const { 0: state, 1: result } = core.getPromiseDetails(value);
|
||||
|
||||
if (state === PromiseState.Pending) {
|
||||
return `Promise { ${cyan("<pending>")} }`;
|
||||
|
@ -1363,7 +1363,7 @@
|
|||
);
|
||||
} else {
|
||||
// Otherwise, default object formatting
|
||||
let [insp, refIndex] = inspectRawObject(value, inspectOptions);
|
||||
let { 0: insp, 1: refIndex } = inspectRawObject(value, inspectOptions);
|
||||
insp = refIndex + insp;
|
||||
return insp;
|
||||
}
|
||||
|
@ -1568,17 +1568,17 @@
|
|||
let g_;
|
||||
let b_;
|
||||
if (h < 60) {
|
||||
[r_, g_, b_] = [c, x, 0];
|
||||
({ 0: r_, 1: g_, 2: b_ } = [c, x, 0]);
|
||||
} else if (h < 120) {
|
||||
[r_, g_, b_] = [x, c, 0];
|
||||
({ 0: r_, 1: g_, 2: b_ } = [x, c, 0]);
|
||||
} else if (h < 180) {
|
||||
[r_, g_, b_] = [0, c, x];
|
||||
({ 0: r_, 1: g_, 2: b_ } = [0, c, x]);
|
||||
} else if (h < 240) {
|
||||
[r_, g_, b_] = [0, x, c];
|
||||
({ 0: r_, 1: g_, 2: b_ } = [0, x, c]);
|
||||
} else if (h < 300) {
|
||||
[r_, g_, b_] = [x, 0, c];
|
||||
({ 0: r_, 1: g_, 2: b_ } = [x, 0, c]);
|
||||
} else {
|
||||
[r_, g_, b_] = [c, 0, x];
|
||||
({ 0: r_, 1: g_, 2: b_ } = [c, 0, x]);
|
||||
}
|
||||
return [
|
||||
MathRound((r_ + m) * 255),
|
||||
|
@ -1645,7 +1645,7 @@
|
|||
}
|
||||
|
||||
for (let i = 0; i < rawEntries.length; ++i) {
|
||||
const [key, value] = rawEntries[i];
|
||||
const { 0: key, 1: value } = rawEntries[i];
|
||||
if (key == "background-color") {
|
||||
if (value != null) {
|
||||
css.backgroundColor = value;
|
||||
|
@ -1736,12 +1736,12 @@
|
|||
ansi += `\x1b[47m`;
|
||||
} else {
|
||||
if (ArrayIsArray(css.backgroundColor)) {
|
||||
const [r, g, b] = css.backgroundColor;
|
||||
const { 0: r, 1: g, 2: b } = css.backgroundColor;
|
||||
ansi += `\x1b[48;2;${r};${g};${b}m`;
|
||||
} else {
|
||||
const parsed = parseCssColor(css.backgroundColor);
|
||||
if (parsed !== null) {
|
||||
const [r, g, b] = parsed;
|
||||
const { 0: r, 1: g, 2: b } = parsed;
|
||||
ansi += `\x1b[48;2;${r};${g};${b}m`;
|
||||
} else {
|
||||
ansi += "\x1b[49m";
|
||||
|
@ -1770,12 +1770,12 @@
|
|||
ansi += `\x1b[37m`;
|
||||
} else {
|
||||
if (ArrayIsArray(css.color)) {
|
||||
const [r, g, b] = css.color;
|
||||
const { 0: r, 1: g, 2: b } = css.color;
|
||||
ansi += `\x1b[38;2;${r};${g};${b}m`;
|
||||
} else {
|
||||
const parsed = parseCssColor(css.color);
|
||||
if (parsed !== null) {
|
||||
const [r, g, b] = parsed;
|
||||
const { 0: r, 1: g, 2: b } = parsed;
|
||||
ansi += `\x1b[38;2;${r};${g};${b}m`;
|
||||
} else {
|
||||
ansi += "\x1b[39m";
|
||||
|
@ -1799,7 +1799,7 @@
|
|||
}
|
||||
if (!colorEquals(css.textDecorationColor, prevCss.textDecorationColor)) {
|
||||
if (css.textDecorationColor != null) {
|
||||
const [r, g, b] = css.textDecorationColor;
|
||||
const { 0: r, 1: g, 2: b } = css.textDecorationColor;
|
||||
ansi += `\x1b[58;2;${r};${g};${b}m`;
|
||||
} else {
|
||||
ansi += "\x1b[59m";
|
||||
|
@ -2045,7 +2045,7 @@
|
|||
return;
|
||||
}
|
||||
|
||||
const [first, ...rest] = args;
|
||||
const [first, ...rest] = new SafeArrayIterator(args);
|
||||
|
||||
if (typeof first === "string") {
|
||||
this.error(
|
||||
|
|
|
@ -305,7 +305,7 @@
|
|||
const prefix = `--${boundary}\r\nContent-Disposition: form-data; name="`;
|
||||
|
||||
// deno-lint-ignore prefer-primordials
|
||||
for (const [name, value] of formData) {
|
||||
for (const { 0: name, 1: value } of formData) {
|
||||
if (typeof value === "string") {
|
||||
ArrayPrototypePush(
|
||||
chunks,
|
||||
|
|
|
@ -42,6 +42,8 @@
|
|||
JSONParse,
|
||||
ObjectDefineProperties,
|
||||
ObjectPrototypeIsPrototypeOf,
|
||||
// TODO(lucacasonato): add SharedArrayBuffer to primordials
|
||||
// SharedArrayBufferPrototype
|
||||
TypedArrayPrototypeSlice,
|
||||
TypeError,
|
||||
Uint8Array,
|
||||
|
@ -185,7 +187,7 @@
|
|||
* @returns {InnerBody}
|
||||
*/
|
||||
clone() {
|
||||
const [out1, out2] = this.stream.tee();
|
||||
const { 0: out1, 1: out2 } = this.stream.tee();
|
||||
this.streamOrStatic = out1;
|
||||
const second = new InnerBody(out2);
|
||||
second.source = core.deserialize(core.serialize(this.source));
|
||||
|
@ -447,6 +449,7 @@
|
|||
if (typeof V === "object") {
|
||||
if (
|
||||
ObjectPrototypeIsPrototypeOf(ArrayBufferPrototype, V) ||
|
||||
// deno-lint-ignore prefer-primordials
|
||||
ObjectPrototypeIsPrototypeOf(SharedArrayBuffer.prototype, V)
|
||||
) {
|
||||
return webidl.converters["ArrayBuffer"](V, opts);
|
||||
|
|
|
@ -268,7 +268,10 @@
|
|||
let size = 0;
|
||||
let alignment = 1;
|
||||
for (const field of new SafeArrayIterator(type.struct)) {
|
||||
const [fieldSize, fieldAlign] = getTypeSizeAndAlignment(field, cache);
|
||||
const { 0: fieldSize, 1: fieldAlign } = getTypeSizeAndAlignment(
|
||||
field,
|
||||
cache,
|
||||
);
|
||||
alignment = MathMax(alignment, fieldAlign);
|
||||
size = MathCeil(size / fieldAlign) * fieldAlign;
|
||||
size += fieldSize;
|
||||
|
@ -319,7 +322,7 @@
|
|||
"Invalid UnsafeCallback, cannot be nonblocking",
|
||||
);
|
||||
}
|
||||
const [rid, pointer] = ops.op_ffi_unsafe_callback_create(
|
||||
const { 0: rid, 1: pointer } = ops.op_ffi_unsafe_callback_create(
|
||||
definition,
|
||||
callback,
|
||||
);
|
||||
|
@ -362,7 +365,7 @@
|
|||
symbols = {};
|
||||
|
||||
constructor(path, symbols) {
|
||||
[this.#rid, this.symbols] = ops.op_ffi_load({ path, symbols });
|
||||
({ 0: this.#rid, 1: this.symbols } = ops.op_ffi_load({ path, symbols }));
|
||||
for (const symbol in symbols) {
|
||||
if (!ObjectPrototypeHasOwnProperty(symbols, symbol)) {
|
||||
continue;
|
||||
|
|
|
@ -140,7 +140,7 @@
|
|||
// Date header: https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.1.2
|
||||
let str = `HTTP/1.1 ${status} ${statusCodes[status]}\r\nDate: ${date}\r\n`;
|
||||
for (let i = 0; i < headerList.length; ++i) {
|
||||
const [name, value] = headerList[i];
|
||||
const { 0: name, 1: value } = headerList[i];
|
||||
// header-field = field-name ":" OWS field-value OWS
|
||||
str += `${name}: ${value}\r\n`;
|
||||
}
|
||||
|
|
|
@ -115,7 +115,7 @@
|
|||
return null;
|
||||
}
|
||||
|
||||
const [streamRid, method, url] = nextRequest;
|
||||
const { 0: streamRid, 1: method, 2: url } = nextRequest;
|
||||
SetPrototypeAdd(this.managedResources, streamRid);
|
||||
|
||||
/** @type {ReadableStream<Uint8Array> | undefined} */
|
||||
|
|
|
@ -175,7 +175,7 @@
|
|||
}
|
||||
this.#promiseId = promise[promiseIdSymbol];
|
||||
if (this.#unref) core.unrefOp(this.#promiseId);
|
||||
const [rid, localAddr, remoteAddr] = await promise;
|
||||
const { 0: rid, 1: localAddr, 2: remoteAddr } = await promise;
|
||||
this.#promiseId = null;
|
||||
if (this.addr.transport == "tcp") {
|
||||
localAddr.transport = "tcp";
|
||||
|
@ -260,21 +260,21 @@
|
|||
let remoteAddr;
|
||||
switch (this.addr.transport) {
|
||||
case "udp": {
|
||||
[nread, remoteAddr] = await core.opAsync(
|
||||
({ 0: nread, 1: remoteAddr } = await core.opAsync(
|
||||
"op_net_recv_udp",
|
||||
this.rid,
|
||||
buf,
|
||||
);
|
||||
));
|
||||
remoteAddr.transport = "udp";
|
||||
break;
|
||||
}
|
||||
case "unixpacket": {
|
||||
let path;
|
||||
[nread, path] = await core.opAsync(
|
||||
({ 0: nread, 1: path } = await core.opAsync(
|
||||
"op_net_recv_unixpacket",
|
||||
this.rid,
|
||||
buf,
|
||||
);
|
||||
));
|
||||
remoteAddr = { transport: "unixpacket", path };
|
||||
break;
|
||||
}
|
||||
|
@ -330,7 +330,7 @@
|
|||
function listen(args) {
|
||||
switch (args.transport ?? "tcp") {
|
||||
case "tcp": {
|
||||
const [rid, addr] = ops.op_net_listen_tcp({
|
||||
const { 0: rid, 1: addr } = ops.op_net_listen_tcp({
|
||||
hostname: args.hostname ?? "0.0.0.0",
|
||||
port: args.port,
|
||||
}, args.reusePort);
|
||||
|
@ -338,7 +338,7 @@
|
|||
return new Listener(rid, addr);
|
||||
}
|
||||
case "unix": {
|
||||
const [rid, path] = ops.op_net_listen_unix(args.path);
|
||||
const { 0: rid, 1: path } = ops.op_net_listen_unix(args.path);
|
||||
const addr = {
|
||||
transport: "unix",
|
||||
path,
|
||||
|
@ -354,7 +354,7 @@
|
|||
return function listenDatagram(args) {
|
||||
switch (args.transport) {
|
||||
case "udp": {
|
||||
const [rid, addr] = udpOpFn(
|
||||
const { 0: rid, 1: addr } = udpOpFn(
|
||||
{
|
||||
hostname: args.hostname ?? "127.0.0.1",
|
||||
port: args.port,
|
||||
|
@ -365,7 +365,7 @@
|
|||
return new Datagram(rid, addr);
|
||||
}
|
||||
case "unixpacket": {
|
||||
const [rid, path] = unixOpFn(args.path);
|
||||
const { 0: rid, 1: path } = unixOpFn(args.path);
|
||||
const addr = {
|
||||
transport: "unixpacket",
|
||||
path,
|
||||
|
@ -381,7 +381,7 @@
|
|||
async function connect(args) {
|
||||
switch (args.transport ?? "tcp") {
|
||||
case "tcp": {
|
||||
const [rid, localAddr, remoteAddr] = await core.opAsync(
|
||||
const { 0: rid, 1: localAddr, 2: remoteAddr } = await core.opAsync(
|
||||
"op_net_connect_tcp",
|
||||
{
|
||||
hostname: args.hostname ?? "127.0.0.1",
|
||||
|
@ -393,7 +393,7 @@
|
|||
return new TcpConn(rid, remoteAddr, localAddr);
|
||||
}
|
||||
case "unix": {
|
||||
const [rid, localAddr, remoteAddr] = await core.opAsync(
|
||||
const { 0: rid, 1: localAddr, 2: remoteAddr } = await core.opAsync(
|
||||
"op_net_connect_unix",
|
||||
args.path,
|
||||
);
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
if (transport !== "tcp") {
|
||||
throw new TypeError(`Unsupported transport: '${transport}'`);
|
||||
}
|
||||
const [rid, localAddr, remoteAddr] = await core.opAsync(
|
||||
const { 0: rid, 1: localAddr, 2: remoteAddr } = await core.opAsync(
|
||||
"op_net_connect_tls",
|
||||
{ hostname, port },
|
||||
{ certFile, caCerts, certChain, privateKey, alpnProtocols },
|
||||
|
@ -46,7 +46,7 @@
|
|||
|
||||
class TlsListener extends Listener {
|
||||
async accept() {
|
||||
const [rid, localAddr, remoteAddr] = await core.opAsync(
|
||||
const { 0: rid, 1: localAddr, 2: remoteAddr } = await core.opAsync(
|
||||
"op_net_accept_tls",
|
||||
this.rid,
|
||||
);
|
||||
|
@ -70,7 +70,7 @@
|
|||
if (transport !== "tcp") {
|
||||
throw new TypeError(`Unsupported transport: '${transport}'`);
|
||||
}
|
||||
const [rid, localAddr] = ops.op_net_listen_tls(
|
||||
const { 0: rid, 1: localAddr } = ops.op_net_listen_tls(
|
||||
{ hostname, port },
|
||||
{ cert, certFile, key, keyFile, alpnProtocols, reusePort },
|
||||
);
|
||||
|
@ -86,7 +86,7 @@
|
|||
alpnProtocols = undefined,
|
||||
} = {},
|
||||
) {
|
||||
const [rid, localAddr, remoteAddr] = await opStartTls({
|
||||
const { 0: rid, 1: localAddr, 2: remoteAddr } = await opStartTls({
|
||||
rid: conn.rid,
|
||||
hostname,
|
||||
certFile,
|
||||
|
|
|
@ -367,16 +367,16 @@
|
|||
}
|
||||
|
||||
#updateComponents() {
|
||||
[
|
||||
this.#schemeEnd,
|
||||
this.#usernameEnd,
|
||||
this.#hostStart,
|
||||
this.#hostEnd,
|
||||
this.#port,
|
||||
this.#pathStart,
|
||||
this.#queryStart,
|
||||
this.#fragmentStart,
|
||||
] = componentsBuf;
|
||||
({
|
||||
0: this.#schemeEnd,
|
||||
1: this.#usernameEnd,
|
||||
2: this.#hostStart,
|
||||
3: this.#hostEnd,
|
||||
4: this.#port,
|
||||
5: this.#pathStart,
|
||||
6: this.#queryStart,
|
||||
7: this.#fragmentStart,
|
||||
} = componentsBuf);
|
||||
}
|
||||
|
||||
[SymbolFor("Deno.privateCustomInspect")](inspect, inspectOptions) {
|
||||
|
|
|
@ -155,7 +155,7 @@
|
|||
return false;
|
||||
}
|
||||
|
||||
const [values] = res;
|
||||
const values = res[0];
|
||||
|
||||
const keys = ObjectKeys(values);
|
||||
for (let i = 0; i < keys.length; ++i) {
|
||||
|
@ -196,7 +196,7 @@
|
|||
return null;
|
||||
}
|
||||
|
||||
const [values, inputs] = res;
|
||||
const { 0: values, 1: inputs } = res;
|
||||
if (inputs[1] === null) {
|
||||
inputs.pop();
|
||||
}
|
||||
|
|
|
@ -193,7 +193,7 @@
|
|||
DATA_CLONE_ERR,
|
||||
});
|
||||
for (let i = 0; i < entries.length; ++i) {
|
||||
const [key, value] = entries[i];
|
||||
const { 0: key, 1: value } = entries[i];
|
||||
const desc = { value, enumerable: true };
|
||||
ObjectDefineProperty(DOMException, key, desc);
|
||||
ObjectDefineProperty(DOMException.prototype, key, desc);
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
BigInt64ArrayPrototype,
|
||||
BigUint64ArrayPrototype,
|
||||
DataView,
|
||||
FinalizationRegistry,
|
||||
Int8ArrayPrototype,
|
||||
Int16ArrayPrototype,
|
||||
Int32ArrayPrototype,
|
||||
|
@ -45,7 +46,8 @@
|
|||
RangeError,
|
||||
ReflectHas,
|
||||
SafePromiseAll,
|
||||
SharedArrayBuffer,
|
||||
// TODO(lucacasonato): add SharedArrayBuffer to primordials
|
||||
// SharedArrayBufferPrototype
|
||||
Symbol,
|
||||
SymbolAsyncIterator,
|
||||
SymbolFor,
|
||||
|
@ -205,6 +207,7 @@
|
|||
assert(typeof O === "object");
|
||||
assert(
|
||||
ObjectPrototypeIsPrototypeOf(ArrayBufferPrototype, O) ||
|
||||
// deno-lint-ignore prefer-primordials
|
||||
ObjectPrototypeIsPrototypeOf(SharedArrayBuffer.prototype, O),
|
||||
);
|
||||
if (isDetachedBuffer(O)) {
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
const {
|
||||
PromiseReject,
|
||||
PromiseResolve,
|
||||
// TODO(lucacasonato): add SharedArrayBuffer to primordials
|
||||
// SharedArrayBufferPrototype
|
||||
StringPrototypeCharCodeAt,
|
||||
StringPrototypeSlice,
|
||||
TypedArrayPrototypeSubarray,
|
||||
|
@ -108,6 +110,7 @@
|
|||
// When doing so they will have to make sure that changes to input do not affect future calls to decode().
|
||||
if (
|
||||
ObjectPrototypeIsPrototypeOf(
|
||||
// deno-lint-ignore prefer-primordials
|
||||
SharedArrayBuffer.prototype,
|
||||
input || input.buffer,
|
||||
)
|
||||
|
|
|
@ -23,10 +23,13 @@
|
|||
AsyncGeneratorPrototypeNext,
|
||||
Date,
|
||||
DatePrototypeGetTime,
|
||||
FinalizationRegistry,
|
||||
MathMax,
|
||||
MathMin,
|
||||
ObjectPrototypeIsPrototypeOf,
|
||||
RegExpPrototypeTest,
|
||||
// TODO(lucacasonato): add SharedArrayBuffer to primordials
|
||||
// SharedArrayBufferPrototype
|
||||
StringPrototypeCharAt,
|
||||
StringPrototypeToLowerCase,
|
||||
StringPrototypeSlice,
|
||||
|
@ -407,6 +410,7 @@
|
|||
}
|
||||
if (
|
||||
ObjectPrototypeIsPrototypeOf(ArrayBufferPrototype, V) ||
|
||||
// deno-lint-ignore prefer-primordials
|
||||
ObjectPrototypeIsPrototypeOf(SharedArrayBuffer.prototype, V)
|
||||
) {
|
||||
return webidl.converters["ArrayBuffer"](V, opts);
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
constructor() {
|
||||
this[webidl.brand] = webidl.brand;
|
||||
const [port1Id, port2Id] = opCreateEntangledMessagePort();
|
||||
const { 0: port1Id, 1: port2Id } = opCreateEntangledMessagePort();
|
||||
const port1 = createMessagePort(port1Id);
|
||||
const port2 = createMessagePort(port2Id);
|
||||
this.#port1 = port1;
|
||||
|
@ -329,8 +329,7 @@
|
|||
context: "Argument 2",
|
||||
});
|
||||
const messageData = serializeJsMessageData(value, options.transfer);
|
||||
const [data] = deserializeJsMessageData(messageData);
|
||||
return data;
|
||||
return deserializeJsMessageData(messageData)[0];
|
||||
}
|
||||
|
||||
window.__bootstrap.messagePort = {
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
Uint32Array,
|
||||
Uint32ArrayPrototype,
|
||||
Uint8Array,
|
||||
WeakRef,
|
||||
} = window.__bootstrap.primordials;
|
||||
|
||||
const _rid = Symbol("[[rid]]");
|
||||
|
@ -1893,7 +1894,7 @@
|
|||
throw new DOMException(`${prefix}: invalid state.`, "OperationError");
|
||||
}
|
||||
for (let i = 0; i < mappedRanges.length; ++i) {
|
||||
const [buffer, _rid, start] = mappedRanges[i];
|
||||
const { 0: buffer, /* 1: rid, */ 2: start } = mappedRanges[i];
|
||||
// TODO(lucacasonato): is this logic correct?
|
||||
const end = start + buffer.byteLength;
|
||||
if (
|
||||
|
@ -1962,7 +1963,7 @@
|
|||
throw new DOMException(`${prefix}: invalid state.`, "OperationError");
|
||||
}
|
||||
for (let i = 0; i < mappedRanges.length; ++i) {
|
||||
const [buffer, mappedRid] = mappedRanges[i];
|
||||
const { 0: buffer, 1: mappedRid } = mappedRanges[i];
|
||||
const { err } = ops.op_webgpu_buffer_unmap(
|
||||
bufferRid,
|
||||
mappedRid,
|
||||
|
|
|
@ -70,7 +70,7 @@
|
|||
SetPrototypeDelete,
|
||||
SetPrototypeAdd,
|
||||
// TODO(lucacasonato): add SharedArrayBuffer to primordials
|
||||
// SharedArrayBuffer,
|
||||
// SharedArrayBufferPrototype
|
||||
String,
|
||||
StringFromCodePoint,
|
||||
StringPrototypeCharCodeAt,
|
||||
|
@ -447,6 +447,7 @@
|
|||
}
|
||||
|
||||
function isSharedArrayBuffer(V) {
|
||||
// deno-lint-ignore prefer-primordials
|
||||
return ObjectPrototypeIsPrototypeOf(SharedArrayBuffer.prototype, V);
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@
|
|||
PromisePrototypeThen,
|
||||
RegExpPrototypeTest,
|
||||
Set,
|
||||
// TODO(lucacasonato): add SharedArrayBuffer to primordials
|
||||
// SharedArrayBufferPrototype
|
||||
StringPrototypeEndsWith,
|
||||
StringPrototypeToLowerCase,
|
||||
Symbol,
|
||||
|
@ -58,9 +60,9 @@
|
|||
return webidl.converters["Blob"](V, opts);
|
||||
}
|
||||
if (typeof V === "object") {
|
||||
// TODO(littledivy): use primordial for SharedArrayBuffer
|
||||
if (
|
||||
ObjectPrototypeIsPrototypeOf(ArrayBufferPrototype, V) ||
|
||||
// deno-lint-ignore prefer-primordials
|
||||
ObjectPrototypeIsPrototypeOf(SharedArrayBuffer.prototype, V)
|
||||
) {
|
||||
return webidl.converters["ArrayBuffer"](V, opts);
|
||||
|
|
|
@ -13,7 +13,11 @@
|
|||
};
|
||||
|
||||
function setBuildInfo(target) {
|
||||
const [arch, vendor, os, env] = StringPrototypeSplit(target, "-", 4);
|
||||
const { 0: arch, 1: vendor, 2: os, 3: env } = StringPrototypeSplit(
|
||||
target,
|
||||
"-",
|
||||
4,
|
||||
);
|
||||
build.target = target;
|
||||
build.arch = arch;
|
||||
build.vendor = vendor;
|
||||
|
|
|
@ -139,7 +139,7 @@
|
|||
|
||||
#pollControl = async () => {
|
||||
while (this.#status === "RUNNING") {
|
||||
const [type, data] = await hostRecvCtrl(this.#id);
|
||||
const { 0: type, 1: data } = await hostRecvCtrl(this.#id);
|
||||
|
||||
// If terminate was called then we ignore all messages
|
||||
if (this.#status === "TERMINATED") {
|
||||
|
|
|
@ -213,7 +213,7 @@
|
|||
'const unix = Deno.build.os === "darwin" || Deno.build.os === "linux"; return {';
|
||||
const typeEntries = ObjectEntries(types);
|
||||
for (let i = 0; i < typeEntries.length; ++i) {
|
||||
let [name, type] = typeEntries[i];
|
||||
let { 0: name, 1: type } = typeEntries[i];
|
||||
|
||||
const optional = type.startsWith("?");
|
||||
if (optional) type = type.slice(1);
|
||||
|
@ -243,7 +243,7 @@
|
|||
return [new Function("view", str), new Uint32Array(offset)];
|
||||
}
|
||||
|
||||
const [statStruct, statBuf] = createByteStruct({
|
||||
const { 0: statStruct, 1: statBuf } = createByteStruct({
|
||||
isFile: "bool",
|
||||
isDirectory: "bool",
|
||||
isSymlink: "bool",
|
||||
|
@ -392,8 +392,8 @@
|
|||
atime,
|
||||
mtime,
|
||||
) {
|
||||
const [atimeSec, atimeNsec] = toUnixTimeFromEpoch(atime);
|
||||
const [mtimeSec, mtimeNsec] = toUnixTimeFromEpoch(mtime);
|
||||
const { 0: atimeSec, 1: atimeNsec } = toUnixTimeFromEpoch(atime);
|
||||
const { 0: mtimeSec, 1: mtimeNsec } = toUnixTimeFromEpoch(mtime);
|
||||
ops.op_futime_sync(rid, atimeSec, atimeNsec, mtimeSec, mtimeNsec);
|
||||
}
|
||||
|
||||
|
@ -402,8 +402,8 @@
|
|||
atime,
|
||||
mtime,
|
||||
) {
|
||||
const [atimeSec, atimeNsec] = toUnixTimeFromEpoch(atime);
|
||||
const [mtimeSec, mtimeNsec] = toUnixTimeFromEpoch(mtime);
|
||||
const { 0: atimeSec, 1: atimeNsec } = toUnixTimeFromEpoch(atime);
|
||||
const { 0: mtimeSec, 1: mtimeNsec } = toUnixTimeFromEpoch(mtime);
|
||||
await core.opAsync(
|
||||
"op_futime_async",
|
||||
rid,
|
||||
|
@ -419,8 +419,8 @@
|
|||
atime,
|
||||
mtime,
|
||||
) {
|
||||
const [atimeSec, atimeNsec] = toUnixTimeFromEpoch(atime);
|
||||
const [mtimeSec, mtimeNsec] = toUnixTimeFromEpoch(mtime);
|
||||
const { 0: atimeSec, 1: atimeNsec } = toUnixTimeFromEpoch(atime);
|
||||
const { 0: mtimeSec, 1: mtimeNsec } = toUnixTimeFromEpoch(mtime);
|
||||
ops.op_utime_sync(
|
||||
pathFromURL(path),
|
||||
atimeSec,
|
||||
|
@ -435,8 +435,8 @@
|
|||
atime,
|
||||
mtime,
|
||||
) {
|
||||
const [atimeSec, atimeNsec] = toUnixTimeFromEpoch(atime);
|
||||
const [mtimeSec, mtimeNsec] = toUnixTimeFromEpoch(mtime);
|
||||
const { 0: atimeSec, 1: atimeNsec } = toUnixTimeFromEpoch(atime);
|
||||
const { 0: mtimeSec, 1: mtimeNsec } = toUnixTimeFromEpoch(mtime);
|
||||
await core.opAsync(
|
||||
"op_utime_async",
|
||||
pathFromURL(path),
|
||||
|
|
|
@ -172,7 +172,7 @@
|
|||
);
|
||||
}
|
||||
|
||||
const [status, stdout, stderr] = await SafePromiseAll([
|
||||
const { 0: status, 1: stdout, 2: stderr } = await SafePromiseAll([
|
||||
this.#status,
|
||||
collectOutput(this.#stdout),
|
||||
collectOutput(this.#stderr),
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 3e5b0cea163cc0f2b3b0c7cedffc112cc49d6a78
|
||||
Subproject commit 17e31cec93aef7d014dcc46bc58ef1a86c0a9995
|
11
tools/wpt.ts
11
tools/wpt.ts
|
@ -285,7 +285,7 @@ function assertAllExpectationsHaveTests(
|
|||
const missingTests: string[] = [];
|
||||
|
||||
function walk(parentExpectation: Expectation, parent: string) {
|
||||
for (const key in parentExpectation) {
|
||||
for (const [key, expectation] of Object.entries(parentExpectation)) {
|
||||
const path = `${parent}/${key}`;
|
||||
if (
|
||||
filter &&
|
||||
|
@ -293,7 +293,6 @@ function assertAllExpectationsHaveTests(
|
|||
) {
|
||||
continue;
|
||||
}
|
||||
const expectation = parentExpectation[key];
|
||||
if (typeof expectation == "boolean" || Array.isArray(expectation)) {
|
||||
if (!tests.has(path)) {
|
||||
missingTests.push(path);
|
||||
|
@ -368,8 +367,8 @@ async function update() {
|
|||
|
||||
const currentExpectation = getExpectation();
|
||||
|
||||
for (const path in resultTests) {
|
||||
const { passed, failed, testSucceeded } = resultTests[path];
|
||||
for (const result of Object.values(resultTests)) {
|
||||
const { passed, failed, testSucceeded } = result;
|
||||
let finalExpectation: boolean | string[];
|
||||
if (failed.length == 0 && testSucceeded) {
|
||||
finalExpectation = true;
|
||||
|
@ -655,9 +654,7 @@ function discoverTestsToRun(
|
|||
parentExpectation: Expectation | string[] | boolean,
|
||||
prefix: string,
|
||||
) {
|
||||
for (const key in parentFolder) {
|
||||
const entry = parentFolder[key];
|
||||
|
||||
for (const [key, entry] of Object.entries(parentFolder)) {
|
||||
if (Array.isArray(entry)) {
|
||||
for (
|
||||
const [path, options] of entry.slice(
|
||||
|
|
Loading…
Reference in a new issue