Skip to content

Commit 9f17635

Browse files
More tests for result type (#4208)
1 parent ff8b683 commit 9f17635

File tree

7 files changed

+84
-43
lines changed

7 files changed

+84
-43
lines changed

crates/cli/tests/reference/result-string.d.ts

-3
This file was deleted.

crates/cli/tests/reference/result-string.rs

-6
This file was deleted.

crates/cli/tests/reference/result-string.wat

-12
This file was deleted.
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/* tslint:disable */
2+
/* eslint-disable */
3+
export function result_string(): string;
4+
export function result_void(): void;
5+
export function result_i32(): number;

crates/cli/tests/reference/result-string.js renamed to crates/cli/tests/reference/result.js

+45-22
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,26 @@ export function __wbg_set_wasm(val) {
44
}
55

66

7+
const lTextDecoder = typeof TextDecoder === 'undefined' ? (0, module.require)('util').TextDecoder : TextDecoder;
8+
9+
let cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true });
10+
11+
cachedTextDecoder.decode();
12+
13+
let cachedUint8ArrayMemory0 = null;
14+
15+
function getUint8ArrayMemory0() {
16+
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
17+
cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
18+
}
19+
return cachedUint8ArrayMemory0;
20+
}
21+
22+
function getStringFromWasm0(ptr, len) {
23+
ptr = ptr >>> 0;
24+
return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
25+
}
26+
727
const heap = new Array(128).fill(undefined);
828

929
heap.push(undefined, null, true, false);
@@ -32,34 +52,14 @@ function takeObject(idx) {
3252
dropObject(idx);
3353
return ret;
3454
}
35-
36-
const lTextDecoder = typeof TextDecoder === 'undefined' ? (0, module.require)('util').TextDecoder : TextDecoder;
37-
38-
let cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true });
39-
40-
cachedTextDecoder.decode();
41-
42-
let cachedUint8ArrayMemory0 = null;
43-
44-
function getUint8ArrayMemory0() {
45-
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
46-
cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
47-
}
48-
return cachedUint8ArrayMemory0;
49-
}
50-
51-
function getStringFromWasm0(ptr, len) {
52-
ptr = ptr >>> 0;
53-
return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
54-
}
5555
/**
5656
* @returns {string}
5757
*/
58-
export function exported() {
58+
export function result_string() {
5959
let deferred2_0;
6060
let deferred2_1;
6161
try {
62-
const ret = wasm.exported();
62+
const ret = wasm.result_string();
6363
var ptr1 = ret[0];
6464
var len1 = ret[1];
6565
if (ret[3]) {
@@ -74,6 +74,29 @@ export function exported() {
7474
}
7575
}
7676

77+
export function result_void() {
78+
const ret = wasm.result_void();
79+
if (ret[1]) {
80+
throw takeObject(ret[0]);
81+
}
82+
}
83+
84+
/**
85+
* @returns {number}
86+
*/
87+
export function result_i32() {
88+
const ret = wasm.result_i32();
89+
if (ret[2]) {
90+
throw takeObject(ret[1]);
91+
}
92+
return ret[0];
93+
}
94+
95+
export function __wbindgen_error_new(arg0, arg1) {
96+
const ret = new Error(getStringFromWasm0(arg0, arg1));
97+
return addHeapObject(ret);
98+
};
99+
77100
export function __wbindgen_number_new(arg0) {
78101
const ret = arg0;
79102
return addHeapObject(ret);

crates/cli/tests/reference/result.rs

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
use wasm_bindgen::prelude::*;
2+
3+
#[wasm_bindgen]
4+
pub fn result_string() -> Result<String, JsValue> {
5+
Err(JsValue::from(5i32))
6+
}
7+
8+
#[wasm_bindgen]
9+
pub fn result_void() -> Result<(), JsError> {
10+
Err(JsError::new("message"))
11+
}
12+
13+
#[wasm_bindgen]
14+
pub fn result_i32() -> Result<i32, JsError> {
15+
Ok(1)
16+
}

crates/cli/tests/reference/result.wat

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
(module $reference_test.wasm
2+
(type (;0;) (func (result i32 i32)))
3+
(type (;1;) (func (result i32 i32 i32)))
4+
(type (;2;) (func (result i32 i32 i32 i32)))
5+
(type (;3;) (func (param i32 i32 i32)))
6+
(func $__wbindgen_free (;0;) (type 3) (param i32 i32 i32))
7+
(func $"result_string multivalue shim" (;1;) (type 2) (result i32 i32 i32 i32))
8+
(func $"result_i32 multivalue shim" (;2;) (type 1) (result i32 i32 i32))
9+
(func $"result_void multivalue shim" (;3;) (type 0) (result i32 i32))
10+
(memory (;0;) 17)
11+
(export "memory" (memory 0))
12+
(export "result_string" (func $"result_string multivalue shim"))
13+
(export "result_void" (func $"result_void multivalue shim"))
14+
(export "result_i32" (func $"result_i32 multivalue shim"))
15+
(export "__wbindgen_free" (func $__wbindgen_free))
16+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
17+
)
18+

0 commit comments

Comments
 (0)