Skip to content

Commit da69f18

Browse files
felipegenefdgryski
authored andcommitted
fix targets/wasm_exec.js: move unsigned coercions from helpers to top-level import functions
1 parent 6971b8a commit da69f18

1 file changed

Lines changed: 21 additions & 4 deletions

File tree

targets/wasm_exec.js

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,8 +221,6 @@
221221
}
222222

223223
const loadSlice = (array, len, cap) => {
224-
array >>>= 0;
225-
len >>>= 0;
226224
return new Uint8Array(this._inst.exports.memory.buffer, array, len);
227225
}
228226

@@ -235,8 +233,6 @@
235233
}
236234

237235
const loadString = (ptr, len) => {
238-
ptr >>>= 0;
239-
len >>>= 0;
240236
return decoder.decode(new DataView(this._inst.exports.memory.buffer, ptr, len));
241237
}
242238

@@ -305,6 +301,8 @@
305301

306302
// func getRandomData(r []byte)
307303
"runtime.getRandomData": (slice_ptr, slice_len, slice_cap) => {
304+
slice_ptr >>>= 0;
305+
slice_len >>>= 0;
308306
crypto.getRandomValues(loadSlice(slice_ptr, slice_len, slice_cap));
309307
},
310308

@@ -342,12 +340,15 @@
342340
// func stringVal(value string) ref
343341
"syscall/js.stringVal": (value_ptr, value_len) => {
344342
value_ptr >>>= 0;
343+
value_len >>>= 0;
345344
const s = loadString(value_ptr, value_len);
346345
return boxValue(s);
347346
},
348347

349348
// func valueGet(v ref, p string) ref
350349
"syscall/js.valueGet": (v_ref, p_ptr, p_len) => {
350+
p_ptr >>>= 0;
351+
p_len >>>= 0;
351352
let prop = loadString(p_ptr, p_len);
352353
let v = unboxValue(v_ref);
353354
let result = Reflect.get(v, prop);
@@ -356,6 +357,8 @@
356357

357358
// func valueSet(v ref, p string, x ref)
358359
"syscall/js.valueSet": (v_ref, p_ptr, p_len, x_ref) => {
360+
p_ptr >>>= 0;
361+
p_len >>>= 0;
359362
const v = unboxValue(v_ref);
360363
const p = loadString(p_ptr, p_len);
361364
const x = unboxValue(x_ref);
@@ -364,6 +367,8 @@
364367

365368
// func valueDelete(v ref, p string)
366369
"syscall/js.valueDelete": (v_ref, p_ptr, p_len) => {
370+
p_ptr >>>= 0;
371+
p_len >>>= 0;
367372
const v = unboxValue(v_ref);
368373
const p = loadString(p_ptr, p_len);
369374
Reflect.deleteProperty(v, p);
@@ -381,6 +386,11 @@
381386

382387
// func valueCall(v ref, m string, args []ref) (ref, bool)
383388
"syscall/js.valueCall": (ret_addr, v_ref, m_ptr, m_len, args_ptr, args_len, args_cap) => {
389+
ret_addr >>>= 0;
390+
m_ptr >>>= 0;
391+
m_len >>>= 0;
392+
args_ptr >>>= 0;
393+
args_len >>>= 0;
384394
const v = unboxValue(v_ref);
385395
const name = loadString(m_ptr, m_len);
386396
const args = loadSliceOfValues(args_ptr, args_len, args_cap);
@@ -396,6 +406,9 @@
396406

397407
// func valueInvoke(v ref, args []ref) (ref, bool)
398408
"syscall/js.valueInvoke": (ret_addr, v_ref, args_ptr, args_len, args_cap) => {
409+
ret_addr >>>= 0;
410+
args_ptr >>>= 0;
411+
args_len >>>= 0;
399412
try {
400413
const v = unboxValue(v_ref);
401414
const args = loadSliceOfValues(args_ptr, args_len, args_cap);
@@ -409,6 +422,9 @@
409422

410423
// func valueNew(v ref, args []ref) (ref, bool)
411424
"syscall/js.valueNew": (ret_addr, v_ref, args_ptr, args_len, args_cap) => {
425+
ret_addr >>>= 0;
426+
args_ptr >>>= 0;
427+
args_len >>>= 0;
412428
const v = unboxValue(v_ref);
413429
const args = loadSliceOfValues(args_ptr, args_len, args_cap);
414430
try {
@@ -427,6 +443,7 @@
427443

428444
// valuePrepareString(v ref) (ref, int)
429445
"syscall/js.valuePrepareString": (ret_addr, v_ref) => {
446+
ret_addr >>>= 0;
430447
const s = String(unboxValue(v_ref));
431448
const str = encoder.encode(s);
432449
storeValue(ret_addr, str);

0 commit comments

Comments
 (0)