Skip to content

Commit 77ee2fd

Browse files
committed
Disable Automatic Activation of externref
Starting with Rust 1.82 `reference-types` is always present in the `target_features` section. The problem is that JS bundlers like Webpack can't currently handle the `reference-types` proposal. So for now there should not be any automatic detection of the feature and instead it should explicitly be enabled by the user.
1 parent 76776ef commit 77ee2fd

15 files changed

+25
-19
lines changed

crates/cli-support/src/lib.rs

+11-5
Original file line numberDiff line numberDiff line change
@@ -323,11 +323,17 @@ impl Bindgen {
323323
.context("failed getting Wasm module")?,
324324
};
325325

326-
// Enable reference type transformations if the module is already using it.
327-
if let Ok(true) = wasm_bindgen_wasm_conventions::target_feature(&module, "reference-types")
328-
{
329-
self.externref = true;
330-
}
326+
// FIXME: Starting with Rust 1.82 `reference-types` is always present
327+
// in the `target_features` section. The problem is that JS bundlers
328+
// like Webpack can't currently handle the `reference-types` proposal.
329+
// So for now there should not be any automatic detection of the feature
330+
// and instead it should explicitly be enabled by the user.
331+
332+
// // Enable reference type transformations if the module is already using it.
333+
// if let Ok(true) = wasm_bindgen_wasm_conventions::target_feature(&module, "reference-types")
334+
// {
335+
// self.externref = true;
336+
// }
331337

332338
// Enable multivalue transformations if the module is already using it.
333339
if let Ok(true) = wasm_bindgen_wasm_conventions::target_feature(&module, "multivalue") {

crates/cli/tests/reference/add.wat

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
(export "memory" (memory 0))
77
(export "add_u32" (func $add_u32))
88
(export "add_i32" (func $add_i32))
9-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
9+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
1010
)
1111

crates/cli/tests/reference/builder.wat

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
(export "memory" (memory 0))
88
(export "__wbg_classbuilder_free" (func $__wbg_classbuilder_free))
99
(export "classbuilder_builder" (func $classbuilder_builder))
10-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
10+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
1111
)
1212

crates/cli/tests/reference/constructor.wat

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
(export "memory" (memory 0))
88
(export "__wbg_classconstructor_free" (func $__wbg_classconstructor_free))
99
(export "classconstructor_new" (func $classconstructor_new))
10-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
10+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
1111
)
1212

crates/cli/tests/reference/empty.wat

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
(module $reference_test.wasm
22
(memory (;0;) 16)
33
(export "memory" (memory 0))
4-
(@custom "target_features" (after export) "\02+\0fmutable-globals+\08sign-ext")
4+
(@custom "target_features" (after export) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
55
)
66

crates/cli/tests/reference/enums.wat

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@
1010
(export "option_enum_echo" (func $option_enum_echo))
1111
(export "get_name" (func $get_name))
1212
(export "option_string_enum_echo" (func $option_string_enum_echo))
13-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
13+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
1414
)
1515

crates/cli/tests/reference/import-catch.wat

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99
(export "exported" (func $exported))
1010
(export "__wbindgen_exn_store" (func $__wbindgen_exn_store))
1111
(export "__wbindgen_add_to_stack_pointer" (func $__wbindgen_add_to_stack_pointer))
12-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
12+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
1313
)
1414

crates/cli/tests/reference/nop.wat

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
(memory (;0;) 17)
55
(export "memory" (memory 0))
66
(export "nop" (func $nop))
7-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
7+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
88
)
99

crates/cli/tests/reference/pointers.wat

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
(export "memory" (memory 0))
77
(export "const_pointer" (func $const_pointer))
88
(export "mut_pointer" (func $mut_pointer))
9-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
9+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
1010
)
1111

crates/cli/tests/reference/raw.wat

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
(export "__wbg_test_free" (func $__wbg_test_free))
1212
(export "test_test1" (func $test_test1))
1313
(export "test_test2" (func $test_test2))
14-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
14+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
1515
)
1616

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@
1010
(export "exported" (func $exported))
1111
(export "__wbindgen_add_to_stack_pointer" (func $__wbindgen_add_to_stack_pointer))
1212
(export "__wbindgen_free" (func $__wbindgen_free))
13-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
13+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
1414
)
1515

crates/cli/tests/reference/self-type.wat

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@
2020
(export "test_self_Self" (func $test_self_Self))
2121
(export "test_self_ref_Self" (func $test_self_ref_Self))
2222
(export "test_self_ref_mut_Self" (func $test_self_ref_mut_Self))
23-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
23+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
2424
)
2525

crates/cli/tests/reference/skip-jsdoc.wat

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
(export "memory" (memory 0))
77
(export "docme" (func $docme))
88
(export "i_has_docs" (func $i_has_docs))
9-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
9+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
1010
)
1111

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@
1010
(export "foo" (func $foo))
1111
(export "__wbindgen_malloc" (func $__wbindgen_malloc))
1212
(export "__wbindgen_realloc" (func $__wbindgen_realloc))
13-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
13+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
1414
)
1515

crates/cli/tests/reference/web-sys.wat

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@
1515
(export "__wbindgen_exn_store" (func $__wbindgen_exn_store))
1616
(export "__wbindgen_malloc" (func $__wbindgen_malloc))
1717
(export "__wbindgen_realloc" (func $__wbindgen_realloc))
18-
(@custom "target_features" (after code) "\02+\0fmutable-globals+\08sign-ext")
18+
(@custom "target_features" (after code) "\04+\0amultivalue+\0fmutable-globals+\0freference-types+\08sign-ext")
1919
)
2020

0 commit comments

Comments
 (0)