Skip to content

Commit d70eaa0

Browse files
committed
punt and use asInstanceOf to avoid breaking change
1 parent fb8188a commit d70eaa0

File tree

1 file changed

+48
-36
lines changed
  • src/main/scala/org/scalajs/dom/experimental/intl

1 file changed

+48
-36
lines changed

src/main/scala/org/scalajs/dom/experimental/intl/Intl.scala

Lines changed: 48 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
package org.scalajs.dom.experimental.intl
88

99
import scala.scalajs.js
10+
import scala.scalajs.js.|
1011
import scala.scalajs.js.annotation._
11-
import scala.scalajs.js.{UndefOr, |}
1212

1313
/**
1414
* The Intl.Collator object is a constructor for collators, objects that enable language
@@ -63,6 +63,7 @@ class NumberFormat(
6363
options: js.Any): js.Array[String] = js.native
6464
}
6565

66+
@js.native
6667
trait CollatorOptions extends js.Object {
6768
val localeMatcher: js.UndefOr[String]
6869
val usage: js.UndefOr[String]
@@ -119,16 +120,21 @@ object CollatorOptions {
119120
ignorePunctuation: js.UndefOr[Boolean] = js.undefined,
120121
numeric: js.UndefOr[Boolean] = js.undefined,
121122
caseFirst: js.UndefOr[String] = js.undefined
122-
): CollatorOptions = new CollatorOptions {
123-
override val localeMatcher: UndefOr[String] = localeMatcher
124-
override val usage: UndefOr[String] = usage
125-
override val sensitivity: UndefOr[String] = sensitivity
126-
override val ignorePunctuation: UndefOr[Boolean] = ignorePunctuation
127-
override val numeric: UndefOr[Boolean] = numeric
128-
override val caseFirst: UndefOr[String] = caseFirst
123+
): CollatorOptions = {
124+
js.Dynamic
125+
.literal(
126+
localeMatcher = localeMatcher.asInstanceOf[js.Any],
127+
usage = usage.asInstanceOf[js.Any],
128+
sensitivity = sensitivity.asInstanceOf[js.Any],
129+
ignorePunctuation = ignorePunctuation.asInstanceOf[js.Any],
130+
numeric = numeric.asInstanceOf[js.Any],
131+
caseFirst = caseFirst.asInstanceOf[js.Any]
132+
)
133+
.asInstanceOf[CollatorOptions]
129134
}
130135
}
131136

137+
@js.native
132138
trait DateTimeFormatOptions extends js.Object {
133139
val localeMatcher: js.UndefOr[String]
134140
val timeZone: js.UndefOr[String]
@@ -191,25 +197,29 @@ object DateTimeFormatOptions {
191197
second: js.UndefOr[String] = js.undefined,
192198
timeZoneName: js.UndefOr[String] = js.undefined
193199
): DateTimeFormatOptions = {
194-
new DateTimeFormatOptions {
195-
override val localeMatcher: UndefOr[String] = localeMatcher
196-
override val timeZone: UndefOr[String] = timeZone
197-
override val hour12: UndefOr[Boolean] = hour12
198-
override val formatMatcher: UndefOr[String] = formatMatcher
199-
override val weekday: UndefOr[String] = weekday
200-
override val era: UndefOr[String] = era
201-
override val year: UndefOr[String] = year
202-
override val month: UndefOr[String] = month
203-
override val day: UndefOr[String] = day
204-
override val hour: UndefOr[String] = hour
205-
override val minute: UndefOr[String] = minute
206-
override val second: UndefOr[String] = second
207-
override val timeZoneName: UndefOr[String] = timeZoneName
208-
}
200+
// format: off
201+
js.Dynamic
202+
.literal(
203+
localeMatcher = localeMatcher.asInstanceOf[js.Any],
204+
timeZone = timeZone.asInstanceOf[js.Any],
205+
hour12 = hour12.asInstanceOf[js.Any],
206+
formatMatcher = formatMatcher.asInstanceOf[js.Any],
207+
weekday = weekday.asInstanceOf[js.Any],
208+
era = era.asInstanceOf[js.Any],
209+
year = year.asInstanceOf[js.Any],
210+
month = month.asInstanceOf[js.Any],
211+
day = day.asInstanceOf[js.Any],
212+
hour = hour.asInstanceOf[js.Any],
213+
minute = minute.asInstanceOf[js.Any],
214+
second = second.asInstanceOf[js.Any],
215+
timeZoneName = timeZoneName.asInstanceOf[js.Any]
216+
)
217+
.asInstanceOf[DateTimeFormatOptions]
209218
// format: on
210219
}
211220
}
212221

222+
@js.native
213223
trait NumberFormatOptions extends js.Object {
214224
val localeMatcher: js.UndefOr[String]
215225
val style: js.UndefOr[String]
@@ -287,18 +297,20 @@ object NumberFormatOptions {
287297
maximumFractionDigits: js.UndefOr[Double] = js.undefined,
288298
minimumSignificantDigits: js.UndefOr[Double] = js.undefined,
289299
maximumSignificantDigits: js.UndefOr[Double] = js.undefined
290-
): NumberFormatOptions = new NumberFormatOptions {
291-
override val localeMatcher: UndefOr[String] = localeMatcher
292-
override val style: UndefOr[String] = style
293-
override val currency: UndefOr[String] = currency
294-
override val currencyDisplay: UndefOr[String] = currencyDisplay
295-
override val useGrouping: UndefOr[Boolean] = useGrouping
296-
override val minimumIntegerDigits: UndefOr[Double] = minimumIntegerDigits
297-
override val minimumFractionDigits: UndefOr[Double] = minimumFractionDigits
298-
override val maximumFractionDigits: UndefOr[Double] = maximumFractionDigits
299-
override val minimumSignificantDigits: UndefOr[Double] =
300-
minimumSignificantDigits
301-
override val maximumSignificantDigits: UndefOr[Double] =
302-
maximumSignificantDigits
300+
): NumberFormatOptions = {
301+
js.Dynamic
302+
.literal(
303+
localeMatcher = localeMatcher.asInstanceOf[js.Any],
304+
style = style.asInstanceOf[js.Any],
305+
currency = currency.asInstanceOf[js.Any],
306+
currencyDisplay = currencyDisplay.asInstanceOf[js.Any],
307+
useGrouping = useGrouping.asInstanceOf[js.Any],
308+
minimumIntegerDigits = minimumIntegerDigits.asInstanceOf[js.Any],
309+
minimumFractionDigits = minimumFractionDigits.asInstanceOf[js.Any],
310+
maximumFractionDigits = maximumFractionDigits.asInstanceOf[js.Any],
311+
minimumSignificantDigits = minimumSignificantDigits.asInstanceOf[js.Any],
312+
maximumSignificantDigits = maximumSignificantDigits.asInstanceOf[js.Any]
313+
)
314+
.asInstanceOf[NumberFormatOptions]
303315
}
304316
}

0 commit comments

Comments
 (0)