(s: MathJSON)
| 868 | lhsW: MathJSON, |
| 869 | rhsW: MathJSON |
| 870 | ): string { |
| 871 | const side = (s: MathJSON): string => { |
| 872 | // Box in a throwaway scope: canonical boxing auto-declares the wildcard |
| 873 | // symbols, and those inferred types must not leak across entries. |
| 874 | ce.pushScope(); |
| 875 | try { |
| 876 | const b = ce.expr(s as never); |
| 877 | return JSON.stringify(b.json); |
| 878 | } catch { |
| 879 | return JSON.stringify(s); |
| 880 | } finally { |
| 881 | ce.popScope(); |
| 882 | } |
| 883 | }; |
| 884 | let a = side(lhsW); |
| 885 | let b = side(rhsW); |
no test coverage detected