22 lines
661 B
JavaScript
22 lines
661 B
JavaScript
|
// Copyright 2018 the V8 project authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
const pr = new Intl.PluralRules();
|
||
|
const inputs = [undefined, null, true, false, 1, '', 'test', {}, { a: 1 }];
|
||
|
|
||
|
inputs.forEach(input => {
|
||
|
const number = Number(input);
|
||
|
const expected = pr.select(number);
|
||
|
const actual = pr.select(input);
|
||
|
assertEquals(actual, expected);
|
||
|
});
|
||
|
|
||
|
let count = 0;
|
||
|
const dummyObject = {};
|
||
|
dummyObject[Symbol.toPrimitive] = () => ++count;
|
||
|
assertEquals(pr.select(dummyObject), pr.select(count));
|
||
|
assertEquals(count, 1);
|
||
|
|
||
|
assertEquals(pr.select(0), pr.select(-0))
|