Skip to content

Commit 78dda2a

Browse files
fix(mf2): Call valueOf() from option value utility getters
1 parent a7292f9 commit 78dda2a

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

mf2/messageformat/src/functions/utils.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export { getLocaleDir } from '../dir-utils.js';
1010
* @beta
1111
*/
1212
export function asBoolean(value: unknown): boolean {
13-
if (value instanceof Boolean) value = value.valueOf();
13+
if (value && typeof value === 'object') value = value.valueOf();
1414
if (typeof value === 'boolean') return value;
1515
if (value && typeof value === 'object') value = String(value);
1616
if (value === 'true') return true;
@@ -28,8 +28,8 @@ export function asBoolean(value: unknown): boolean {
2828
* @beta
2929
*/
3030
export function asPositiveInteger(value: unknown): number {
31-
if (value instanceof Number) value = Number(value);
32-
if (typeof value === 'object' && value) value = String(value);
31+
if (value && typeof value === 'object') value = value.valueOf();
32+
if (value && typeof value === 'object') value = String(value);
3333
if (typeof value === 'string' && /^(0|[1-9][0-9]*)$/.test(value)) {
3434
value = Number(value);
3535
}
@@ -48,6 +48,7 @@ export function asPositiveInteger(value: unknown): number {
4848
* @beta
4949
*/
5050
export function asString(value: unknown): string {
51+
if (value && typeof value === 'object') value = value.valueOf();
5152
if (typeof value === 'string') return value;
5253
if (value && typeof value === 'object') return String(value);
5354
throw new RangeError('Not a string');

0 commit comments

Comments
 (0)