MCPcopy Create free account
hub / github.com/esengine/esengine / readNode

Function readNode

scripts/compare-ibm.mjs:23–144  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

21let offset = 27;
22
23function readNode() {
24 const startOffset = offset;
25 let endOffset, numProperties, propertyListLen, nameLen;
26
27 if (is64Bit) {
28 endOffset = Number(view.getBigUint64(offset, true));
29 numProperties = Number(view.getBigUint64(offset + 8, true));
30 propertyListLen = Number(view.getBigUint64(offset + 16, true));
31 nameLen = view.getUint8(offset + 24);
32 offset += 25;
33 } else {
34 endOffset = view.getUint32(offset, true);
35 numProperties = view.getUint32(offset + 4, true);
36 propertyListLen = view.getUint32(offset + 8, true);
37 nameLen = view.getUint8(offset + 12);
38 offset += 13;
39 }
40
41 if (endOffset === 0) return null;
42
43 const name = new TextDecoder().decode(buffer.slice(offset, offset + nameLen));
44 offset += nameLen;
45
46 const properties = [];
47 const propsEnd = offset + propertyListLen;
48
49 while (offset < propsEnd) {
50 const typeCode = String.fromCharCode(buffer[offset]);
51 offset++;
52
53 switch (typeCode) {
54 case 'Y':
55 properties.push(view.getInt16(offset, true));
56 offset += 2;
57 break;
58 case 'C':
59 properties.push(buffer[offset] !== 0);
60 offset += 1;
61 break;
62 case 'I':
63 properties.push(view.getInt32(offset, true));
64 offset += 4;
65 break;
66 case 'F':
67 properties.push(view.getFloat32(offset, true));
68 offset += 4;
69 break;
70 case 'D':
71 properties.push(view.getFloat64(offset, true));
72 offset += 8;
73 break;
74 case 'L':
75 properties.push(view.getBigInt64(offset, true));
76 offset += 8;
77 break;
78 case 'S':
79 case 'R':
80 const strLen = view.getUint32(offset, true);

Callers 1

compare-ibm.mjsFile · 0.70

Calls 8

getUint8Method · 0.80
getUint32Method · 0.80
getInt16Method · 0.80
getInt32Method · 0.80
getFloat32Method · 0.80
getFloat64Method · 0.80
pushMethod · 0.65
decodeMethod · 0.45

Tested by

no test coverage detected