mirror of
https://github.com/denoland/deno.git
synced 2025-12-23 08:48:24 +00:00
Introduces the emitWarning function from the process module to enable warning capabilities within the console constructor implementation. This fixes a bug where the `time`, `countReset` and `timeLogImpl` functions would throw an error due to trying to call `emitWarning`, they would throw an error for an undefined variable named `emitWarning` or if a global function had that name` they would call that function, which is not expected behaviour here. --------- Signed-off-by: Jake Champion <me@jakechampion.name>
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
|
|
import vm from "node:vm";
|
|
import { stripAnsiCode } from "@std/fmt/colors";
|
|
import { assertStringIncludes } from "@std/assert";
|
|
|
|
import { Console } from "node:console";
|
|
import process from "node:process";
|
|
|
|
Deno.test(function inspectCrossRealmObjects() {
|
|
assertStringIncludes(
|
|
stripAnsiCode(
|
|
Deno.inspect(vm.runInNewContext(`new Error("This is an error")`)),
|
|
),
|
|
"Error: This is an error",
|
|
);
|
|
assertStringIncludes(
|
|
stripAnsiCode(
|
|
Deno.inspect(
|
|
vm.runInNewContext(`new AggregateError([], "This is an error")`),
|
|
),
|
|
),
|
|
"AggregateError: This is an error",
|
|
);
|
|
assertStringIncludes(
|
|
stripAnsiCode(
|
|
Deno.inspect(vm.runInNewContext(`new Date("2018-12-10T02:26:59.002Z")`)),
|
|
),
|
|
"2018-12-10T02:26:59.002Z",
|
|
);
|
|
});
|
|
|
|
Deno.test("Console time and count methods don't throw when called with missing labels", () => {
|
|
const console = new Console({
|
|
stdout: process.stdout,
|
|
stderr: process.stderr,
|
|
});
|
|
console.timeEnd();
|
|
console.timeLog();
|
|
console.time();
|
|
console.countReset();
|
|
});
|