summaryrefslogtreecommitdiff
path: root/cli/js/internals.ts
diff options
context:
space:
mode:
authorKevin (Kun) "Kassimo" Qian <kevinkassimo@gmail.com>2020-01-16 16:42:58 -0800
committerRy Dahl <ry@tinyclouds.org>2020-01-16 19:42:58 -0500
commit0a78bfb836f520d3709a32c8a978d08d33198d83 (patch)
treeaa96e2164ea39d8856a4eca7eeb5c21388d8a4b7 /cli/js/internals.ts
parentcad7b3e4fe4e368882628dbde8512f36d142098b (diff)
Add Deno.symbols and move internal fields for test (#3693)
Diffstat (limited to 'cli/js/internals.ts')
-rw-r--r--cli/js/internals.ts16
1 files changed, 16 insertions, 0 deletions
diff --git a/cli/js/internals.ts b/cli/js/internals.ts
new file mode 100644
index 000000000..6aae1be48
--- /dev/null
+++ b/cli/js/internals.ts
@@ -0,0 +1,16 @@
+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+export const internalSymbol = Symbol("Deno.internal");
+
+// The object where all the internal fields for testing will be living.
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+export const internalObject: { [key: string]: any } = {};
+
+// Register a field to internalObject for test access,
+// through Deno[Deno.symbols.internal][name].
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+export function exposeForTest(name: string, value: any): void {
+ Object.defineProperty(internalObject, name, {
+ value,
+ enumerable: false
+ });
+}