@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.
Files changed (137) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/LICENSE +1 -1
  3. package/README.md +2 -2
  4. package/array.gr +55 -7
  5. package/array.md +606 -560
  6. package/bigint.md +228 -228
  7. package/buffer.gr +85 -53
  8. package/buffer.md +442 -319
  9. package/bytes.gr +112 -35
  10. package/bytes.md +299 -219
  11. package/char.gr +201 -99
  12. package/char.md +447 -120
  13. package/exception.gr +11 -11
  14. package/exception.md +29 -4
  15. package/float32.gr +327 -3
  16. package/float32.md +698 -111
  17. package/float64.gr +320 -3
  18. package/float64.md +698 -111
  19. package/fs.gr +1082 -0
  20. package/fs.md +630 -0
  21. package/hash.gr +142 -88
  22. package/hash.md +105 -17
  23. package/int16.md +178 -178
  24. package/int32.gr +26 -5
  25. package/int32.md +266 -231
  26. package/int64.gr +27 -2
  27. package/int64.md +266 -231
  28. package/int8.md +178 -178
  29. package/json.gr +366 -51
  30. package/json.md +431 -15
  31. package/list.gr +328 -31
  32. package/list.md +759 -336
  33. package/map.gr +20 -12
  34. package/map.md +266 -260
  35. package/marshal.gr +41 -40
  36. package/marshal.md +14 -14
  37. package/number.gr +278 -35
  38. package/number.md +688 -269
  39. package/option.md +162 -162
  40. package/package.json +5 -3
  41. package/path.gr +48 -0
  42. package/path.md +180 -89
  43. package/pervasives.gr +2 -2
  44. package/pervasives.md +275 -275
  45. package/priorityqueue.gr +7 -7
  46. package/priorityqueue.md +131 -131
  47. package/queue.gr +183 -29
  48. package/queue.md +404 -148
  49. package/random.md +43 -43
  50. package/range.gr +4 -4
  51. package/range.md +42 -42
  52. package/rational.md +123 -123
  53. package/regex.gr +52 -51
  54. package/regex.md +102 -102
  55. package/result.md +118 -118
  56. package/runtime/atof/common.md +39 -39
  57. package/runtime/atof/decimal.gr +6 -6
  58. package/runtime/atof/decimal.md +14 -14
  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 +8 -8
  71. package/runtime/dataStructures.md +211 -211
  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 +8 -8
  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 +13 -13
  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 +348 -342
  98. package/runtime/string.gr +37 -105
  99. package/runtime/string.md +20 -26
  100. package/runtime/unsafe/constants.md +24 -24
  101. package/runtime/unsafe/conv.md +19 -19
  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 +147 -147
  117. package/set.gr +18 -11
  118. package/set.md +253 -247
  119. package/stack.gr +171 -2
  120. package/stack.md +371 -89
  121. package/string.gr +352 -557
  122. package/string.md +298 -255
  123. package/uint16.md +170 -170
  124. package/uint32.gr +25 -4
  125. package/uint32.md +249 -214
  126. package/uint64.gr +25 -5
  127. package/uint64.md +249 -214
  128. package/uint8.md +170 -170
  129. package/uri.gr +57 -53
  130. package/uri.md +88 -89
  131. package/wasi/file.gr +67 -59
  132. package/wasi/file.md +308 -308
  133. package/wasi/process.md +26 -26
  134. package/wasi/random.md +12 -12
  135. package/wasi/time.md +16 -16
  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,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 + _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 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, _VALUE_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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
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, _VALUE_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, _VALUE_OFFSET)
1058
+ WasmF64.store(ptr + offset, v, _BYTES_DATA_OFFSET)
982
1059
  ignore(bytes)
983
1060
  }