summaryrefslogtreecommitdiffstats
path: root/vendor/wasm-bindgen/tests/wasm/bigint.js
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/wasm-bindgen/tests/wasm/bigint.js')
-rw-r--r--vendor/wasm-bindgen/tests/wasm/bigint.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/vendor/wasm-bindgen/tests/wasm/bigint.js b/vendor/wasm-bindgen/tests/wasm/bigint.js
new file mode 100644
index 000000000..3971d2279
--- /dev/null
+++ b/vendor/wasm-bindgen/tests/wasm/bigint.js
@@ -0,0 +1,53 @@
+const wasm = require('wasm-bindgen-test.js');
+const assert = require('assert');
+
+exports.i64_js_identity = a => a;
+exports.u64_js_identity = a => a;
+
+exports.js_works = () => {
+ assert.strictEqual(wasm.zero(), BigInt('0'));
+ assert.strictEqual(wasm.one(), BigInt('1'));
+ assert.strictEqual(wasm.neg_one(), BigInt('-1'));
+ assert.strictEqual(wasm.i32_min(), BigInt('-2147483648'));
+ assert.strictEqual(wasm.u32_max(), BigInt('4294967295'));
+ assert.strictEqual(wasm.i64_min(), BigInt('-9223372036854775808'));
+ assert.strictEqual(wasm.u64_max(), BigInt('18446744073709551615'));
+
+ const i64_min = BigInt('-9223372036854775808');
+ const u64_max = BigInt('18446744073709551615');
+
+ const identityTestI64Values = [
+ BigInt('0'),
+ BigInt('1'),
+ BigInt('-1'),
+ i64_min,
+ ];
+ for (const value of identityTestI64Values) {
+ assert.strictEqual(wasm.i64_rust_identity(value), value);
+ assert.strictEqual(wasm.i64_jsvalue_identity(value), value);
+ }
+
+ const identityTestU64Values = [
+ BigInt('0'),
+ BigInt('1'),
+ u64_max,
+ ];
+ for (const value of identityTestU64Values) {
+ assert.strictEqual(wasm.u64_rust_identity(value), value);
+ assert.strictEqual(wasm.u64_jsvalue_identity(value), value);
+ }
+
+ assert.strictEqual(wasm.u64_rust_identity(BigInt('1') << BigInt('64')), BigInt('0'));
+ assert.strictEqual(wasm.i128_min_jsvalue(), BigInt('-170141183460469231731687303715884105728'));
+ assert.strictEqual(wasm.u128_max_jsvalue(), BigInt('340282366920938463463374607431768211455'));
+
+ assert.deepStrictEqual(wasm.u64_slice([]), new BigUint64Array());
+ assert.deepStrictEqual(wasm.i64_slice([]), new BigInt64Array());
+ const arr1 = new BigUint64Array([BigInt('1'), BigInt('2')]);
+ assert.deepStrictEqual(wasm.u64_slice([BigInt('1'), BigInt('2')]), arr1);
+ const arr2 = new BigInt64Array([BigInt('1'), BigInt('2')]);
+ assert.deepStrictEqual(wasm.i64_slice([BigInt('1'), BigInt('2')]), arr2);
+
+ assert.deepStrictEqual(wasm.i64_slice([i64_min]), new BigInt64Array([i64_min]));
+ assert.deepStrictEqual(wasm.u64_slice([u64_max]), new BigUint64Array([u64_max]));
+};