1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-23 15:49:44 -05:00

fix(ext/console): fix error when logging a proxied Date (#16018)

This commit is contained in:
李瑞丰 2022-09-26 22:55:58 +08:00 committed by GitHub
parent b73cb7bf9c
commit a2262c11d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 7 deletions

View file

@ -1678,6 +1678,15 @@ Deno.test(function consoleLogShouldNotThrowErrorWhenInputIsProxiedMap() {
});
});
// console.log(new Proxy(new Date(), {}))
Deno.test(function consoleLogShouldNotThrowErrorWhenInputIsProxiedDate() {
mockConsole((console, out) => {
const proxiedDate = new Proxy(new Date("2022-09-24T15:59:39.529Z"), {});
console.log(proxiedDate);
assertEquals(stripColor(out.toString()), "2022-09-24T15:59:39.529Z\n");
});
});
// console.dir test
Deno.test(function consoleDir() {
mockConsole((console, out) => {

View file

@ -701,7 +701,11 @@
return handleCircular(value, cyan);
}
return inspectObject(value, inspectOptions, proxyDetails);
return inspectObject(
value,
inspectOptions,
proxyDetails,
);
default:
// Not implemented is red
return red("[Not Implemented]");
@ -1283,11 +1287,7 @@
return [baseString, refIndex];
}
function inspectObject(
value,
inspectOptions,
proxyDetails,
) {
function inspectObject(value, inspectOptions, proxyDetails) {
if (
ReflectHas(value, customInspect) &&
typeof value[customInspect] === "function"
@ -1330,7 +1330,10 @@
} else if (ObjectPrototypeIsPrototypeOf(RegExpPrototype, value)) {
return inspectRegExp(value, inspectOptions);
} else if (ObjectPrototypeIsPrototypeOf(DatePrototype, value)) {
return inspectDate(value, inspectOptions);
return inspectDate(
proxyDetails ? proxyDetails[0] : value,
inspectOptions,
);
} else if (ObjectPrototypeIsPrototypeOf(SetPrototype, value)) {
return inspectSet(
proxyDetails ? proxyDetails[0] : value,