@grain/stdlib 0.6.6 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +67 -0
- package/LICENSE +1 -1
- package/README.md +2 -2
- package/array.gr +55 -7
- package/array.md +606 -560
- package/bigint.md +228 -228
- package/buffer.gr +85 -53
- package/buffer.md +442 -319
- package/bytes.gr +112 -35
- package/bytes.md +299 -219
- package/char.gr +201 -99
- package/char.md +447 -120
- package/exception.gr +11 -11
- package/exception.md +29 -4
- package/float32.gr +327 -3
- package/float32.md +698 -111
- package/float64.gr +320 -3
- package/float64.md +698 -111
- package/fs.gr +1082 -0
- package/fs.md +630 -0
- package/hash.gr +142 -88
- package/hash.md +105 -17
- package/int16.md +178 -178
- package/int32.gr +26 -5
- package/int32.md +266 -231
- package/int64.gr +27 -2
- package/int64.md +266 -231
- package/int8.md +178 -178
- package/json.gr +366 -51
- package/json.md +431 -15
- package/list.gr +328 -31
- package/list.md +759 -336
- package/map.gr +20 -12
- package/map.md +266 -260
- package/marshal.gr +41 -40
- package/marshal.md +14 -14
- package/number.gr +278 -35
- package/number.md +688 -269
- package/option.md +162 -162
- package/package.json +5 -3
- package/path.gr +48 -0
- package/path.md +180 -89
- package/pervasives.gr +2 -2
- package/pervasives.md +275 -275
- package/priorityqueue.gr +7 -7
- package/priorityqueue.md +131 -131
- package/queue.gr +183 -29
- package/queue.md +404 -148
- package/random.md +43 -43
- package/range.gr +4 -4
- package/range.md +42 -42
- package/rational.md +123 -123
- package/regex.gr +52 -51
- package/regex.md +102 -102
- package/result.md +118 -118
- package/runtime/atof/common.md +39 -39
- package/runtime/atof/decimal.gr +6 -6
- package/runtime/atof/decimal.md +14 -14
- package/runtime/atof/lemire.gr +5 -5
- package/runtime/atof/lemire.md +1 -1
- package/runtime/atof/parse.gr +16 -16
- package/runtime/atof/parse.md +2 -2
- package/runtime/atof/slow.md +1 -1
- package/runtime/atof/table.md +2 -2
- package/runtime/atoi/parse.gr +3 -3
- package/runtime/atoi/parse.md +1 -1
- package/runtime/bigint.gr +15 -47
- package/runtime/bigint.md +54 -60
- package/runtime/compare.gr +2 -2
- package/runtime/compare.md +8 -8
- package/runtime/dataStructures.md +211 -211
- package/runtime/debugPrint.gr +4 -1
- package/runtime/debugPrint.md +9 -9
- package/runtime/equal.gr +99 -77
- package/runtime/equal.md +8 -8
- package/runtime/exception.gr +62 -82
- package/runtime/exception.md +62 -11
- package/runtime/gc.gr +39 -45
- package/runtime/gc.md +4 -4
- package/runtime/malloc.gr +7 -7
- package/runtime/malloc.md +13 -13
- package/runtime/math/kernel/cos.gr +70 -0
- package/runtime/math/kernel/cos.md +14 -0
- package/runtime/math/kernel/sin.gr +65 -0
- package/runtime/math/kernel/sin.md +14 -0
- package/runtime/math/kernel/tan.gr +136 -0
- package/runtime/math/kernel/tan.md +14 -0
- package/runtime/math/rempio2.gr +244 -0
- package/runtime/math/rempio2.md +14 -0
- package/runtime/math/trig.gr +130 -0
- package/runtime/math/trig.md +28 -0
- package/runtime/math/umuldi.gr +26 -0
- package/runtime/math/umuldi.md +14 -0
- package/runtime/numberUtils.gr +29 -29
- package/runtime/numberUtils.md +12 -12
- package/runtime/numbers.gr +373 -381
- package/runtime/numbers.md +348 -342
- package/runtime/string.gr +37 -105
- package/runtime/string.md +20 -26
- package/runtime/unsafe/constants.md +24 -24
- package/runtime/unsafe/conv.md +19 -19
- package/runtime/unsafe/memory.gr +24 -20
- package/runtime/unsafe/memory.md +27 -7
- package/runtime/unsafe/offsets.gr +36 -0
- package/runtime/unsafe/offsets.md +88 -0
- package/runtime/unsafe/panic.gr +28 -0
- package/runtime/unsafe/panic.md +14 -0
- package/runtime/unsafe/tags.md +32 -32
- package/runtime/unsafe/wasmf32.md +28 -28
- package/runtime/unsafe/wasmf64.md +28 -28
- package/runtime/unsafe/wasmi32.md +47 -47
- package/runtime/unsafe/wasmi64.md +50 -50
- package/runtime/utf8.gr +189 -0
- package/runtime/utf8.md +117 -0
- package/runtime/wasi.gr +4 -2
- package/runtime/wasi.md +147 -147
- package/set.gr +18 -11
- package/set.md +253 -247
- package/stack.gr +171 -2
- package/stack.md +371 -89
- package/string.gr +352 -557
- package/string.md +298 -255
- package/uint16.md +170 -170
- package/uint32.gr +25 -4
- package/uint32.md +249 -214
- package/uint64.gr +25 -5
- package/uint64.md +249 -214
- package/uint8.md +170 -170
- package/uri.gr +57 -53
- package/uri.md +88 -89
- package/wasi/file.gr +67 -59
- package/wasi/file.md +308 -308
- package/wasi/process.md +26 -26
- package/wasi/random.md +12 -12
- package/wasi/time.md +16 -16
- package/runtime/utils/printing.gr +0 -60
- package/runtime/utils/printing.md +0 -26
package/bytes.gr
CHANGED
|
@@ -18,10 +18,12 @@ from "runtime/unsafe/wasmf64" include WasmF64
|
|
|
18
18
|
from "runtime/unsafe/conv" include Conv
|
|
19
19
|
from "runtime/dataStructures" include DataStructures
|
|
20
20
|
use DataStructures.{
|
|
21
|
+
tagChar,
|
|
21
22
|
tagInt8,
|
|
22
23
|
tagUint8,
|
|
23
24
|
tagInt16,
|
|
24
25
|
tagUint16,
|
|
26
|
+
untagChar,
|
|
25
27
|
untagInt8,
|
|
26
28
|
untagUint8,
|
|
27
29
|
untagInt16,
|
|
@@ -33,11 +35,17 @@ from "runtime/exception" include Exception
|
|
|
33
35
|
from "int32" include Int32
|
|
34
36
|
from "runtime/numbers" include Numbers
|
|
35
37
|
use Numbers.{ coerceNumberToWasmI32 }
|
|
38
|
+
from "runtime/utf8" include Utf8
|
|
39
|
+
use Utf8.{
|
|
40
|
+
utf8ByteCount,
|
|
41
|
+
getCodePoint,
|
|
42
|
+
usvEncodeLength,
|
|
43
|
+
writeUtf8CodePoint,
|
|
44
|
+
exception MalformedUnicode,
|
|
45
|
+
}
|
|
46
|
+
from "runtime/unsafe/offsets" include Offsets
|
|
47
|
+
use Offsets.{ _BYTES_LEN_OFFSET, _BYTES_DATA_OFFSET }
|
|
36
48
|
|
|
37
|
-
@unsafe
|
|
38
|
-
let _SIZE_OFFSET = 4n
|
|
39
|
-
@unsafe
|
|
40
|
-
let _VALUE_OFFSET = 8n
|
|
41
49
|
@unsafe
|
|
42
50
|
let _INT8_BYTE_SIZE = 1n
|
|
43
51
|
@unsafe
|
|
@@ -65,7 +73,7 @@ let checkIndexIsInBounds = (i, byteSize, max) => {
|
|
|
65
73
|
|
|
66
74
|
/** Gets the size of a Bytes via its ptr */
|
|
67
75
|
@unsafe
|
|
68
|
-
let getSize = ptr => WasmI32.load(ptr,
|
|
76
|
+
let getSize = ptr => WasmI32.load(ptr, _BYTES_LEN_OFFSET)
|
|
69
77
|
|
|
70
78
|
/**
|
|
71
79
|
* Creates a new byte sequence of the input size.
|
|
@@ -112,7 +120,7 @@ provide let fromString = (string: String) => {
|
|
|
112
120
|
let src = WasmI32.fromGrain(string)
|
|
113
121
|
let size = getSize(src)
|
|
114
122
|
let dst = allocateBytes(size)
|
|
115
|
-
Memory.copy(dst +
|
|
123
|
+
Memory.copy(dst + _BYTES_DATA_OFFSET, src + _BYTES_DATA_OFFSET, size)
|
|
116
124
|
ignore(string)
|
|
117
125
|
WasmI32.toGrain(dst): Bytes
|
|
118
126
|
}
|
|
@@ -134,7 +142,7 @@ provide let toString = (bytes: Bytes) => {
|
|
|
134
142
|
let src = WasmI32.fromGrain(bytes)
|
|
135
143
|
let size = getSize(src)
|
|
136
144
|
let dst = allocateString(size)
|
|
137
|
-
Memory.copy(dst +
|
|
145
|
+
Memory.copy(dst + _BYTES_DATA_OFFSET, src + _BYTES_DATA_OFFSET, size)
|
|
138
146
|
ignore(bytes)
|
|
139
147
|
WasmI32.toGrain(dst): String
|
|
140
148
|
}
|
|
@@ -174,7 +182,7 @@ provide let copy = (bytes: Bytes) => {
|
|
|
174
182
|
let src = WasmI32.fromGrain(bytes)
|
|
175
183
|
let size = getSize(src)
|
|
176
184
|
let dst = allocateBytes(size)
|
|
177
|
-
Memory.copy(dst +
|
|
185
|
+
Memory.copy(dst + _BYTES_DATA_OFFSET, src + _BYTES_DATA_OFFSET, size)
|
|
178
186
|
ignore(bytes)
|
|
179
187
|
WasmI32.toGrain(dst): Bytes
|
|
180
188
|
}
|
|
@@ -212,7 +220,11 @@ provide let slice = (start: Number, length: Number, bytes: Bytes) => {
|
|
|
212
220
|
}
|
|
213
221
|
let dst = allocateBytes(length)
|
|
214
222
|
let offset = start
|
|
215
|
-
Memory.copy(
|
|
223
|
+
Memory.copy(
|
|
224
|
+
dst + _BYTES_DATA_OFFSET,
|
|
225
|
+
src + _BYTES_DATA_OFFSET + start,
|
|
226
|
+
length
|
|
227
|
+
)
|
|
216
228
|
ignore(bytes)
|
|
217
229
|
WasmI32.toGrain(dst): Bytes
|
|
218
230
|
}
|
|
@@ -264,8 +276,8 @@ provide let resize = (left: Number, right: Number, bytes: Bytes) => {
|
|
|
264
276
|
}
|
|
265
277
|
if (len > 0n) {
|
|
266
278
|
Memory.copy(
|
|
267
|
-
dst +
|
|
268
|
-
src +
|
|
279
|
+
dst + _BYTES_DATA_OFFSET + dstOffset,
|
|
280
|
+
src + _BYTES_DATA_OFFSET + srcOffset,
|
|
269
281
|
len
|
|
270
282
|
)
|
|
271
283
|
}
|
|
@@ -320,8 +332,8 @@ provide let move = (
|
|
|
320
332
|
}
|
|
321
333
|
let end = srcIndex + length
|
|
322
334
|
Memory.copy(
|
|
323
|
-
dstPtr +
|
|
324
|
-
srcPtr +
|
|
335
|
+
dstPtr + _BYTES_DATA_OFFSET + dstIndex,
|
|
336
|
+
srcPtr + _BYTES_DATA_OFFSET + srcIndex,
|
|
325
337
|
length
|
|
326
338
|
)
|
|
327
339
|
ignore(src)
|
|
@@ -370,7 +382,7 @@ provide let fill = (value: Uint8, bytes: Bytes) => {
|
|
|
370
382
|
let src = WasmI32.fromGrain(bytes)
|
|
371
383
|
let size = getSize(src)
|
|
372
384
|
let v = untagUint8(value)
|
|
373
|
-
Memory.fill(src +
|
|
385
|
+
Memory.fill(src + _BYTES_DATA_OFFSET, v, size)
|
|
374
386
|
ignore(bytes)
|
|
375
387
|
}
|
|
376
388
|
|
|
@@ -392,7 +404,72 @@ provide let clear = (bytes: Bytes) => {
|
|
|
392
404
|
use WasmI32.{ (+) }
|
|
393
405
|
let src = WasmI32.fromGrain(bytes)
|
|
394
406
|
let size = getSize(src)
|
|
395
|
-
Memory.fill(src +
|
|
407
|
+
Memory.fill(src + _BYTES_DATA_OFFSET, 0n, size)
|
|
408
|
+
ignore(bytes)
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Gets the UTF-8 encoded character at the given byte index.
|
|
413
|
+
*
|
|
414
|
+
* @param index: The byte index to access
|
|
415
|
+
* @param bytes: The byte sequence to access
|
|
416
|
+
* @returns The character that starts at the given index
|
|
417
|
+
*
|
|
418
|
+
* @throws IndexOutOfBounds: When `index` is negative
|
|
419
|
+
* @throws IndexOutOfBounds: When `index + 1` is greater than the bytes size
|
|
420
|
+
* @throws MalformedUnicode: When the requested character is not a valid UTF-8 sequence
|
|
421
|
+
*
|
|
422
|
+
* @example
|
|
423
|
+
* let bytes = Bytes.fromString("Hello")
|
|
424
|
+
* assert Bytes.getChar(0, bytes) == 'H'
|
|
425
|
+
*
|
|
426
|
+
* @since v0.7.0
|
|
427
|
+
*/
|
|
428
|
+
@unsafe
|
|
429
|
+
provide let getChar = (index: Number, bytes: Bytes) => {
|
|
430
|
+
// result
|
|
431
|
+
use WasmI32.{ (+), (&), (+), (==), (>) }
|
|
432
|
+
let ptr = WasmI32.fromGrain(bytes)
|
|
433
|
+
let size = getSize(ptr)
|
|
434
|
+
let offset = coerceNumberToWasmI32(index)
|
|
435
|
+
checkIndexIsInBounds(offset, 1n, size)
|
|
436
|
+
let byte = WasmI32.load8U(ptr + offset, _BYTES_DATA_OFFSET)
|
|
437
|
+
let charSize = utf8ByteCount(byte)
|
|
438
|
+
if (offset + charSize > size) {
|
|
439
|
+
throw MalformedUnicode
|
|
440
|
+
}
|
|
441
|
+
let codePoint = getCodePoint(ptr + offset + _BYTES_DATA_OFFSET)
|
|
442
|
+
ignore(bytes)
|
|
443
|
+
tagChar(codePoint)
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* UTF-8 encodes a character starting at the given byte index.
|
|
448
|
+
*
|
|
449
|
+
* @param index: The byte index to update
|
|
450
|
+
* @param value: The value to set
|
|
451
|
+
* @param bytes: The byte sequence to mutate
|
|
452
|
+
*
|
|
453
|
+
* @throws IndexOutOfBounds: When `index` is negative
|
|
454
|
+
* @throws IndexOutOfBounds: When `index + charSize` is greater than the bytes size, `charSize` is the number of bytes in the character ranging from 1 to 4
|
|
455
|
+
*
|
|
456
|
+
* @example
|
|
457
|
+
* let bytes = Bytes.make(1)
|
|
458
|
+
* Bytes.setChar(0, 'a', bytes)
|
|
459
|
+
* assert Bytes.getChar(0, bytes) == 'a'
|
|
460
|
+
*
|
|
461
|
+
* @since v0.7.0
|
|
462
|
+
*/
|
|
463
|
+
@unsafe
|
|
464
|
+
provide let setChar = (index: Number, value: Char, bytes: Bytes) => {
|
|
465
|
+
use WasmI32.{ (+) }
|
|
466
|
+
let ptr = WasmI32.fromGrain(bytes)
|
|
467
|
+
let size = getSize(ptr)
|
|
468
|
+
let offset = coerceNumberToWasmI32(index)
|
|
469
|
+
let usv = untagChar(value)
|
|
470
|
+
let charSize = usvEncodeLength(usv)
|
|
471
|
+
checkIndexIsInBounds(offset, charSize, size)
|
|
472
|
+
writeUtf8CodePoint(ptr + offset + _BYTES_DATA_OFFSET, usv)
|
|
396
473
|
ignore(bytes)
|
|
397
474
|
}
|
|
398
475
|
|
|
@@ -421,7 +498,7 @@ provide let getInt8 = (index: Number, bytes: Bytes) => {
|
|
|
421
498
|
let size = getSize(ptr)
|
|
422
499
|
let offset = coerceNumberToWasmI32(index)
|
|
423
500
|
checkIndexIsInBounds(offset, _INT8_BYTE_SIZE, size)
|
|
424
|
-
let n = WasmI32.load8S(ptr + offset,
|
|
501
|
+
let n = WasmI32.load8S(ptr + offset, _BYTES_DATA_OFFSET)
|
|
425
502
|
ignore(bytes)
|
|
426
503
|
tagInt8(n)
|
|
427
504
|
}
|
|
@@ -452,8 +529,8 @@ provide let setInt8 = (index: Number, value: Int8, bytes: Bytes) => {
|
|
|
452
529
|
let offset = coerceNumberToWasmI32(index)
|
|
453
530
|
checkIndexIsInBounds(offset, _INT8_BYTE_SIZE, size)
|
|
454
531
|
let v = untagInt8(value)
|
|
532
|
+
WasmI32.store8(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
455
533
|
ignore(bytes)
|
|
456
|
-
WasmI32.store8(ptr + offset, v, _VALUE_OFFSET)
|
|
457
534
|
}
|
|
458
535
|
|
|
459
536
|
/**
|
|
@@ -481,7 +558,7 @@ provide let getUint8 = (index: Number, bytes: Bytes) => {
|
|
|
481
558
|
let size = getSize(ptr)
|
|
482
559
|
let offset = coerceNumberToWasmI32(index)
|
|
483
560
|
checkIndexIsInBounds(offset, _INT8_BYTE_SIZE, size)
|
|
484
|
-
let n = WasmI32.load8U(ptr + offset,
|
|
561
|
+
let n = WasmI32.load8U(ptr + offset, _BYTES_DATA_OFFSET)
|
|
485
562
|
ignore(bytes)
|
|
486
563
|
tagUint8(n)
|
|
487
564
|
}
|
|
@@ -511,7 +588,7 @@ provide let setUint8 = (index: Number, value: Uint8, bytes: Bytes) => {
|
|
|
511
588
|
let offset = coerceNumberToWasmI32(index)
|
|
512
589
|
checkIndexIsInBounds(offset, _INT8_BYTE_SIZE, size)
|
|
513
590
|
let v = untagUint8(value)
|
|
514
|
-
WasmI32.store8(ptr + offset, v,
|
|
591
|
+
WasmI32.store8(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
515
592
|
ignore(bytes)
|
|
516
593
|
}
|
|
517
594
|
|
|
@@ -540,7 +617,7 @@ provide let getInt16 = (index: Number, bytes: Bytes) => {
|
|
|
540
617
|
let size = getSize(ptr)
|
|
541
618
|
let offset = coerceNumberToWasmI32(index)
|
|
542
619
|
checkIndexIsInBounds(offset, _INT16_BYTE_SIZE, size)
|
|
543
|
-
let n = WasmI32.load16S(ptr + offset,
|
|
620
|
+
let n = WasmI32.load16S(ptr + offset, _BYTES_DATA_OFFSET)
|
|
544
621
|
ignore(bytes)
|
|
545
622
|
tagInt16(n)
|
|
546
623
|
}
|
|
@@ -571,7 +648,7 @@ provide let setInt16 = (index: Number, value: Int16, bytes: Bytes) => {
|
|
|
571
648
|
let offset = coerceNumberToWasmI32(index)
|
|
572
649
|
checkIndexIsInBounds(offset, _INT16_BYTE_SIZE, size)
|
|
573
650
|
let v = untagInt16(value)
|
|
574
|
-
WasmI32.store16(ptr + offset, v,
|
|
651
|
+
WasmI32.store16(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
575
652
|
ignore(bytes)
|
|
576
653
|
}
|
|
577
654
|
|
|
@@ -600,7 +677,7 @@ provide let getUint16 = (index: Number, bytes: Bytes) => {
|
|
|
600
677
|
let size = getSize(ptr)
|
|
601
678
|
let offset = coerceNumberToWasmI32(index)
|
|
602
679
|
checkIndexIsInBounds(offset, _INT16_BYTE_SIZE, size)
|
|
603
|
-
let n = WasmI32.load16U(ptr + offset,
|
|
680
|
+
let n = WasmI32.load16U(ptr + offset, _BYTES_DATA_OFFSET)
|
|
604
681
|
ignore(bytes)
|
|
605
682
|
tagUint16(n)
|
|
606
683
|
}
|
|
@@ -630,7 +707,7 @@ provide let setUint16 = (index: Number, value: Uint16, bytes: Bytes) => {
|
|
|
630
707
|
let offset = coerceNumberToWasmI32(index)
|
|
631
708
|
checkIndexIsInBounds(offset, _INT16_BYTE_SIZE, size)
|
|
632
709
|
let v = untagUint16(value)
|
|
633
|
-
WasmI32.store16(ptr + offset, v,
|
|
710
|
+
WasmI32.store16(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
634
711
|
ignore(bytes)
|
|
635
712
|
}
|
|
636
713
|
|
|
@@ -658,7 +735,7 @@ provide let getInt32 = (index: Number, bytes: Bytes) => {
|
|
|
658
735
|
let size = getSize(ptr)
|
|
659
736
|
let offset = coerceNumberToWasmI32(index)
|
|
660
737
|
checkIndexIsInBounds(offset, _INT32_BYTE_SIZE, size)
|
|
661
|
-
let n = WasmI32.load(ptr + offset,
|
|
738
|
+
let n = WasmI32.load(ptr + offset, _BYTES_DATA_OFFSET)
|
|
662
739
|
ignore(bytes)
|
|
663
740
|
Conv.toInt32(n)
|
|
664
741
|
}
|
|
@@ -688,7 +765,7 @@ provide let setInt32 = (index: Number, value: Int32, bytes: Bytes) => {
|
|
|
688
765
|
let offset = coerceNumberToWasmI32(index)
|
|
689
766
|
checkIndexIsInBounds(offset, _INT32_BYTE_SIZE, size)
|
|
690
767
|
let v = Conv.fromInt32(value)
|
|
691
|
-
WasmI32.store(ptr + offset, v,
|
|
768
|
+
WasmI32.store(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
692
769
|
ignore(bytes)
|
|
693
770
|
}
|
|
694
771
|
|
|
@@ -716,7 +793,7 @@ provide let getUint32 = (index: Number, bytes: Bytes) => {
|
|
|
716
793
|
let size = getSize(ptr)
|
|
717
794
|
let offset = coerceNumberToWasmI32(index)
|
|
718
795
|
checkIndexIsInBounds(offset, _INT32_BYTE_SIZE, size)
|
|
719
|
-
let n = WasmI32.load(ptr + offset,
|
|
796
|
+
let n = WasmI32.load(ptr + offset, _BYTES_DATA_OFFSET)
|
|
720
797
|
ignore(bytes)
|
|
721
798
|
Conv.toUint32(n)
|
|
722
799
|
}
|
|
@@ -746,7 +823,7 @@ provide let setUint32 = (index: Number, value: Uint32, bytes: Bytes) => {
|
|
|
746
823
|
let offset = coerceNumberToWasmI32(index)
|
|
747
824
|
checkIndexIsInBounds(offset, _INT32_BYTE_SIZE, size)
|
|
748
825
|
let v = Conv.fromUint32(value)
|
|
749
|
-
WasmI32.store(ptr + offset, v,
|
|
826
|
+
WasmI32.store(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
750
827
|
ignore(bytes)
|
|
751
828
|
}
|
|
752
829
|
|
|
@@ -774,7 +851,7 @@ provide let getFloat32 = (index: Number, bytes: Bytes) => {
|
|
|
774
851
|
let size = getSize(ptr)
|
|
775
852
|
let offset = coerceNumberToWasmI32(index)
|
|
776
853
|
checkIndexIsInBounds(offset, _INT32_BYTE_SIZE, size)
|
|
777
|
-
let n = WasmF32.load(ptr + offset,
|
|
854
|
+
let n = WasmF32.load(ptr + offset, _BYTES_DATA_OFFSET)
|
|
778
855
|
ignore(bytes)
|
|
779
856
|
Conv.toFloat32(n)
|
|
780
857
|
}
|
|
@@ -804,7 +881,7 @@ provide let setFloat32 = (index: Number, value: Float32, bytes: Bytes) => {
|
|
|
804
881
|
let offset = coerceNumberToWasmI32(index)
|
|
805
882
|
checkIndexIsInBounds(offset, _INT32_BYTE_SIZE, size)
|
|
806
883
|
let v = Conv.fromFloat32(value)
|
|
807
|
-
WasmF32.store(ptr + offset, v,
|
|
884
|
+
WasmF32.store(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
808
885
|
ignore(bytes)
|
|
809
886
|
}
|
|
810
887
|
|
|
@@ -832,7 +909,7 @@ provide let getInt64 = (index: Number, bytes: Bytes) => {
|
|
|
832
909
|
let size = getSize(ptr)
|
|
833
910
|
let offset = coerceNumberToWasmI32(index)
|
|
834
911
|
checkIndexIsInBounds(offset, _INT64_BYTE_SIZE, size)
|
|
835
|
-
let n = WasmI64.load(ptr + offset,
|
|
912
|
+
let n = WasmI64.load(ptr + offset, _BYTES_DATA_OFFSET)
|
|
836
913
|
ignore(bytes)
|
|
837
914
|
Conv.toInt64(n)
|
|
838
915
|
}
|
|
@@ -862,7 +939,7 @@ provide let setInt64 = (index: Number, value: Int64, bytes: Bytes) => {
|
|
|
862
939
|
let offset = coerceNumberToWasmI32(index)
|
|
863
940
|
checkIndexIsInBounds(offset, _INT64_BYTE_SIZE, size)
|
|
864
941
|
let v = Conv.fromInt64(value)
|
|
865
|
-
WasmI64.store(ptr + offset, v,
|
|
942
|
+
WasmI64.store(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
866
943
|
ignore(bytes)
|
|
867
944
|
}
|
|
868
945
|
|
|
@@ -890,7 +967,7 @@ provide let getUint64 = (index: Number, bytes: Bytes) => {
|
|
|
890
967
|
let size = getSize(ptr)
|
|
891
968
|
let offset = coerceNumberToWasmI32(index)
|
|
892
969
|
checkIndexIsInBounds(offset, _INT64_BYTE_SIZE, size)
|
|
893
|
-
let n = WasmI64.load(ptr + offset,
|
|
970
|
+
let n = WasmI64.load(ptr + offset, _BYTES_DATA_OFFSET)
|
|
894
971
|
ignore(bytes)
|
|
895
972
|
Conv.toUint64(n)
|
|
896
973
|
}
|
|
@@ -920,7 +997,7 @@ provide let setUint64 = (index: Number, value: Uint64, bytes: Bytes) => {
|
|
|
920
997
|
let offset = coerceNumberToWasmI32(index)
|
|
921
998
|
checkIndexIsInBounds(offset, _INT64_BYTE_SIZE, size)
|
|
922
999
|
let v = Conv.fromUint64(value)
|
|
923
|
-
WasmI64.store(ptr + offset, v,
|
|
1000
|
+
WasmI64.store(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
924
1001
|
ignore(bytes)
|
|
925
1002
|
}
|
|
926
1003
|
|
|
@@ -948,7 +1025,7 @@ provide let getFloat64 = (index: Number, bytes: Bytes) => {
|
|
|
948
1025
|
let size = getSize(ptr)
|
|
949
1026
|
let offset = coerceNumberToWasmI32(index)
|
|
950
1027
|
checkIndexIsInBounds(offset, _FLOAT64_BYTE_SIZE, size)
|
|
951
|
-
let n = WasmF64.load(ptr + offset,
|
|
1028
|
+
let n = WasmF64.load(ptr + offset, _BYTES_DATA_OFFSET)
|
|
952
1029
|
ignore(bytes)
|
|
953
1030
|
Conv.toFloat64(n)
|
|
954
1031
|
}
|
|
@@ -978,6 +1055,6 @@ provide let setFloat64 = (index: Number, value: Float64, bytes: Bytes) => {
|
|
|
978
1055
|
let offset = coerceNumberToWasmI32(index)
|
|
979
1056
|
checkIndexIsInBounds(offset, _FLOAT64_BYTE_SIZE, size)
|
|
980
1057
|
let v = Conv.fromFloat64(value)
|
|
981
|
-
WasmF64.store(ptr + offset, v,
|
|
1058
|
+
WasmF64.store(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
982
1059
|
ignore(bytes)
|
|
983
1060
|
}
|