@@ -13,7 +13,7 @@ const {
13
13
14
14
const {
15
15
DOMException,
16
- } = internalBinding ( 'messaging ' ) ;
16
+ } = internalBinding ( 'errors ' ) ;
17
17
18
18
const {
19
19
ReadableStream,
@@ -40,66 +40,6 @@ const {
40
40
kDeserialize,
41
41
} = require ( 'internal/worker/js_transferable' ) ;
42
42
43
- // This class is a bit of a hack. The Node.js implementation of
44
- // DOMException is not transferable/cloneable. This provides us
45
- // with a variant that is. Unfortunately, it means playing around
46
- // a bit with the message, name, and code properties and the
47
- // prototype. We can revisit this if DOMException is ever made
48
- // properly cloneable.
49
- class CloneableDOMException extends DOMException {
50
- constructor ( message , name ) {
51
- super ( message , name ) ;
52
- this [ kDeserialize ] ( {
53
- message : this . message ,
54
- name : this . name ,
55
- code : this . code ,
56
- } ) ;
57
- // eslint-disable-next-line no-constructor-return
58
- return makeTransferable ( this ) ;
59
- }
60
-
61
- [ kClone ] ( ) {
62
- return {
63
- data : {
64
- message : this . message ,
65
- name : this . name ,
66
- code : this . code ,
67
- } ,
68
- deserializeInfo :
69
- 'internal/webstreams/transfer:InternalCloneableDOMException'
70
- } ;
71
- }
72
-
73
- [ kDeserialize ] ( { message, name, code } ) {
74
- ObjectDefineProperties ( this , {
75
- message : {
76
- configurable : true ,
77
- enumerable : true ,
78
- get ( ) { return message ; } ,
79
- } ,
80
- name : {
81
- configurable : true ,
82
- enumerable : true ,
83
- get ( ) { return name ; } ,
84
- } ,
85
- code : {
86
- configurable : true ,
87
- enumerable : true ,
88
- get ( ) { return code ; } ,
89
- } ,
90
- } ) ;
91
- }
92
- }
93
-
94
- function InternalCloneableDOMException ( ) {
95
- return makeTransferable (
96
- ReflectConstruct (
97
- CloneableDOMException ,
98
- [ ] ,
99
- DOMException ) ) ;
100
- }
101
- InternalCloneableDOMException [ kDeserialize ] = ( ) => { } ;
102
-
103
43
class CrossRealmTransformReadableSource {
104
44
constructor ( port ) {
105
45
this [ kState ] = {
@@ -133,7 +73,7 @@ class CrossRealmTransformReadableSource {
133
73
} ;
134
74
135
75
port . onmessageerror = ( ) => {
136
- const error = new CloneableDOMException (
76
+ const error = new DOMException (
137
77
'Internal transferred ReadableStream error' ,
138
78
'DataCloneError' ) ;
139
79
port . postMessage ( { type : 'error' , value : error } ) ;
@@ -156,10 +96,6 @@ class CrossRealmTransformReadableSource {
156
96
try {
157
97
this [ kState ] . port . postMessage ( { type : 'error' , value : reason } ) ;
158
98
} catch ( error ) {
159
- if ( error instanceof DOMException ) {
160
- // eslint-disable-next-line no-ex-assign
161
- error = new CloneableDOMException ( error . message , error . name ) ;
162
- }
163
99
this [ kState ] . port . postMessage ( { type : 'error' , value : error } ) ;
164
100
throw error ;
165
101
} finally {
@@ -200,7 +136,7 @@ class CrossRealmTransformWritableSink {
200
136
}
201
137
} ;
202
138
port . onmessageerror = ( ) => {
203
- const error = new CloneableDOMException (
139
+ const error = new DOMException (
204
140
'Internal transferred ReadableStream error' ,
205
141
'DataCloneError' ) ;
206
142
port . postMessage ( { type : 'error' , value : error } ) ;
@@ -229,10 +165,6 @@ class CrossRealmTransformWritableSink {
229
165
try {
230
166
this [ kState ] . port . postMessage ( { type : 'chunk' , value : chunk } ) ;
231
167
} catch ( error ) {
232
- if ( error instanceof DOMException ) {
233
- // eslint-disable-next-line no-ex-assign
234
- error = new CloneableDOMException ( error . message , error . name ) ;
235
- }
236
168
this [ kState ] . port . postMessage ( { type : 'error' , value : error } ) ;
237
169
this [ kState ] . port . close ( ) ;
238
170
throw error ;
@@ -248,10 +180,6 @@ class CrossRealmTransformWritableSink {
248
180
try {
249
181
this [ kState ] . port . postMessage ( { type : 'error' , value : reason } ) ;
250
182
} catch ( error ) {
251
- if ( error instanceof DOMException ) {
252
- // eslint-disable-next-line no-ex-assign
253
- error = new CloneableDOMException ( error . message , error . name ) ;
254
- }
255
183
this [ kState ] . port . postMessage ( { type : 'error' , value : error } ) ;
256
184
throw error ;
257
185
} finally {
@@ -294,6 +222,4 @@ module.exports = {
294
222
newCrossRealmWritableSink,
295
223
CrossRealmTransformWritableSink,
296
224
CrossRealmTransformReadableSource,
297
- CloneableDOMException,
298
- InternalCloneableDOMException,
299
225
} ;
0 commit comments