@@ -137,6 +137,10 @@ as well as a flag to indicate whether
137
137
its formatted representation requires isolation
138
138
from the surrounding text.
139
139
140
+ To allow for _function handlers_ to ensure that certain _option_ values are set by _literals_,
141
+ the _resolved value_ of each _option_ value MUST include information about
142
+ whether the _option_ value is a _literal_ or a _variable_.
143
+
140
144
The form that _resolved values_ take is implementation-dependent,
141
145
and different implementations MAY choose to perform different levels of resolution.
142
146
@@ -153,6 +157,7 @@ and different implementations MAY choose to perform different levels of resoluti
153
157
> selectKeys(keys: string[]): string[]
154
158
> directionality(): 'LTR' | 'RTL' | 'unknown'
155
159
> isolate(): boolean
160
+ > isLiteralOptionValue(): boolean
156
161
> }
157
162
> ```
158
163
>
@@ -369,7 +374,7 @@ Implementation-defined _functions_ SHOULD use an implementation-defined _namespa
369
374
370
375
**_<dfn>Option resolution</dfn>_** is the process of computing the _options_
371
376
for a given _expression_.
372
- _Option resolution_ results in a mapping of string _identifiers_ to _values_ .
377
+ _Option resolution_ results in a mapping of string _identifiers_ to _resolved values_ .
373
378
The order of _options_ MUST NOT be significant.
374
379
375
380
> For example, the following _message_ treats both both placeholders identically:
@@ -386,6 +391,8 @@ For each _option_:
386
391
1. If `rv` is a _fallback value_:
387
392
1. If supported, emit a _Bad Option_ error.
388
393
1. Else:
394
+ 1. If the _option_ value was set by a _literal_:
395
+ 1. Include that information in `rv`.
389
396
1. Set `res[id]` to be `rv`.
390
397
1. Return `res`.
391
398
0 commit comments