summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Intl/fallback-symbol.js
blob: 87943257ce552b74890e140170aecfcc938b7ae2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// |reftest| skip-if(!this.hasOwnProperty('Intl'))

function IntlFallbackSymbol(constructor) {
    return Object.getOwnPropertySymbols(constructor.call(Object.create(constructor.prototype)))[0];
}

const dateTimeFormatIntlFallbackSymbol = IntlFallbackSymbol(Intl.DateTimeFormat);
const numberFormatIntlFallbackSymbol = IntlFallbackSymbol(Intl.NumberFormat);

// Intl.DateTimeFormat and Intl.NumberFormat both use the same fallback symbol.
assertEq(dateTimeFormatIntlFallbackSymbol, numberFormatIntlFallbackSymbol);

const intlFallbackSymbol = dateTimeFormatIntlFallbackSymbol;

// The fallback symbol is a Symbol value.
assertEq(typeof intlFallbackSymbol, "symbol");

// Test the description of the fallback symbol.
assertEq(Symbol.prototype.toString.call(intlFallbackSymbol), "Symbol(IntlLegacyConstructedSymbol)");

if (typeof reportCompare === "function")
    reportCompare(true, true);