With the "shared-everything"-claim this proposal should also spec the change to the js-string-builtins proposal.
It might be enough to "simply" specify the new accepted signatures?
E.g. something like:
func equals(
first: shared externref,
second: shared externref
) -> i32
I would assume that each version should be either "all-shared" or "none-shared" meaning that the following signature should not be valid:
func equals(
first: shared externref,
second: externref
) -> i32