macro_rules! impl_pass_to_js_runtime {
    ([] $($t:tt)*) => { ... };
    (
        [$trait_name:ident : clone $($other:tt)*]
        $({$($generics:tt)*})?
        $name:ty
        $(where $($where:tt)+)?
    ) => { ... };
    (
        [$trait_name:ident : None $($other:tt)*]
        $({$($generics:tt)*})?
        $name:ty
        $(where $($where:tt)+)?
    ) => { ... };
    (
        [$trait_name:ident : $impl_func:ident $($other:tt)*]
        $({$($generics:tt)*})?
        $name:ty
        $(where $($where:tt)+)?
    ) => { ... };
    (
        [$trait_name:ident ($v:ident) { $($impl_code:tt)* } $($other:tt)*]
        $({$($generics:tt)*})?
        $name:ty
        $(where $($where:tt)+)?
    ) => { ... };
}