@grain/stdlib 0.6.6 → 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.
Files changed (137) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/LICENSE +1 -1
  3. package/README.md +2 -2
  4. package/array.gr +55 -7
  5. package/array.md +123 -77
  6. package/bigint.md +30 -30
  7. package/buffer.gr +20 -53
  8. package/buffer.md +47 -47
  9. package/bytes.gr +111 -35
  10. package/bytes.md +111 -32
  11. package/char.gr +201 -99
  12. package/char.md +361 -34
  13. package/exception.gr +11 -11
  14. package/exception.md +26 -1
  15. package/float32.gr +327 -3
  16. package/float32.md +606 -19
  17. package/float64.gr +320 -3
  18. package/float64.md +606 -19
  19. package/fs.gr +1082 -0
  20. package/fs.md +630 -0
  21. package/hash.gr +142 -88
  22. package/hash.md +102 -14
  23. package/int16.md +23 -23
  24. package/int32.gr +25 -4
  25. package/int32.md +65 -30
  26. package/int64.gr +26 -1
  27. package/int64.md +65 -30
  28. package/int8.md +23 -23
  29. package/json.gr +366 -51
  30. package/json.md +418 -2
  31. package/list.gr +328 -31
  32. package/list.md +492 -69
  33. package/map.gr +20 -12
  34. package/map.md +44 -38
  35. package/marshal.gr +41 -40
  36. package/marshal.md +2 -2
  37. package/number.gr +159 -30
  38. package/number.md +215 -38
  39. package/option.md +21 -21
  40. package/package.json +5 -3
  41. package/path.gr +48 -0
  42. package/path.md +103 -12
  43. package/pervasives.gr +2 -2
  44. package/pervasives.md +37 -37
  45. package/priorityqueue.gr +7 -7
  46. package/priorityqueue.md +19 -19
  47. package/queue.gr +183 -29
  48. package/queue.md +296 -40
  49. package/random.md +6 -6
  50. package/range.gr +4 -4
  51. package/range.md +6 -6
  52. package/rational.md +16 -16
  53. package/regex.gr +52 -51
  54. package/regex.md +11 -11
  55. package/result.md +16 -16
  56. package/runtime/atof/common.md +39 -39
  57. package/runtime/atof/decimal.gr +6 -6
  58. package/runtime/atof/decimal.md +8 -8
  59. package/runtime/atof/lemire.gr +5 -5
  60. package/runtime/atof/lemire.md +1 -1
  61. package/runtime/atof/parse.gr +16 -16
  62. package/runtime/atof/parse.md +2 -2
  63. package/runtime/atof/slow.md +1 -1
  64. package/runtime/atof/table.md +2 -2
  65. package/runtime/atoi/parse.gr +3 -3
  66. package/runtime/atoi/parse.md +1 -1
  67. package/runtime/bigint.gr +15 -47
  68. package/runtime/bigint.md +54 -60
  69. package/runtime/compare.gr +2 -2
  70. package/runtime/compare.md +1 -1
  71. package/runtime/dataStructures.md +33 -33
  72. package/runtime/debugPrint.gr +4 -1
  73. package/runtime/debugPrint.md +9 -9
  74. package/runtime/equal.gr +99 -77
  75. package/runtime/equal.md +1 -1
  76. package/runtime/exception.gr +62 -82
  77. package/runtime/exception.md +62 -11
  78. package/runtime/gc.gr +39 -45
  79. package/runtime/gc.md +4 -4
  80. package/runtime/malloc.gr +7 -7
  81. package/runtime/malloc.md +4 -4
  82. package/runtime/math/kernel/cos.gr +70 -0
  83. package/runtime/math/kernel/cos.md +14 -0
  84. package/runtime/math/kernel/sin.gr +65 -0
  85. package/runtime/math/kernel/sin.md +14 -0
  86. package/runtime/math/kernel/tan.gr +136 -0
  87. package/runtime/math/kernel/tan.md +14 -0
  88. package/runtime/math/rempio2.gr +244 -0
  89. package/runtime/math/rempio2.md +14 -0
  90. package/runtime/math/trig.gr +130 -0
  91. package/runtime/math/trig.md +28 -0
  92. package/runtime/math/umuldi.gr +26 -0
  93. package/runtime/math/umuldi.md +14 -0
  94. package/runtime/numberUtils.gr +29 -29
  95. package/runtime/numberUtils.md +12 -12
  96. package/runtime/numbers.gr +373 -381
  97. package/runtime/numbers.md +79 -73
  98. package/runtime/string.gr +37 -105
  99. package/runtime/string.md +3 -9
  100. package/runtime/unsafe/constants.md +24 -24
  101. package/runtime/unsafe/conv.md +13 -13
  102. package/runtime/unsafe/memory.gr +24 -20
  103. package/runtime/unsafe/memory.md +27 -7
  104. package/runtime/unsafe/offsets.gr +36 -0
  105. package/runtime/unsafe/offsets.md +88 -0
  106. package/runtime/unsafe/panic.gr +28 -0
  107. package/runtime/unsafe/panic.md +14 -0
  108. package/runtime/unsafe/tags.md +32 -32
  109. package/runtime/unsafe/wasmf32.md +28 -28
  110. package/runtime/unsafe/wasmf64.md +28 -28
  111. package/runtime/unsafe/wasmi32.md +47 -47
  112. package/runtime/unsafe/wasmi64.md +50 -50
  113. package/runtime/utf8.gr +189 -0
  114. package/runtime/utf8.md +117 -0
  115. package/runtime/wasi.gr +4 -2
  116. package/runtime/wasi.md +138 -138
  117. package/set.gr +18 -11
  118. package/set.md +42 -36
  119. package/stack.gr +171 -2
  120. package/stack.md +297 -15
  121. package/string.gr +352 -557
  122. package/string.md +77 -34
  123. package/uint16.md +22 -22
  124. package/uint32.gr +25 -4
  125. package/uint32.md +63 -28
  126. package/uint64.gr +25 -5
  127. package/uint64.md +63 -28
  128. package/uint8.md +22 -22
  129. package/uri.gr +57 -53
  130. package/uri.md +11 -12
  131. package/wasi/file.gr +67 -59
  132. package/wasi/file.md +39 -39
  133. package/wasi/process.md +5 -5
  134. package/wasi/random.md +3 -3
  135. package/wasi/time.md +4 -4
  136. package/runtime/utils/printing.gr +0 -60
  137. 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, _SIZE_OFFSET)
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 + _VALUE_OFFSET, src + _VALUE_OFFSET, size)
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 + _VALUE_OFFSET, src + _VALUE_OFFSET, size)
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 + _VALUE_OFFSET, src + _VALUE_OFFSET, size)
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(dst + _VALUE_OFFSET, src + _VALUE_OFFSET + start, length)
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 + _VALUE_OFFSET + dstOffset,
268
- src + _VALUE_OFFSET + srcOffset,
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 + _VALUE_OFFSET + dstIndex,
324
- srcPtr + _VALUE_OFFSET + srcIndex,
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 + _VALUE_OFFSET, v, size)
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 + _VALUE_OFFSET, 0n, size)
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, _VALUE_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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
1057
+ WasmF64.store(ptr + offset, v, _BYTES_DATA_OFFSET)
982
1058
  ignore(bytes)
983
1059
  }