mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-03-16 02:00:51 +00:00
* Pre-generating web-sys * Fixing build errors * Minor refactor for the unit tests * Changing to generate #[wasm_bindgen} annotations * Fixing code generation * Adding in main bin to wasm-bindgen-webidl * Fixing more problems * Adding in support for unstable APIs * Fixing bug with code generation * More code generation fixes * Improving the webidl program * Removing unnecessary cfg from the generated code * Splitting doc comments onto separate lines * Improving the generation for unstable features * Adding in support for string values in enums * Now runs rustfmt on the mod.rs file * Fixing codegen for constructors * Fixing webidl-tests * Fixing build errors * Another fix for build errors * Renaming typescript_name to typescript_type * Adding in docs for typescript_type * Adding in CI script to verify that web-sys is up to date * Fixing CI script * Fixing CI script * Don't suppress git diff output * Remove duplicate definitions of `Location` Looks to be a preexisting bug in wasm-bindgen? * Regenerate webidl * Try to get the git diff command right * Handle named constructors in WebIDL * Remove stray rustfmt.toml * Add back NamedConstructorBar definition in tests * Run stable rustfmt over everything * Don't run Cargo in a build script Instead refactor things so webidl-tests can use the Rust-code-generation as a library in a build script. Also fixes `cargo fmt` in the repository. * Fixup generated code * Running web-sys checks on stable * Improving the code generation a little * Running rustfmt Co-authored-by: Alex Crichton <alex@alexcrichton.com>
64 lines
1.9 KiB
JavaScript
64 lines
1.9 KiB
JavaScript
const wasm = require('wasm-bindgen-test.js');
|
|
const assert = require('assert');
|
|
|
|
exports.assert_null = x => {
|
|
assert.strictEqual(x, null);
|
|
};
|
|
|
|
exports.js_works = () => {
|
|
assert.strictEqual(wasm.api_foo(), 'foo');
|
|
assert.strictEqual(wasm.api_bar('a'), 'a');
|
|
assert.strictEqual(wasm.api_baz(), 1);
|
|
wasm.api_baz2(2, 'a');
|
|
|
|
assert.strictEqual(wasm.api_js_null(), null);
|
|
assert.strictEqual(wasm.api_js_undefined(), undefined);
|
|
|
|
wasm.api_test_is_null_undefined(null, undefined, 1.0);
|
|
|
|
assert.strictEqual(wasm.api_get_true(), true);
|
|
assert.strictEqual(wasm.api_get_false(), false);
|
|
wasm.api_test_bool(true, false, 1.0);
|
|
|
|
assert.strictEqual(typeof(wasm.api_mk_symbol()), 'symbol');
|
|
assert.strictEqual(typeof(wasm.api_mk_symbol2('a')), 'symbol');
|
|
assert.strictEqual(Symbol.keyFor(wasm.api_mk_symbol()), undefined);
|
|
assert.strictEqual(Symbol.keyFor(wasm.api_mk_symbol2('b')), undefined);
|
|
|
|
wasm.api_assert_symbols(Symbol(), 'a');
|
|
wasm.api_acquire_string('foo', null);
|
|
assert.strictEqual(wasm.api_acquire_string2(''), '');
|
|
assert.strictEqual(wasm.api_acquire_string2('a'), 'a');
|
|
};
|
|
|
|
exports.js_eq_works = () => {
|
|
assert.strictEqual(wasm.eq_test('a', 'a'), true);
|
|
assert.strictEqual(wasm.eq_test('a', 'b'), false);
|
|
assert.strictEqual(wasm.eq_test(NaN, NaN), false);
|
|
assert.strictEqual(wasm.eq_test({a: 'a'}, {a: 'a'}), false);
|
|
assert.strictEqual(wasm.eq_test1(NaN), false);
|
|
let x = {a: 'a'};
|
|
assert.strictEqual(wasm.eq_test(x, x), true);
|
|
assert.strictEqual(wasm.eq_test1(x), true);
|
|
};
|
|
|
|
exports.debug_values = () => ([
|
|
null,
|
|
undefined,
|
|
0,
|
|
1.0,
|
|
true,
|
|
[1,2,3],
|
|
"string",
|
|
{test: "object"},
|
|
[1.0, [2.0, 3.0]],
|
|
() => (null),
|
|
new Set(),
|
|
]);
|
|
|
|
exports.assert_function_table = (x, i) => {
|
|
const rawWasm = require('wasm-bindgen-test.js').__wasm;
|
|
assert.ok(x instanceof WebAssembly.Table);
|
|
assert.strictEqual(x.get(i), rawWasm.function_table_lookup);
|
|
};
|