• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2024 SwanLink (Jiangsu) Technology Development Co., LTD.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15import { MessageEvents, ThreadWorkerGlobalScope, worker } from '@kit.ArkTS';
16import napitest from 'libnapitest.so';
17// import napitest from 'libentry.so';
18
19declare class ArkTools {
20  static forceFullGC(): void;
21}
22
23interface WorkerMessage {
24  messageType: string;
25  value: Length | object | boolean;
26}
27
28const workerPort: ThreadWorkerGlobalScope = worker.workerPort;
29
30/**
31 * Defines the event handler to be called when the worker thread receives a message sent by the host thread.
32 * The event handler is executed in the worker thread.
33 *
34 * @param e message data
35 */
36workerPort.onmessage = (e: MessageEvents) => {
37  console.info('Worker received message:', e.data);
38  const data: WorkerMessage = e.data;
39  switch (data.messageType) {
40    case 'getLastError': {
41      const receivedValue = data.value;
42      console.info('Worker: received value is ' + receivedValue);
43      ArkTools.forceFullGC();
44      const value: boolean = receivedValue === 2000;
45      workerPort.postMessage(value);
46      break;
47    }
48    case 'isError': {
49      const receivedValue = data.value;
50      console.info('Worker: received value is ' + receivedValue);
51      ArkTools.forceFullGC();
52      const value: boolean = receivedValue === false;
53      workerPort.postMessage(value);
54      break;
55    }
56    case 'createError': {
57      const receivedValue = data.value;
58      console.info('Worker: received value is ' + receivedValue);
59      ArkTools.forceFullGC();
60      const value: boolean = receivedValue === 0;
61      workerPort.postMessage(value);
62      break;
63    }
64    case 'createRangeError': {
65      const receivedValue = data.value;
66      console.info('Worker: received value is ' + receivedValue);
67      ArkTools.forceFullGC();
68      const value: boolean = receivedValue === 0;
69      workerPort.postMessage(value);
70      break;
71    }
72    case 'isExceptionPending': {
73      const receivedValue = data.value;
74      console.info('Worker: received value is ' + receivedValue);
75      ArkTools.forceFullGC();
76      const value: boolean = receivedValue === 0;
77      workerPort.postMessage(value);
78      break;
79    }
80    case 'createReference': {
81      const receivedValue = data.value;
82      console.info('Worker: received value is ' + receivedValue);
83      ArkTools.forceFullGC();
84      const value: boolean = receivedValue === 0;
85      workerPort.postMessage(value);
86      break;
87    }
88    case 'referenceRefAndUnref': {
89      const receivedValue = data.value;
90      console.info('Worker: received value is ' + receivedValue);
91      ArkTools.forceFullGC();
92      const value: boolean = receivedValue === 0;
93      workerPort.postMessage(value);
94      break;
95    }
96    case 'createArrayAndGetLength': {
97      const receivedValue = data.value;
98      console.info('Worker: received value is ' + receivedValue);
99      ArkTools.forceFullGC();
100      const value: boolean = receivedValue.toString() === '1,2';
101      workerPort.postMessage(value);
102      break;
103    }
104    case 'createExternal': {
105      const receivedValue = data.value;
106      console.info('Worker: received value is ' + receivedValue);
107      ArkTools.forceFullGC();
108      const value: boolean = receivedValue === 0;
109      workerPort.postMessage(value);
110      break;
111    }
112    case 'createExternalArraybuffer': {
113      const receivedValue = data.value;
114      console.info('Worker: received value is ' + receivedValue);
115      ArkTools.forceFullGC();
116      const value = receivedValue instanceof ArrayBuffer;
117      workerPort.postMessage(value);
118      break;
119    }
120    case 'createObject': {
121      const receivedValue = data.value;
122      console.info('Worker: createObject value is ', receivedValue);
123      ArkTools.forceFullGC();
124      const createObjectRes = receivedValue instanceof Object;
125      workerPort.postMessage(createObjectRes);
126      break;
127    }
128    case 'createSymbol': {
129      const receivedValue = data.value;
130      console.info('Worker: createSymbol value is ', receivedValue);
131      ArkTools.forceFullGC();
132      const value: boolean = receivedValue === 0;
133      workerPort.postMessage(value);
134      break;
135    }
136    case 'createTypeArray': {
137      const receivedValue = data.value;
138      console.info('Worker: createTypeArray value is ', receivedValue);
139      ArkTools.forceFullGC();
140      const isArrayType = receivedValue instanceof Int32Array;
141      workerPort.postMessage(isArrayType);
142      break;
143    }
144    case 'getValueBool': {
145      const receivedValue = data.value;
146      console.info('Worker: getValueBool value is ', receivedValue);
147      ArkTools.forceFullGC();
148      const value: boolean = receivedValue === false;
149      workerPort.postMessage(value);
150      break;
151    }
152    case 'createAndGetInt32': {
153      const receivedValue = data.value;
154      console.info('Worker: createAndGetInt32 value is ', receivedValue);
155      ArkTools.forceFullGC();
156      const value: boolean = receivedValue === 32;
157      workerPort.postMessage(value);
158      break;
159    }
160    case 'createAndGetUInt32': {
161      const receivedValue = data.value;
162      console.info('Worker: createAndGetUInt32 value is ', receivedValue);
163      ArkTools.forceFullGC();
164      const value: boolean = receivedValue === 32;
165      workerPort.postMessage(value);
166      break;
167    }
168    case 'createAndGetInt64': {
169      const receivedValue = data.value;
170      console.info('Worker: createAndGetInt64 value is ', receivedValue);
171      ArkTools.forceFullGC();
172      const value: boolean = receivedValue === 23;
173      workerPort.postMessage(value);
174      break;
175    }
176    case 'createDouble': {
177      const receivedValue = data.value;
178      console.info('Worker: createDouble value is ', receivedValue);
179      ArkTools.forceFullGC();
180      const value: boolean = receivedValue === 24.67;
181      workerPort.postMessage(value);
182      break;
183    }
184    case 'createAndGetStringUtf16': {
185      const receivedValue = data.value;
186      console.info('Worker: createAndGetStringUtf16 value is ', receivedValue);
187      ArkTools.forceFullGC();
188      const value: boolean = receivedValue === 'he';
189      workerPort.postMessage(value);
190      break;
191    }
192    case 'stringUtf16OfCase': {
193      const receivedValue = data.value;
194      console.info('Worker: stringUtf16OfCase value is ', receivedValue);
195      ArkTools.forceFullGC();
196      const value: boolean = receivedValue === 'abc2';
197      workerPort.postMessage(value);
198      break;
199    }
200    case 'getValueDouble': {
201      const receivedValue = data.value;
202      console.info('Worker: getValueDouble value is ', receivedValue);
203      ArkTools.forceFullGC();
204      const value = receivedValue === 24.5;
205      workerPort.postMessage(value);
206      break;
207    }
208    case 'getValueExternal': {
209      const receivedValue = data.value;
210      console.info('Worker: getValueExternal value is ', receivedValue);
211      ArkTools.forceFullGC();
212      const value = receivedValue === 0;
213      workerPort.postMessage(value);
214      break;
215    }
216    case 'getNull': {
217      const receivedValue = data.value;
218      console.info('Worker: getNull value is ', receivedValue);
219      ArkTools.forceFullGC();
220      const value = receivedValue == 0;
221      workerPort.postMessage(value);
222      break;
223    }
224    case 'getUndefined': {
225      const receivedValue = data.value;
226      console.info('Worker: getUndefined value is ', receivedValue);
227      ArkTools.forceFullGC();
228      const value = receivedValue == 0;
229      workerPort.postMessage(value);
230      break;
231    }
232    case 'coerceToBool': {
233      const receivedValue = data.value;
234      console.info('Worker: coerceToBool value is ', receivedValue);
235      ArkTools.forceFullGC();
236      const value = receivedValue === false;
237      workerPort.postMessage(value);
238      break;
239    }
240    case 'coerceToNumber': {
241      const receivedValue = data.value;
242      console.info('Worker: coerceToNumber value is ', receivedValue);
243      ArkTools.forceFullGC();
244      const value = receivedValue === 12;
245      workerPort.postMessage(value);
246      break;
247    }
248    case 'coerceToObject': {
249      const receivedValue = data.value;
250      console.info('Worker: coerceToObject value is ', receivedValue);
251      ArkTools.forceFullGC();
252      const value = JSON.stringify(receivedValue) === '[2,3]';
253      workerPort.postMessage(value);
254      break;
255    }
256    case 'coerceToString': {
257      const receivedValue = data.value;
258      console.info('Worker: coerceToString value is ', receivedValue);
259      ArkTools.forceFullGC();
260      const value = receivedValue === '123';
261      workerPort.postMessage(value);
262      break;
263    }
264    case 'typeOf': {
265      const receivedValue = data.value;
266      console.info('Worker: typeOf value is ', receivedValue);
267      ArkTools.forceFullGC();
268      const value = receivedValue === 0;
269      workerPort.postMessage(value);
270      break;
271    }
272    case 'isArray': {
273      const receivedValue = data.value;
274      console.info('Worker: isArray value is ', receivedValue);
275      ArkTools.forceFullGC();
276      const value = receivedValue === 0;
277      workerPort.postMessage(value);
278      break;
279    }
280    case 'strictEquals': {
281      const receivedValue = data.value;
282      console.info('Worker: strictEquals value is ', receivedValue);
283      ArkTools.forceFullGC();
284      const value = receivedValue === 0;
285      workerPort.postMessage(value);
286      break;
287    }
288    case 'getPropertyNames': {
289      const receivedValue = data.value;
290      console.info('Worker: getPropertyNames value is ', receivedValue);
291      ArkTools.forceFullGC();
292      const value = receivedValue === 0;
293      workerPort.postMessage(value);
294      break;
295    }
296    case 'setProperty': {
297      const receivedValue = data.value;
298      console.info('Worker: setProperty value is ', receivedValue);
299      ArkTools.forceFullGC();
300      const value = receivedValue instanceof Object;
301      workerPort.postMessage(value);
302      break;
303    }
304    case 'getProperty': {
305      const receivedValue = data.value;
306      console.info('Worker: getProperty value is ', receivedValue);
307      ArkTools.forceFullGC();
308      const value = receivedValue instanceof Object;
309      workerPort.postMessage(value);
310      break;
311    }
312    case 'hasProperty': {
313      const receivedValue = data.value;
314      console.info('Worker: hasProperty value is ', receivedValue);
315      ArkTools.forceFullGC();
316      const value = receivedValue === 0;
317      workerPort.postMessage(value);
318      break;
319    }
320    case 'setAndDeleteProperty': {
321      const receivedValue = data.value;
322      console.info('Worker: setAndDeleteProperty value is ', receivedValue);
323      ArkTools.forceFullGC();
324      const value = receivedValue === 0;
325      workerPort.postMessage(value);
326      break;
327    }
328    case 'hasOwnProperty': {
329      const receivedValue = data.value;
330      console.info('Worker: hasOwnProperty value is ', receivedValue);
331      ArkTools.forceFullGC();
332      workerPort.postMessage(receivedValue);
333      break;
334    }
335    case 'setNamedProperty': {
336      const receivedValue = data.value;
337      console.info('Worker: setNamedProperty value is ', receivedValue);
338      ArkTools.forceFullGC();
339      workerPort.postMessage(receivedValue);
340      break;
341    }
342    case 'getNamedProperty': {
343      const receivedValue = data.value;
344      console.info('Worker: getNamedProperty value is ', receivedValue);
345      ArkTools.forceFullGC();
346      const value = receivedValue === 'zhangsan';
347      workerPort.postMessage(value);
348      break;
349    }
350    case 'hasNamedProperty': {
351      const receivedValue = data.value;
352      console.info('Worker: hasNamedProperty value is ', receivedValue);
353      ArkTools.forceFullGC();
354      workerPort.postMessage(receivedValue);
355      break;
356    }
357    case 'setElement': {
358      const receivedValue = data.value;
359      console.info('Worker: setElement value is ', receivedValue);
360      ArkTools.forceFullGC();
361      const value = receivedValue instanceof Object;
362      workerPort.postMessage(value);
363      break;
364    }
365    case 'getElement': {
366      const receivedValue = data.value;
367      console.info('Worker: getElement value is ', receivedValue);
368      ArkTools.forceFullGC();
369      const value = receivedValue instanceof Object;
370      workerPort.postMessage(value);
371      break;
372    }
373    case 'hasElement': {
374      const receivedValue = data.value;
375      console.info('Worker: hasElement value is ', receivedValue);
376      ArkTools.forceFullGC();
377      const value = receivedValue instanceof Object;
378      workerPort.postMessage(value);
379      break;
380    }
381    case 'deleteElement': {
382      const receivedValue = data.value;
383      console.info('Worker: deleteElement value is ', receivedValue);
384      ArkTools.forceFullGC();
385      const value = receivedValue instanceof Object;
386      workerPort.postMessage(value);
387      break;
388    }
389    case 'defineProperties': {
390      const receivedValue = data.value;
391      console.info('Worker: defineProperties value is ', receivedValue);
392      ArkTools.forceFullGC();
393      const value = receivedValue instanceof Object;
394      workerPort.postMessage(value);
395      break;
396    }
397    case 'callFunctionNull': {
398      const receivedValue = data.value;
399      console.info('Worker: callFunctionNull value is ', receivedValue);
400      ArkTools.forceFullGC();
401      const value = receivedValue === 1;
402      workerPort.postMessage(value);
403      break;
404    }
405    case 'napiCreateFunctionFuncNull': {
406      const receivedValue = data.value;
407      console.info('Worker: napiCreateFunctionFuncNull value is ', receivedValue);
408      ArkTools.forceFullGC();
409      const value = receivedValue === 0;
410      workerPort.postMessage(value);
411      break;
412    }
413    case 'napiGetCbInfo': {
414      const receivedValue = data.value;
415      console.info('Worker: napiGetCbInfo value is ', receivedValue);
416      ArkTools.forceFullGC();
417      const value = receivedValue === 12.06;
418      workerPort.postMessage(value);
419      break;
420    }
421    case 'unwrap': {
422      const receivedValue = data.value;
423      console.info('Worker: unwrap value is ', receivedValue);
424      ArkTools.forceFullGC();
425      const value = receivedValue === 0;
426      workerPort.postMessage(value);
427      break;
428    }
429    case 'removeWrap': {
430      const receivedValue = data.value;
431      console.info('Worker: removeWrap value is ', receivedValue);
432      ArkTools.forceFullGC();
433      const value = receivedValue === 0;
434      workerPort.postMessage(value);
435      break;
436    }
437    case 'getVersion': {
438      const receivedValue = data.value;
439      console.info('Worker: getVersion value is ', receivedValue);
440      ArkTools.forceFullGC();
441      const value = receivedValue === 8;
442      workerPort.postMessage(value);
443      break;
444    }
445    case 'createPromise': {
446      const receivedValue = data.value;
447      console.info('Worker: createPromise value is ', receivedValue);
448      ArkTools.forceFullGC();
449      const value = receivedValue === 0;
450      workerPort.postMessage(value);
451      break;
452    }
453    case 'resolveAndRejectDeferred': {
454      const receivedValue = data.value;
455      console.info('Worker: resolveAndRejectDeferred value is ', receivedValue);
456      ArkTools.forceFullGC();
457      const value = receivedValue === 0;
458      workerPort.postMessage(value);
459      break;
460    }
461    case 'isPromise': {
462      const receivedValue = data.value;
463      console.info('Worker: isPromise value is ', receivedValue);
464      ArkTools.forceFullGC();
465      const value = receivedValue === 0;
466      workerPort.postMessage(value);
467      break;
468    }
469    case 'napiCreateThreadsafeFunction': {
470      const receivedValue = data.value;
471      console.info('Worker: napiCreateThreadsafeFunction value is ', receivedValue);
472      ArkTools.forceFullGC();
473      const value = receivedValue === 0;
474      workerPort.postMessage(value);
475      break;
476    }
477    case 'napiDeleteSerializationDataTest': {
478      const receivedValue = data.value;
479      console.info('Worker: napiDeleteSerializationDataTest value is ', receivedValue);
480      ArkTools.forceFullGC();
481      const value = receivedValue === 2000;
482      workerPort.postMessage(value);
483      break;
484    }
485    case 'napiCallThreadsafeFunction': {
486      const receivedValue = data.value;
487      console.info('Worker: napiCallThreadsafeFunction value is ', receivedValue);
488      ArkTools.forceFullGC();
489      const value = receivedValue === 0;
490      workerPort.postMessage(value);
491      break;
492    }
493    case 'napiAnotherThreadSafeTest': {
494      const receivedValue = data.value;
495      console.info('Worker: napiAnotherThreadSafeTest value is ', receivedValue);
496      ArkTools.forceFullGC();
497      const value = receivedValue === 1;
498      workerPort.postMessage(value);
499      break;
500    }
501    case 'napiRefThreadsafeFunction': {
502      const receivedValue = data.value;
503      console.info('Worker: napiRefThreadsafeFunction value is ', receivedValue);
504      ArkTools.forceFullGC();
505      const value = receivedValue === 0;
506      workerPort.postMessage(value);
507      break;
508    }
509    case 'napiCreateDate': {
510      const receivedValue = data.value;
511      console.info('Worker: napiCreateDate value is ', receivedValue);
512      ArkTools.forceFullGC();
513      const value = receivedValue === 1;
514      workerPort.postMessage(value);
515      break;
516    }
517    case 'napiCreateBigintInt64': {
518      const receivedValue = data.value;
519      console.info('Worker: napiCreateBigintInt64 value is: ', receivedValue);
520      ArkTools.forceFullGC();
521      const value = receivedValue === 1;
522      workerPort.postMessage(value);
523      break;
524    }
525    case 'napiCreateBigintUint64': {
526      const receivedValue = data.value;
527      console.info('Worker: napiCreateBigintUint64 value is: ', receivedValue);
528      ArkTools.forceFullGC();
529      const value = receivedValue === 1;
530      workerPort.postMessage(value);
531      break;
532    }
533    case 'napiCreateBigintWords': {
534      const receivedValue = data.value;
535      console.info('Worker: napiCreateBigintWords value is: ', receivedValue);
536      ArkTools.forceFullGC();
537      const value = receivedValue === 1;
538      workerPort.postMessage(value);
539      break;
540    }
541    case 'GetAllPropertyNamesEnvNull': {
542      const receivedValue = data.value;
543      console.info('Worker: GetAllPropertyNamesEnvNull value is: ', receivedValue);
544      ArkTools.forceFullGC();
545      const value = receivedValue === 1;
546      workerPort.postMessage(value);
547      break;
548    }
549    case 'napiSetInstanceData': {
550      const receivedValue = data.value;
551      console.info('Worker: napiSetInstanceData value is: ', receivedValue);
552      ArkTools.forceFullGC();
553      const value = receivedValue === 1;
554      workerPort.postMessage(value);
555      break;
556    }
557    case 'getModuleFileName': {
558      const receivedValue = data.value;
559      console.info('Worker: getModuleFileName value is: ', receivedValue);
560      ArkTools.forceFullGC();
561      const value = receivedValue >= 0;
562      workerPort.postMessage(value);
563      break;
564    }
565    case 'createAsyncResource': {
566      const receivedValue = data.value;
567      console.info('Worker: createAsyncResource value is: ', receivedValue);
568      ArkTools.forceFullGC();
569      const value = receivedValue instanceof Object;
570      workerPort.postMessage(value);
571      break;
572    }
573    case 'asyncWorkWithQos': {
574      const receivedValue = data.value;
575      console.info('Worker: asyncWorkWithQos value is: ', receivedValue);
576      ArkTools.forceFullGC();
577      const value = receivedValue === 0;
578      workerPort.postMessage(value);
579      break;
580    }
581    case 'napiRunScriptPathEnvNull': {
582      const receivedValue = data.value;
583      console.info('Worker: napiRunScriptPathEnvNull value is: ', receivedValue);
584      ArkTools.forceFullGC();
585      const value = receivedValue === 1;
586      workerPort.postMessage(value);
587      break;
588    }
589    case 'napiLoadModuleTest': {
590      const receivedValue = data.value;
591      console.info('Worker: napiLoadModuleTest value is: ', receivedValue);
592      ArkTools.forceFullGC();
593      const value = receivedValue === 0;
594      workerPort.postMessage(value);
595      break;
596    }
597    case 'createObjectWithProperties': {
598      const receivedValue = data.value;
599      console.info('Worker: createObjectWithProperties value is: ', receivedValue);
600      ArkTools.forceFullGC();
601      const value = receivedValue === 0;
602      workerPort.postMessage(value);
603      break;
604    }
605    case 'createObjectWithNamedProperties': {
606      const receivedValue = data.value;
607      console.info('Worker: createObjectWithNamedProperties value is: ', receivedValue);
608      ArkTools.forceFullGC();
609      const value = receivedValue === 0;
610      workerPort.postMessage(value);
611      break;
612    }
613    case 'coerceToNativeBindingObjectEnvNull': {
614      const receivedValue = data.value;
615      console.info('Worker: coerceToNativeBindingObjectEnvNull value is: ', receivedValue);
616      ArkTools.forceFullGC();
617      const value = receivedValue === 1;
618      workerPort.postMessage(value);
619      break;
620    }
621    case 'napiSerializeTest': {
622      const receivedValue = data.value;
623      console.info('Worker: napiSerializeTest value is: ', receivedValue);
624      ArkTools.forceFullGC();
625      const value = receivedValue === 2000;
626      workerPort.postMessage(value);
627      break;
628    }
629    case 'napiDeSerializeTest': {
630      const receivedValue = data.value;
631      console.info('Worker: napiDeSerializeTest value is: ', receivedValue);
632      ArkTools.forceFullGC();
633      const value = receivedValue === 2000;
634      workerPort.postMessage(value);
635      break;
636    }
637    case 'napiIsSendableTest': {
638      const receivedValue = data.value;
639      console.info('Worker: napiIsSendableTest value is: ', receivedValue);
640      ArkTools.forceFullGC();
641      const value = receivedValue === false;
642      workerPort.postMessage(value);
643      break;
644    }
645    case 'napiCreateSendableObjectTest': {
646      const receivedValue = Number(data.value);
647      console.info('Worker: napiCreateSendableObject value is: ', receivedValue);
648      ArkTools.forceFullGC();
649      const value = napitest.NapiIsSendable(receivedValue);
650      workerPort.postMessage(value);
651      break;
652    }
653    case 'napiCreateSendableArrayTest': {
654      const receivedValue = Number(data.value);
655      console.info('Worker: napiCreateSendableArrayTest value is: ', receivedValue);
656      ArkTools.forceFullGC();
657      const value = napitest.NapiIsSendable(receivedValue);
658      workerPort.postMessage(value);
659      break;
660    }
661    case 'napiCreateSendableArrayWithLengthTest': {
662      const receivedValue = Number(data.value);
663      console.info('Worker: napiCreateSendableArrayWithLengthTest value is: ', receivedValue);
664      ArkTools.forceFullGC();
665      const value = napitest.NapiIsSendable(receivedValue);
666      workerPort.postMessage(value);
667      break;
668    }
669    case 'napiCreateSendableArrayBufferTest': {
670      const receivedValue = Number(data.value);
671      console.info('Worker: napiCreateSendableArrayBufferTest value is: ', receivedValue);
672      ArkTools.forceFullGC();
673      const value = napitest.NapiIsSendable(receivedValue);
674      workerPort.postMessage(value);
675      break;
676    }
677    case 'napiCreateSendableTypedArrayTest': {
678      const receivedValue = Number(data.value);
679      console.info('Worker: napiCreateSendableTypedArrayTest value is: ', receivedValue);
680      ArkTools.forceFullGC();
681      const value = napitest.NapiIsSendable(receivedValue);
682      workerPort.postMessage(value);
683      break;
684    }
685    case 'napiWrapSendableTest': {
686      const receivedValue = data.value as object;
687      console.info('Worker: napiWrapSendableTest value is: ', receivedValue);
688      let res1 = napitest.NapiUnwrapSendable(receivedValue) == 'data';
689      let res2 = napitest.NapiRemoveWrapSendable(receivedValue) == 'data';
690      let res3 = napitest.NapiUnwrapSendable(receivedValue) == undefined;
691      workerPort.postMessage(res1 && res2 && res3);
692      break;
693    }
694    case 'napiWrapSendableWithSizeTest': {
695      const receivedValue = data.value as object;
696      console.info('Worker: napiWrapSendableWithSizeTest value is: ', receivedValue);
697      let res1 = napitest.NapiUnwrapSendable(receivedValue) == 'data';
698      let res2 = napitest.NapiRemoveWrapSendable(receivedValue) == 'data';
699      let res3 = napitest.NapiUnwrapSendable(receivedValue) == undefined;
700      workerPort.postMessage(res1 && res2 && res3);
701      break;
702    }
703    default:
704      console.warn('Worker received unknown message type.');
705      break;
706  }
707};