lib: lazy load v8 in error-serdes · nodejs/node@cc4a25a (original) (raw)

2 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
1 1 'use strict';
2 2
3 3 const Buffer = require('buffer').Buffer;
4 -const { serialize, deserialize } = require('v8');
5 4 const {
6 5 SafeSet,
7 6 Object,
@@ -85,7 +84,9 @@ function inspect(...args) {
85 84 return internalUtilInspect.inspect(...args);
86 85 }
87 86
87 +let serialize;
88 88 function serializeError(error) {
89 +if (!serialize) serialize = require('v8').serialize;
89 90 try {
90 91 if (typeof error === 'object' &&
91 92 ObjectPrototypeToString(error) === '[object Error]') {
@@ -110,7 +111,9 @@ function serializeError(error) {
110 111 Buffer.from(inspect(error), 'utf8')]);
111 112 }
112 113
114 +let deserialize;
113 115 function deserializeError(error) {
116 +if (!deserialize) deserialize = require('v8').deserialize;
114 117 switch (error[0]) {
115 118 case kSerializedError:
116 119 const { constructor, properties } = deserialize(error.subarray(1));
Original file line number Diff line number Diff line change
@@ -71,13 +71,8 @@ if (common.isMainThread) {
71 71 expectedModules.add('NativeModule internal/process/main_thread_only');
72 72 expectedModules.add('NativeModule internal/process/stdio');
73 73 } else {
74 -expectedModules.add('Internal Binding heap_utils');
75 74 expectedModules.add('Internal Binding messaging');
76 -expectedModules.add('Internal Binding serdes');
77 -expectedModules.add('Internal Binding stream_wrap');
78 75 expectedModules.add('Internal Binding symbols');
79 -expectedModules.add('Internal Binding uv');
80 -expectedModules.add('Internal Binding v8');
81 76 expectedModules.add('Internal Binding worker');
82 77 expectedModules.add('NativeModule _stream_duplex');
83 78 expectedModules.add('NativeModule _stream_passthrough');
@@ -86,7 +81,6 @@ if (common.isMainThread) {
86 81 expectedModules.add('NativeModule _stream_writable');
87 82 expectedModules.add('NativeModule internal/error-serdes');
88 83 expectedModules.add('NativeModule internal/process/worker_thread_only');
89 -expectedModules.add('NativeModule internal/stream_base_commons');
90 84 expectedModules.add('NativeModule internal/streams/buffer_list');
91 85 expectedModules.add('NativeModule internal/streams/destroy');
92 86 expectedModules.add('NativeModule internal/streams/end-of-stream');
@@ -97,7 +91,6 @@ if (common.isMainThread) {
97 91 expectedModules.add('NativeModule internal/worker/io');
98 92 expectedModules.add('NativeModule module');
99 93 expectedModules.add('NativeModule stream');
100 -expectedModules.add('NativeModule v8');
101 94 expectedModules.add('NativeModule worker_threads');
102 95 }
103 96