(exps, value)
| 127 | |
| 128 | /* JS value -> handle; chooses tag from typeof. Bigint also accepted for int. */ |
| 129 | function encodeAny(exps, value) { |
| 130 | if (value === null || value === undefined) return exps.host_edge_encode(TAG_NONE, 0, 0); |
| 131 | if (typeof value === 'boolean') return encodeBool(exps, value); |
| 132 | if (typeof value === 'bigint') return encodeInt(exps, Number(value)); |
| 133 | if (typeof value === 'number') { |
| 134 | return Number.isInteger(value) ? encodeInt(exps, value) : encodeFloat(exps, value); |
| 135 | } |
| 136 | if (typeof value === 'string') return encodeStr(exps, value); |
| 137 | throw new Error(`cannot encode JS value of type ${typeof value}`); |
| 138 | } |
no test coverage detected