@grain/stdlib 0.6.5 → 0.7.0
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 +64 -0
- package/LICENSE +1 -1
- package/README.md +2 -2
- package/array.gr +55 -7
- package/array.md +123 -77
- package/bigint.md +30 -30
- package/buffer.gr +20 -53
- package/buffer.md +47 -47
- package/bytes.gr +111 -35
- package/bytes.md +111 -32
- package/char.gr +201 -99
- package/char.md +361 -34
- package/exception.gr +11 -11
- package/exception.md +26 -1
- package/float32.gr +327 -3
- package/float32.md +606 -19
- package/float64.gr +320 -3
- package/float64.md +606 -19
- package/fs.gr +1082 -0
- package/fs.md +630 -0
- package/hash.gr +142 -88
- package/hash.md +102 -14
- package/int16.md +23 -23
- package/int32.gr +25 -4
- package/int32.md +65 -30
- package/int64.gr +26 -1
- package/int64.md +65 -30
- package/int8.md +23 -23
- package/json.gr +366 -51
- package/json.md +418 -2
- package/list.gr +387 -49
- package/list.md +492 -69
- package/map.gr +20 -12
- package/map.md +44 -38
- package/marshal.gr +41 -40
- package/marshal.md +2 -2
- package/number.gr +159 -30
- package/number.md +215 -38
- package/option.md +21 -21
- package/package.json +5 -3
- package/path.gr +48 -0
- package/path.md +103 -12
- package/pervasives.gr +2 -2
- package/pervasives.md +37 -37
- package/priorityqueue.gr +7 -7
- package/priorityqueue.md +19 -19
- package/queue.gr +183 -29
- package/queue.md +296 -40
- package/random.md +6 -6
- package/range.gr +4 -4
- package/range.md +6 -6
- package/rational.md +16 -16
- package/regex.gr +52 -51
- package/regex.md +11 -11
- package/result.md +16 -16
- package/runtime/atof/common.md +39 -39
- package/runtime/atof/decimal.gr +6 -6
- package/runtime/atof/decimal.md +8 -8
- 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 +1 -1
- package/runtime/dataStructures.md +33 -33
- package/runtime/debugPrint.gr +4 -1
- package/runtime/debugPrint.md +9 -9
- package/runtime/equal.gr +99 -77
- package/runtime/equal.md +1 -1
- 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 +4 -4
- 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 +79 -73
- package/runtime/string.gr +37 -105
- package/runtime/string.md +3 -9
- package/runtime/unsafe/constants.md +24 -24
- package/runtime/unsafe/conv.md +13 -13
- 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 +138 -138
- package/set.gr +18 -11
- package/set.md +42 -36
- package/stack.gr +171 -2
- package/stack.md +297 -15
- package/string.gr +352 -557
- package/string.md +77 -34
- package/uint16.gr +81 -0
- package/uint16.md +183 -22
- package/uint32.gr +25 -4
- package/uint32.md +63 -28
- package/uint64.gr +25 -5
- package/uint64.md +63 -28
- package/uint8.gr +81 -0
- package/uint8.md +183 -22
- package/uri.gr +57 -53
- package/uri.md +11 -12
- package/wasi/file.gr +67 -59
- package/wasi/file.md +39 -39
- package/wasi/process.md +5 -5
- package/wasi/random.md +3 -3
- package/wasi/time.md +4 -4
- 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,71 @@ 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 MalformedUnicode: When the requested character is not a valid UTF-8 sequence
|
|
420
|
+
*
|
|
421
|
+
* @example
|
|
422
|
+
* let bytes = Bytes.fromString("Hello")
|
|
423
|
+
* assert Bytes.getChar(0, bytes) == 'H'
|
|
424
|
+
*
|
|
425
|
+
* @since v0.7.0
|
|
426
|
+
*/
|
|
427
|
+
@unsafe
|
|
428
|
+
provide let getChar = (index: Number, bytes: Bytes) => {
|
|
429
|
+
// result
|
|
430
|
+
use WasmI32.{ (+), (&), (+), (==), (>) }
|
|
431
|
+
let ptr = WasmI32.fromGrain(bytes)
|
|
432
|
+
let size = getSize(ptr)
|
|
433
|
+
let offset = coerceNumberToWasmI32(index)
|
|
434
|
+
checkIndexIsInBounds(offset, 1n, size)
|
|
435
|
+
let byte = WasmI32.load8U(ptr + offset, _BYTES_DATA_OFFSET)
|
|
436
|
+
let charSize = utf8ByteCount(byte)
|
|
437
|
+
if (offset + charSize > size) {
|
|
438
|
+
throw MalformedUnicode
|
|
439
|
+
}
|
|
440
|
+
let codePoint = getCodePoint(ptr + offset + _BYTES_DATA_OFFSET)
|
|
441
|
+
ignore(bytes)
|
|
442
|
+
tagChar(codePoint)
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* UTF-8 encodes a character starting at the given byte index.
|
|
447
|
+
*
|
|
448
|
+
* @param index: The byte index to update
|
|
449
|
+
* @param value: The value to set
|
|
450
|
+
* @param bytes: The byte sequence to mutate
|
|
451
|
+
*
|
|
452
|
+
* @throws IndexOutOfBounds: When `index` is negative
|
|
453
|
+
* @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
|
|
454
|
+
*
|
|
455
|
+
* @example
|
|
456
|
+
* let bytes = Bytes.make(1)
|
|
457
|
+
* Bytes.setChar(0, 'a', bytes)
|
|
458
|
+
* assert Bytes.getChar(0, bytes) == 'a'
|
|
459
|
+
*
|
|
460
|
+
* @since v0.7.0
|
|
461
|
+
*/
|
|
462
|
+
@unsafe
|
|
463
|
+
provide let setChar = (index: Number, value: Char, bytes: Bytes) => {
|
|
464
|
+
use WasmI32.{ (+) }
|
|
465
|
+
let ptr = WasmI32.fromGrain(bytes)
|
|
466
|
+
let size = getSize(ptr)
|
|
467
|
+
let offset = coerceNumberToWasmI32(index)
|
|
468
|
+
let usv = untagChar(value)
|
|
469
|
+
let charSize = usvEncodeLength(usv)
|
|
470
|
+
checkIndexIsInBounds(offset, charSize, size)
|
|
471
|
+
writeUtf8CodePoint(ptr + offset + _BYTES_DATA_OFFSET, usv)
|
|
396
472
|
ignore(bytes)
|
|
397
473
|
}
|
|
398
474
|
|
|
@@ -421,7 +497,7 @@ provide let getInt8 = (index: Number, bytes: Bytes) => {
|
|
|
421
497
|
let size = getSize(ptr)
|
|
422
498
|
let offset = coerceNumberToWasmI32(index)
|
|
423
499
|
checkIndexIsInBounds(offset, _INT8_BYTE_SIZE, size)
|
|
424
|
-
let n = WasmI32.load8S(ptr + offset,
|
|
500
|
+
let n = WasmI32.load8S(ptr + offset, _BYTES_DATA_OFFSET)
|
|
425
501
|
ignore(bytes)
|
|
426
502
|
tagInt8(n)
|
|
427
503
|
}
|
|
@@ -452,8 +528,8 @@ provide let setInt8 = (index: Number, value: Int8, bytes: Bytes) => {
|
|
|
452
528
|
let offset = coerceNumberToWasmI32(index)
|
|
453
529
|
checkIndexIsInBounds(offset, _INT8_BYTE_SIZE, size)
|
|
454
530
|
let v = untagInt8(value)
|
|
531
|
+
WasmI32.store8(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
455
532
|
ignore(bytes)
|
|
456
|
-
WasmI32.store8(ptr + offset, v, _VALUE_OFFSET)
|
|
457
533
|
}
|
|
458
534
|
|
|
459
535
|
/**
|
|
@@ -481,7 +557,7 @@ provide let getUint8 = (index: Number, bytes: Bytes) => {
|
|
|
481
557
|
let size = getSize(ptr)
|
|
482
558
|
let offset = coerceNumberToWasmI32(index)
|
|
483
559
|
checkIndexIsInBounds(offset, _INT8_BYTE_SIZE, size)
|
|
484
|
-
let n = WasmI32.load8U(ptr + offset,
|
|
560
|
+
let n = WasmI32.load8U(ptr + offset, _BYTES_DATA_OFFSET)
|
|
485
561
|
ignore(bytes)
|
|
486
562
|
tagUint8(n)
|
|
487
563
|
}
|
|
@@ -511,7 +587,7 @@ provide let setUint8 = (index: Number, value: Uint8, bytes: Bytes) => {
|
|
|
511
587
|
let offset = coerceNumberToWasmI32(index)
|
|
512
588
|
checkIndexIsInBounds(offset, _INT8_BYTE_SIZE, size)
|
|
513
589
|
let v = untagUint8(value)
|
|
514
|
-
WasmI32.store8(ptr + offset, v,
|
|
590
|
+
WasmI32.store8(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
515
591
|
ignore(bytes)
|
|
516
592
|
}
|
|
517
593
|
|
|
@@ -540,7 +616,7 @@ provide let getInt16 = (index: Number, bytes: Bytes) => {
|
|
|
540
616
|
let size = getSize(ptr)
|
|
541
617
|
let offset = coerceNumberToWasmI32(index)
|
|
542
618
|
checkIndexIsInBounds(offset, _INT16_BYTE_SIZE, size)
|
|
543
|
-
let n = WasmI32.load16S(ptr + offset,
|
|
619
|
+
let n = WasmI32.load16S(ptr + offset, _BYTES_DATA_OFFSET)
|
|
544
620
|
ignore(bytes)
|
|
545
621
|
tagInt16(n)
|
|
546
622
|
}
|
|
@@ -571,7 +647,7 @@ provide let setInt16 = (index: Number, value: Int16, bytes: Bytes) => {
|
|
|
571
647
|
let offset = coerceNumberToWasmI32(index)
|
|
572
648
|
checkIndexIsInBounds(offset, _INT16_BYTE_SIZE, size)
|
|
573
649
|
let v = untagInt16(value)
|
|
574
|
-
WasmI32.store16(ptr + offset, v,
|
|
650
|
+
WasmI32.store16(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
575
651
|
ignore(bytes)
|
|
576
652
|
}
|
|
577
653
|
|
|
@@ -600,7 +676,7 @@ provide let getUint16 = (index: Number, bytes: Bytes) => {
|
|
|
600
676
|
let size = getSize(ptr)
|
|
601
677
|
let offset = coerceNumberToWasmI32(index)
|
|
602
678
|
checkIndexIsInBounds(offset, _INT16_BYTE_SIZE, size)
|
|
603
|
-
let n = WasmI32.load16U(ptr + offset,
|
|
679
|
+
let n = WasmI32.load16U(ptr + offset, _BYTES_DATA_OFFSET)
|
|
604
680
|
ignore(bytes)
|
|
605
681
|
tagUint16(n)
|
|
606
682
|
}
|
|
@@ -630,7 +706,7 @@ provide let setUint16 = (index: Number, value: Uint16, bytes: Bytes) => {
|
|
|
630
706
|
let offset = coerceNumberToWasmI32(index)
|
|
631
707
|
checkIndexIsInBounds(offset, _INT16_BYTE_SIZE, size)
|
|
632
708
|
let v = untagUint16(value)
|
|
633
|
-
WasmI32.store16(ptr + offset, v,
|
|
709
|
+
WasmI32.store16(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
634
710
|
ignore(bytes)
|
|
635
711
|
}
|
|
636
712
|
|
|
@@ -658,7 +734,7 @@ provide let getInt32 = (index: Number, bytes: Bytes) => {
|
|
|
658
734
|
let size = getSize(ptr)
|
|
659
735
|
let offset = coerceNumberToWasmI32(index)
|
|
660
736
|
checkIndexIsInBounds(offset, _INT32_BYTE_SIZE, size)
|
|
661
|
-
let n = WasmI32.load(ptr + offset,
|
|
737
|
+
let n = WasmI32.load(ptr + offset, _BYTES_DATA_OFFSET)
|
|
662
738
|
ignore(bytes)
|
|
663
739
|
Conv.toInt32(n)
|
|
664
740
|
}
|
|
@@ -688,7 +764,7 @@ provide let setInt32 = (index: Number, value: Int32, bytes: Bytes) => {
|
|
|
688
764
|
let offset = coerceNumberToWasmI32(index)
|
|
689
765
|
checkIndexIsInBounds(offset, _INT32_BYTE_SIZE, size)
|
|
690
766
|
let v = Conv.fromInt32(value)
|
|
691
|
-
WasmI32.store(ptr + offset, v,
|
|
767
|
+
WasmI32.store(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
692
768
|
ignore(bytes)
|
|
693
769
|
}
|
|
694
770
|
|
|
@@ -716,7 +792,7 @@ provide let getUint32 = (index: Number, bytes: Bytes) => {
|
|
|
716
792
|
let size = getSize(ptr)
|
|
717
793
|
let offset = coerceNumberToWasmI32(index)
|
|
718
794
|
checkIndexIsInBounds(offset, _INT32_BYTE_SIZE, size)
|
|
719
|
-
let n = WasmI32.load(ptr + offset,
|
|
795
|
+
let n = WasmI32.load(ptr + offset, _BYTES_DATA_OFFSET)
|
|
720
796
|
ignore(bytes)
|
|
721
797
|
Conv.toUint32(n)
|
|
722
798
|
}
|
|
@@ -746,7 +822,7 @@ provide let setUint32 = (index: Number, value: Uint32, bytes: Bytes) => {
|
|
|
746
822
|
let offset = coerceNumberToWasmI32(index)
|
|
747
823
|
checkIndexIsInBounds(offset, _INT32_BYTE_SIZE, size)
|
|
748
824
|
let v = Conv.fromUint32(value)
|
|
749
|
-
WasmI32.store(ptr + offset, v,
|
|
825
|
+
WasmI32.store(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
750
826
|
ignore(bytes)
|
|
751
827
|
}
|
|
752
828
|
|
|
@@ -774,7 +850,7 @@ provide let getFloat32 = (index: Number, bytes: Bytes) => {
|
|
|
774
850
|
let size = getSize(ptr)
|
|
775
851
|
let offset = coerceNumberToWasmI32(index)
|
|
776
852
|
checkIndexIsInBounds(offset, _INT32_BYTE_SIZE, size)
|
|
777
|
-
let n = WasmF32.load(ptr + offset,
|
|
853
|
+
let n = WasmF32.load(ptr + offset, _BYTES_DATA_OFFSET)
|
|
778
854
|
ignore(bytes)
|
|
779
855
|
Conv.toFloat32(n)
|
|
780
856
|
}
|
|
@@ -804,7 +880,7 @@ provide let setFloat32 = (index: Number, value: Float32, bytes: Bytes) => {
|
|
|
804
880
|
let offset = coerceNumberToWasmI32(index)
|
|
805
881
|
checkIndexIsInBounds(offset, _INT32_BYTE_SIZE, size)
|
|
806
882
|
let v = Conv.fromFloat32(value)
|
|
807
|
-
WasmF32.store(ptr + offset, v,
|
|
883
|
+
WasmF32.store(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
808
884
|
ignore(bytes)
|
|
809
885
|
}
|
|
810
886
|
|
|
@@ -832,7 +908,7 @@ provide let getInt64 = (index: Number, bytes: Bytes) => {
|
|
|
832
908
|
let size = getSize(ptr)
|
|
833
909
|
let offset = coerceNumberToWasmI32(index)
|
|
834
910
|
checkIndexIsInBounds(offset, _INT64_BYTE_SIZE, size)
|
|
835
|
-
let n = WasmI64.load(ptr + offset,
|
|
911
|
+
let n = WasmI64.load(ptr + offset, _BYTES_DATA_OFFSET)
|
|
836
912
|
ignore(bytes)
|
|
837
913
|
Conv.toInt64(n)
|
|
838
914
|
}
|
|
@@ -862,7 +938,7 @@ provide let setInt64 = (index: Number, value: Int64, bytes: Bytes) => {
|
|
|
862
938
|
let offset = coerceNumberToWasmI32(index)
|
|
863
939
|
checkIndexIsInBounds(offset, _INT64_BYTE_SIZE, size)
|
|
864
940
|
let v = Conv.fromInt64(value)
|
|
865
|
-
WasmI64.store(ptr + offset, v,
|
|
941
|
+
WasmI64.store(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
866
942
|
ignore(bytes)
|
|
867
943
|
}
|
|
868
944
|
|
|
@@ -890,7 +966,7 @@ provide let getUint64 = (index: Number, bytes: Bytes) => {
|
|
|
890
966
|
let size = getSize(ptr)
|
|
891
967
|
let offset = coerceNumberToWasmI32(index)
|
|
892
968
|
checkIndexIsInBounds(offset, _INT64_BYTE_SIZE, size)
|
|
893
|
-
let n = WasmI64.load(ptr + offset,
|
|
969
|
+
let n = WasmI64.load(ptr + offset, _BYTES_DATA_OFFSET)
|
|
894
970
|
ignore(bytes)
|
|
895
971
|
Conv.toUint64(n)
|
|
896
972
|
}
|
|
@@ -920,7 +996,7 @@ provide let setUint64 = (index: Number, value: Uint64, bytes: Bytes) => {
|
|
|
920
996
|
let offset = coerceNumberToWasmI32(index)
|
|
921
997
|
checkIndexIsInBounds(offset, _INT64_BYTE_SIZE, size)
|
|
922
998
|
let v = Conv.fromUint64(value)
|
|
923
|
-
WasmI64.store(ptr + offset, v,
|
|
999
|
+
WasmI64.store(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
924
1000
|
ignore(bytes)
|
|
925
1001
|
}
|
|
926
1002
|
|
|
@@ -948,7 +1024,7 @@ provide let getFloat64 = (index: Number, bytes: Bytes) => {
|
|
|
948
1024
|
let size = getSize(ptr)
|
|
949
1025
|
let offset = coerceNumberToWasmI32(index)
|
|
950
1026
|
checkIndexIsInBounds(offset, _FLOAT64_BYTE_SIZE, size)
|
|
951
|
-
let n = WasmF64.load(ptr + offset,
|
|
1027
|
+
let n = WasmF64.load(ptr + offset, _BYTES_DATA_OFFSET)
|
|
952
1028
|
ignore(bytes)
|
|
953
1029
|
Conv.toFloat64(n)
|
|
954
1030
|
}
|
|
@@ -978,6 +1054,6 @@ provide let setFloat64 = (index: Number, value: Float64, bytes: Bytes) => {
|
|
|
978
1054
|
let offset = coerceNumberToWasmI32(index)
|
|
979
1055
|
checkIndexIsInBounds(offset, _FLOAT64_BYTE_SIZE, size)
|
|
980
1056
|
let v = Conv.fromFloat64(value)
|
|
981
|
-
WasmF64.store(ptr + offset, v,
|
|
1057
|
+
WasmF64.store(ptr + offset, v, _BYTES_DATA_OFFSET)
|
|
982
1058
|
ignore(bytes)
|
|
983
1059
|
}
|