@@ -51,7 +51,7 @@ const structString: StructString = (builder, size, name, strLength) => {
51
51
52
52
const structStruct : StructStruct = ( builder , size , name , struct ) => {
53
53
builder . push ( ( obj , buffer ) => {
54
- const structObj = struct ( buffer . slice ( size , size + struct . size ) ) ;
54
+ const structObj = struct ( buffer . subarray ( size , size + struct . size ) ) ;
55
55
delete ( structObj as { buffer : unknown } ) . buffer ;
56
56
Object . defineProperty ( obj , name , {
57
57
get : ( ) => structObj ,
@@ -97,15 +97,15 @@ const arrayBigNumberFunction: BuildArrayResponseBigNumberFunction = (arrLength,
97
97
} ;
98
98
} ;
99
99
100
- const buildArray : BuildArray = ( ) => ( {
100
+ const buildArray : BuildArray = ( arrLength ) => ( {
101
101
// arrays
102
- array : ( arrLength , build ) => {
103
- const { size : buildSize , builder : buildBuilder } = build ( buildArray ( ) ) ;
102
+ array : ( arrLength2 , build ) => {
103
+ const { size : buildSize , builder : buildBuilder } = build ( buildArray ( arrLength2 ) ) ;
104
104
return {
105
105
size : buildSize * arrLength ,
106
106
builder : ( arr , buffer ) => {
107
107
for ( let i = 0 ; i < arrLength ; i ++ ) {
108
- const arr2 = buildBuilder ( [ ] , buffer . slice ( buildSize * i , buildSize * ( i + 1 ) ) ) ;
108
+ const arr2 = buildBuilder ( [ ] , buffer . subarray ( buildSize * i , buildSize * ( i + 1 ) ) ) ;
109
109
Object . defineProperty ( arr , i , {
110
110
get : ( ) => arr2 ,
111
111
enumerable : true ,
@@ -116,17 +116,17 @@ const buildArray: BuildArray = () => ({
116
116
} ;
117
117
} ,
118
118
// numbers
119
- sbyte : ( arrLength ) => arrayNumberFunction ( arrLength , "sbyte" ) ,
120
- byte : ( arrLength ) => arrayNumberFunction ( arrLength , "byte" ) ,
121
- short : ( arrLength ) => arrayNumberFunction ( arrLength , "short" ) ,
122
- ushort : ( arrLength ) => arrayNumberFunction ( arrLength , "ushort" ) ,
123
- int : ( arrLength ) => arrayNumberFunction ( arrLength , "int" ) ,
124
- uint : ( arrLength ) => arrayNumberFunction ( arrLength , "uint" ) ,
119
+ sbyte : ( ) => arrayNumberFunction ( arrLength , "sbyte" ) ,
120
+ byte : ( ) => arrayNumberFunction ( arrLength , "byte" ) ,
121
+ short : ( ) => arrayNumberFunction ( arrLength , "short" ) ,
122
+ ushort : ( ) => arrayNumberFunction ( arrLength , "ushort" ) ,
123
+ int : ( ) => arrayNumberFunction ( arrLength , "int" ) ,
124
+ uint : ( ) => arrayNumberFunction ( arrLength , "uint" ) ,
125
125
// big numbers
126
- long : ( arrLength ) => arrayBigNumberFunction ( arrLength , "long" ) ,
127
- ulong : ( arrLength ) => arrayBigNumberFunction ( arrLength , "ulong" ) ,
126
+ long : ( ) => arrayBigNumberFunction ( arrLength , "long" ) ,
127
+ ulong : ( ) => arrayBigNumberFunction ( arrLength , "ulong" ) ,
128
128
// extras
129
- string : ( arrLength , stringLength ) => ( {
129
+ string : ( stringLength ) => ( {
130
130
size : arrLength * stringLength ,
131
131
builder : ( arr , buffer ) => {
132
132
for ( let i = 0 ; i < arrLength ; i ++ ) {
@@ -139,11 +139,11 @@ const buildArray: BuildArray = () => ({
139
139
return arr ;
140
140
} ,
141
141
} ) ,
142
- struct : ( arrLength , struct ) => ( {
142
+ struct : ( struct ) => ( {
143
143
size : arrLength * struct . size ,
144
144
builder : ( arr , buffer ) => {
145
145
for ( let i = 0 ; i < arrLength ; i ++ ) {
146
- const structObj = struct ( buffer . slice ( i * struct . size , ( i + 1 ) * struct . size ) ) ;
146
+ const structObj = struct ( buffer . subarray ( i * struct . size , ( i + 1 ) * struct . size ) ) ;
147
147
delete ( structObj as { buffer : unknown } ) . buffer ;
148
148
Object . defineProperty ( arr , i , {
149
149
get : ( ) => structObj ,
@@ -155,10 +155,10 @@ const buildArray: BuildArray = () => ({
155
155
} ) ,
156
156
} ) ;
157
157
158
- const structArray : StructArray = ( builder , size , name , build ) => {
159
- const { size : buildSize , builder : buildBuilder } = build ( buildArray ( ) ) ;
158
+ const structArray : StructArray = ( builder , size , name , arrLength , build ) => {
159
+ const { size : buildSize , builder : buildBuilder } = build ( buildArray ( arrLength ) ) ;
160
160
builder . push ( ( obj , buffer ) => {
161
- const arr = buildBuilder ( [ ] , buffer . slice ( size , buildSize + size ) ) ;
161
+ const arr = buildBuilder ( [ ] , buffer . subarray ( size , buildSize + size ) ) ;
162
162
Object . defineProperty ( obj , name , {
163
163
get : ( ) => arr ,
164
164
enumerable : true ,
@@ -183,7 +183,7 @@ const createStruct: CreateStruct<{}> = (builder = [], size = 0) => ({
183
183
// extras
184
184
string : ( name , length ) => structString ( builder , size , name , length ) ,
185
185
struct : ( name , struct ) => structStruct ( builder , size , name , struct ) ,
186
- array : ( name , build ) => structArray ( builder , size , name , build ) ,
186
+ array : ( name , arrLength , build ) => structArray ( builder , size , name , arrLength , build ) ,
187
187
offset : ( length ) => createStruct ( builder , size + length ) ,
188
188
// build
189
189
build : ( ) => {
0 commit comments