diff options
Diffstat (limited to 'core/runtime/error_builder_test.js')
-rw-r--r-- | core/runtime/error_builder_test.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/core/runtime/error_builder_test.js b/core/runtime/error_builder_test.js new file mode 100644 index 000000000..f442819cb --- /dev/null +++ b/core/runtime/error_builder_test.js @@ -0,0 +1,32 @@ +// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. +const { core } = Deno; +const { ops } = core; + +class DOMException { + constructor(message, code) { + this.msg = message; + this.code = code; + } +} + +core.registerErrorBuilder( + "DOMExceptionOperationError", + function DOMExceptionOperationError(msg) { + return new DOMException(msg, "OperationError"); + }, +); + +try { + ops.op_err(); + throw new Error("op_err didn't throw!"); +} catch (err) { + if (!(err instanceof DOMException)) { + throw new Error("err not DOMException"); + } + if (err.msg !== "abc") { + throw new Error("err.message is incorrect"); + } + if (err.code !== "OperationError") { + throw new Error("err.code is incorrect"); + } +} |