summaryrefslogtreecommitdiff
path: root/cli/tsc/01_internals.js
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2020-07-22 12:03:46 -0400
committerGitHub <noreply@github.com>2020-07-22 12:03:46 -0400
commitbf9930066d3a5d26baad22fb1766de26be49c2ae (patch)
treee6176c72fdf2d89bb3e45855aba03d8a535b599c /cli/tsc/01_internals.js
parent9d13b539b5dfc96e2b5a0e89fc8e0312d6500fff (diff)
Reduce size of TypeScript Compiler snapshot (#6809)
This PR is intentionally ugly. It duplicates all of the code in cli/js2/ into cli/tsc/ ... because it's very important that we all understand that this code is unnecessarily duplicated in our binary. I hope this ugliness provides the motivation to clean it up. The typescript git submodule is removed, because it's a very large repo and contains all sorts of stuff we don't need. Instead the necessary files are copied directly into the deno repo. Hence +200k lines. COMPILER_SNAPSHOT.bin size ``` master 3448139 this branch 3320972 ``` Fixes #6812
Diffstat (limited to 'cli/tsc/01_internals.js')
-rw-r--r--cli/tsc/01_internals.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/cli/tsc/01_internals.js b/cli/tsc/01_internals.js
new file mode 100644
index 000000000..eee9eeaf7
--- /dev/null
+++ b/cli/tsc/01_internals.js
@@ -0,0 +1,23 @@
+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+
+((window) => {
+ const internalSymbol = Symbol("Deno.internal");
+
+ // The object where all the internal fields for testing will be living.
+ const internalObject = {};
+
+ // Register a field to internalObject for test access,
+ // through Deno[Deno.internal][name].
+ function exposeForTest(name, value) {
+ Object.defineProperty(internalObject, name, {
+ value,
+ enumerable: false,
+ });
+ }
+
+ window.__bootstrap.internals = {
+ internalSymbol,
+ internalObject,
+ exposeForTest,
+ };
+})(this);