summaryrefslogtreecommitdiff
path: root/test/parallel/test-bootstrap-modules.js
diff options
context:
space:
mode:
authorJoyee Cheung <joyeec9h3@gmail.com>2018-11-21 07:31:25 +0800
committerJoyee Cheung <joyeec9h3@gmail.com>2018-11-29 01:52:54 +0800
commit333783643e71aeef3940fae215e7cf52ef00d5f0 (patch)
tree6338e974febd1685dcf1f4d921bde577f4a274dc /test/parallel/test-bootstrap-modules.js
parent8ce0d4fdf15d4ffdc4cf13f1db44eb1f7556741f (diff)
downloadandroid-node-v8-333783643e71aeef3940fae215e7cf52ef00d5f0.tar.gz
android-node-v8-333783643e71aeef3940fae215e7cf52ef00d5f0.tar.bz2
android-node-v8-333783643e71aeef3940fae215e7cf52ef00d5f0.zip
console: lazy load process.stderr and process.stdout
This patch: - Refactors the Console constructor: moves the property binding code into and the writable streams binding code into two methods defined on the Console.prototype with symbols. - Refactors the global console creation: we only need to share the property binding code from the Console constructor. To bind the streams we can lazy load `process.stdio` and `process.stderr` so that we don't create these streams when they are not used. This significantly reduces the number of modules loaded during bootstrap. Also, by calling the refactored-out method directly we can skip the unnecessary typechecks when creating the global console and there is no need to create a temporary Console anymore. - Refactors the error handler creation and the `write` method: use a `kUseStdout` symbol to tell the internals which stream should be loaded from the console instance. Also put the `write` method on the Console prototype so it just loads other properties directly off the console instance which simplifies the call sites. Also leaves a few TODOs for further refactoring of the console bootstrap. PR-URL: https://github.com/nodejs/node/pull/24534 Reviewed-By: Gus Caplan <me@gus.host>
Diffstat (limited to 'test/parallel/test-bootstrap-modules.js')
-rw-r--r--test/parallel/test-bootstrap-modules.js18
1 files changed, 10 insertions, 8 deletions
diff --git a/test/parallel/test-bootstrap-modules.js b/test/parallel/test-bootstrap-modules.js
index 70011637e0..272dec4006 100644
--- a/test/parallel/test-bootstrap-modules.js
+++ b/test/parallel/test-bootstrap-modules.js
@@ -1,14 +1,16 @@
-/* eslint-disable node-core/required-modules */
-
+// Flags: --expose-internals
'use strict';
-// Ordinarily test files must require('common') but that action causes
-// the global console to be compiled, defeating the purpose of this test.
-// This makes sure no additional files are added without carefully considering
-// lazy loading. Please adjust the value if necessary.
-
+// This list must be computed before we require any modules to
+// to eliminate the noise.
const list = process.moduleLoadList.slice();
+const common = require('../common');
const assert = require('assert');
-assert(list.length <= 78, list);
+const isMainThread = common.isMainThread;
+const kMaxModuleCount = isMainThread ? 56 : 78;
+
+assert(list.length <= kMaxModuleCount,
+ `Total length: ${list.length}\n` + list.join('\n')
+);