@@ -941,7 +941,7 @@ The _Default Bidi Strategy_ is defined as follows:
941941 1. Append `fmt` to `out`.
942942 1. Else:
943943 1. Let `fmt` be the formatted string representation of the _resolved value_ of `part`.
944- 1. Let `dir` be the directionality of `fmt `,
944+ 1. Let `dir` be `DIR(part) `,
945945 one of « `'LTR'`, `'RTL'`, `'unknown'` », with the same meanings as for `msgdir`.
946946 > [!NOTE]
947947 > _Resolved values_ need to track two different pieces of metadata about directionality:
@@ -973,4 +973,20 @@ The _Default Bidi Strategy_ is defined as follows:
973973 1. Append U+2069 POP DIRECTIONAL ISOLATE to `out`.
9749741. Emit `out` as the formatted output of the message.
975975
976+ The auxiliary function `DIR`, which maps an _expression_ to one of
977+ « `'LTR'`, `'RTL'`, `'unknown'` », is expected to be defined using the
978+ _resolved value_ of the _expression_. An implementation can use
979+ a representation of _resolved values_ that tracks two different
980+ pieces of metadata about directionality: the `isolate` flag used in step 2(iii),
981+ and the directionality itself. Each _function handler_ can have its own means
982+ for determining the directionality annotation on the _resolved value_ it returns.
983+ Alternately, an implementation could simply compute `DIR(exp)` based on the
984+ locale.
985+
986+ > [!NOTE]
987+ > `DIR(exp)` SHOULD NOT be determined by introspecting
988+ > the character sequence in the formatted string representation
989+ > of the resolved value of `exp`.
990+
991+
976992
0 commit comments