summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/node/polyfills/_utils.ts4
-rw-r--r--ext/node/polyfills/internal/errors.ts10
-rw-r--r--tests/unit_node/perf_hooks_test.ts15
3 files changed, 26 insertions, 3 deletions
diff --git a/ext/node/polyfills/_utils.ts b/ext/node/polyfills/_utils.ts
index b50c113e1..79d84e00f 100644
--- a/ext/node/polyfills/_utils.ts
+++ b/ext/node/polyfills/_utils.ts
@@ -17,6 +17,7 @@ const {
import { TextDecoder, TextEncoder } from "ext:deno_web/08_text_encoding.js";
import { errorMap } from "ext:deno_node/internal_binding/uv.ts";
import { codes } from "ext:deno_node/internal/error_codes.ts";
+import { ERR_NOT_IMPLEMENTED } from "ext:deno_node/internal/errors.ts";
export type BinaryEncodings = "binary";
@@ -34,8 +35,7 @@ export type TextEncodings =
export type Encodings = BinaryEncodings | TextEncodings;
export function notImplemented(msg: string): never {
- const message = msg ? `Not implemented: ${msg}` : "Not implemented";
- throw new Error(message);
+ throw new ERR_NOT_IMPLEMENTED(msg);
}
export function warnNotImplemented(msg?: string) {
diff --git a/ext/node/polyfills/internal/errors.ts b/ext/node/polyfills/internal/errors.ts
index 962ca86e9..61b53fa96 100644
--- a/ext/node/polyfills/internal/errors.ts
+++ b/ext/node/polyfills/internal/errors.ts
@@ -2390,6 +2390,15 @@ export class ERR_INVALID_RETURN_VALUE extends NodeTypeError {
}
}
+export class ERR_NOT_IMPLEMENTED extends NodeError {
+ constructor(message?: string) {
+ super(
+ "ERR_NOT_IMPLEMENTED",
+ message ? `Not implemented: ${message}` : "Not implemented",
+ );
+ }
+}
+
export class ERR_INVALID_URL extends NodeTypeError {
input: string;
constructor(input: string) {
@@ -2862,6 +2871,7 @@ export default {
ERR_INVALID_SYNC_FORK_INPUT,
ERR_INVALID_THIS,
ERR_INVALID_TUPLE,
+ ERR_NOT_IMPLEMENTED,
ERR_INVALID_URI,
ERR_INVALID_URL,
ERR_INVALID_URL_SCHEME,
diff --git a/tests/unit_node/perf_hooks_test.ts b/tests/unit_node/perf_hooks_test.ts
index d5b900041..8247f9fd3 100644
--- a/tests/unit_node/perf_hooks_test.ts
+++ b/tests/unit_node/perf_hooks_test.ts
@@ -1,6 +1,10 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
import * as perfHooks from "node:perf_hooks";
-import { performance, PerformanceObserver } from "node:perf_hooks";
+import {
+ monitorEventLoopDelay,
+ performance,
+ PerformanceObserver,
+} from "node:perf_hooks";
import { assertEquals, assertThrows } from "@std/assert";
Deno.test({
@@ -68,3 +72,12 @@ Deno.test("[perf_hooks]: eventLoopUtilization", () => {
assertEquals(typeof obj.active, "number");
assertEquals(typeof obj.utilization, "number");
});
+
+Deno.test("[perf_hooks]: monitorEventLoopDelay", () => {
+ const e = assertThrows(() => {
+ monitorEventLoopDelay({ resolution: 1 });
+ });
+
+ // deno-lint-ignore no-explicit-any
+ assertEquals((e as any).code, "ERR_NOT_IMPLEMENTED");
+});