diff --git a/spec/pluralrules.html b/spec/pluralrules.html
index f98c07c19..a8631bfb4 100644
--- a/spec/pluralrules.html
+++ b/spec/pluralrules.html
@@ -19,7 +19,7 @@
Intl.PluralRules ( [ _locales_ [ , _options_ ] ] )
1. If NewTarget is *undefined*, throw a *TypeError* exception.
- 1. Let _pluralRules_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%Intl.PluralRules.prototype%"*, « [[InitializedPluralRules]], [[Locale]], [[Type]], [[Notation]], [[MinimumIntegerDigits]], [[MinimumFractionDigits]], [[MaximumFractionDigits]], [[MinimumSignificantDigits]], [[MaximumSignificantDigits]], [[RoundingType]], [[RoundingIncrement]], [[RoundingMode]], [[ComputedRoundingPriority]], [[TrailingZeroDisplay]] »).
+ 1. Let _pluralRules_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%Intl.PluralRules.prototype%"*, « [[InitializedPluralRules]], [[Locale]], [[Type]], [[Notation]], [[CompactDisplay]], [[MinimumIntegerDigits]], [[MinimumFractionDigits]], [[MaximumFractionDigits]], [[MinimumSignificantDigits]], [[MaximumSignificantDigits]], [[RoundingType]], [[RoundingIncrement]], [[RoundingMode]], [[ComputedRoundingPriority]], [[TrailingZeroDisplay]] »).
1. Let _optionsResolution_ be ? ResolveOptions(%Intl.PluralRules%, %Intl.PluralRules%.[[LocaleData]], _locales_, _options_, « ~coerce-options~ »).
1. Set _options_ to _optionsResolution_.[[Options]].
1. Let _r_ be _optionsResolution_.[[ResolvedLocale]].
@@ -28,6 +28,8 @@ Intl.PluralRules ( [ _locales_ [ , _options_ ] ] )
1. Set _pluralRules_.[[Type]] to _t_.
1. Let _notation_ be ? GetOption(_options_, *"notation"*, ~string~, « *"standard"*, *"scientific"*, *"engineering"*, *"compact"* », *"standard"*).
1. Set _pluralRules_.[[Notation]] to _notation_.
+ 1. Let _compactDisplay_ be ? GetOption(_options_, *"compactDisplay"*, ~string~, « *"short"*, *"long"* », *"short"*).
+ 1. Set _pluralRules_.[[CompactDisplay]] to _compactDisplay_.
1. Perform ? SetNumberFormatDigitOptions(_pluralRules_, _options_, 0, 3, _notation_).
1. Return _pluralRules_.
@@ -149,6 +151,11 @@ Intl.PluralRules.prototype.resolvedOptions ( )
*"notation"* |
|
+
+ | [[CompactDisplay]] |
+ *"compactDisplay"* |
+ |
+
| [[MinimumIntegerDigits]] |
*"minimumIntegerDigits"* |
@@ -252,6 +259,7 @@ Properties of Intl.PluralRules Instances
[[Locale]] is a String value with the language tag of the locale whose localization is used by the plural rules.
[[Type]] is one of the String values *"cardinal"* or *"ordinal"*, identifying the plural rules used.
[[Notation]] is one of the String values *"standard"*, *"scientific"*, *"engineering"*, or *"compact"*, identifying the notation used.
+ [[CompactDisplay]] is one of the String values *"short"* or *"long"*, specifying whether to display compact notation affixes in short form ("5K") or long form ("5 thousand") if formatting with the *"compact"* notation, as this can in some cases influence plural form selection. It is only used when [[Notation]] has the value *"compact"*.
[[MinimumIntegerDigits]] is a non-negative integer indicating the minimum integer digits to be used.
[[MinimumFractionDigits]] and [[MaximumFractionDigits]] are non-negative integers indicating the minimum and maximum fraction digits to be used. Numbers will be rounded or padded with trailing zeroes if necessary.
[[MinimumSignificantDigits]] and [[MaximumSignificantDigits]] are positive integers indicating the minimum and maximum fraction digits to be used. Either none or both of these properties are present; if they are, they override minimum and maximum integer and fraction digits.
@@ -272,12 +280,13 @@
_locale_: a language tag,
_type_: *"cardinal"* or *"ordinal"*,
_notation_: a String,
+ _compactDisplay_: *"short"* or *"long"*,
_s_: a decimal String,
): *"zero"*, *"one"*, *"two"*, *"few"*, *"many"*, or *"other"*
@@ -301,7 +310,8 @@
1. Let _locale_ be _pluralRules_.[[Locale]].
1. Let _type_ be _pluralRules_.[[Type]].
1. Let _notation_ be _pluralRules_.[[Notation]].
- 1. Let _p_ be PluralRuleSelect(_locale_, _type_, _notation_, _s_).
+ 1. Let _compactDisplay_ be _pluralRules_.[[CompactDisplay]].
+ 1. Let _p_ be PluralRuleSelect(_locale_, _type_, _notation_, _compactDisplay_, _s_).
1. Return the Record { [[PluralCategory]]: _p_, [[FormattedString]]: _s_ }.
@@ -309,16 +319,17 @@
PluralRuleSelectRange (
- _locale_: a String,
+ _locale_: a language tag,
_type_: *"cardinal"* or *"ordinal"*,
_notation_: a String,
+ _compactDisplay_: *"short"* or *"long"*,
_xp_: *"zero"*, *"one"*, *"two"*, *"few"*, *"many"*, or *"other"*,
_yp_: *"zero"*, *"one"*, *"two"*, *"few"*, *"many"*, or *"other"*,
): *"zero"*, *"one"*, *"two"*, *"few"*, *"many"*, or *"other"*
@@ -343,7 +354,8 @@
1. Let _locale_ be _pluralRules_.[[Locale]].
1. Let _type_ be _pluralRules_.[[Type]].
1. Let _notation_ be _pluralRules_.[[Notation]].
- 1. Return PluralRuleSelectRange(_locale_, _type_, _notation_, _xp_.[[PluralCategory]], _yp_.[[PluralCategory]]).
+ 1. Let _compactDisplay_ be _pluralRules_.[[CompactDisplay]].
+ 1. Return PluralRuleSelectRange(_locale_, _type_, _notation_, _compactDisplay_, _xp_.[[PluralCategory]], _yp_.[[PluralCategory]]).