Skip to content

2025-07-11

Latest

Choose a tag to compare

@kriskowal kriskowal released this 12 Jul 05:29
· 189 commits to master since this release

@endo/immutable-arraybuffer 1.1.2

  • Removes @endo/immutable-arraybufer/shim-hermes.js and absorbs the necessary features into @endo/immutable-arraybuffer/shim.js. We are not qualifying this as a breaking change since the feature did not exist long enough to become relied upon.

@endo/marshal 1.8.0

  • Introduces an environment variable config option ENDO_RANK_STRINGS to change the rank ordering of strings from the current (incorrect) ordering by UTF-16 code unit used by JavaScript's < and .sort() operations to (correct and OCapN-conformant) ordering by Unicode code point. It currently defaults to "utf16-code-unit-order", matching the previously-unconditional behavior.

@endo/pass-style 1.6.3

  • The exported function name isObject is ambiguous. It is unclear whether it includes functions or not. (It does.) To avoid this confusion, we're deprecating isObject and suggesting to use the new export isPrimitive instead, that has the opposite answer. IOW, for all x, isObject(x) === !isPrimitive(x)

@endo/patterns 1.7.0

  • @endo/marshal introduces an environment variable config option ENDO_RANK_STRINGS to change the rank ordering of strings from the current (incorrect) ordering by UTF-16 code unit used by JavaScript's < and .sort() operations to (correct and OCapN-conformant) ordering by Unicode code point. It currently defaults to "utf16-code-unit-order", matching the previously-unconditional behavior.
    • @endo/patterns provides a compareKeys partial order that delegates some ordering, including strings, to the rank ordering provided by @endo/marshal. So when the ENDO_RANK_STRINGS default is not overridden, then compareKeys also follows the (incorrect) UTF-16 code unit order. But when it is overridden, then compareKeys also follows the (correct) Unicode code-point order.
  • In errors explaining why a specimen does not match a pattern, sometimes the error message contains a quoted form of a nested pattern. This quoting was done with q, producing an uninformative rendering of these nested patterns. Now this quoting is done with qp, which renders these nested patterns into readable Justin source code.