@formatjs/ecma402-abstract
Version:
A collection of implementation for ECMAScript abstract operations
28 lines (27 loc) • 656 B
JavaScript
import Decimal from 'decimal.js';
import { ToPrimitive } from './262';
export function ToIntlMathematicalValue(input) {
var primValue = ToPrimitive(input, 'number');
if (typeof primValue === 'bigint') {
return new Decimal(primValue);
}
// IMPL
if (primValue === undefined) {
return new Decimal(NaN);
}
if (primValue === true) {
return new Decimal(1);
}
if (primValue === false) {
return new Decimal(0);
}
if (primValue === null) {
return new Decimal(0);
}
try {
return new Decimal(primValue);
}
catch (e) {
return new Decimal(NaN);
}
}