|  | // 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. | 
|  |  | 
|  | // The following test are not part of the comformance. Just some output in | 
|  | // English to verify the format does return something reasonable for English. | 
|  | // It may be changed when we update the CLDR data. | 
|  | // NOTE: These are UNSPECIFIED behavior in | 
|  | // http://tc39.github.io/proposal-intl-list-time/ | 
|  |  | 
|  | let enLongConjunction = new Intl.ListFormat( | 
|  | ["en"], {style: "long", type: 'conjunction'}); | 
|  |  | 
|  | assertEquals('', enLongConjunction.format()); | 
|  | assertEquals('', enLongConjunction.format([])); | 
|  | assertEquals('a', enLongConjunction.format(['a'])); | 
|  | assertEquals('b', enLongConjunction.format(['b'])); | 
|  | assertEquals('a and b', enLongConjunction.format(['a', 'b'])); | 
|  | assertEquals('a, b, and c', enLongConjunction.format(['a', 'b', 'c'])); | 
|  | assertEquals('a, b, c, and d', enLongConjunction.format(['a', 'b', 'c', 'd'])); | 
|  | assertEquals('a, b, c, d, and and', | 
|  | enLongConjunction.format(['a', 'b', 'c', 'd', 'and'])); | 
|  |  | 
|  | let enLongDisjunction = new Intl.ListFormat( | 
|  | ["en"], {style: "long", type: 'disjunction'}); | 
|  |  | 
|  | assertEquals('', enLongDisjunction.format()); | 
|  | assertEquals('', enLongDisjunction.format([])); | 
|  | assertEquals('a', enLongDisjunction.format(['a'])); | 
|  | assertEquals('b', enLongDisjunction.format(['b'])); | 
|  | assertEquals('a or b', enLongDisjunction.format(['a', 'b'])); | 
|  | assertEquals('a, b, or c', enLongDisjunction.format(['a', 'b', 'c'])); | 
|  | assertEquals('a, b, c, or d', enLongDisjunction.format(['a', 'b', 'c', 'd'])); | 
|  | assertEquals('a, b, c, d, or or', | 
|  | enLongDisjunction.format(['a', 'b', 'c', 'd', 'or'])); | 
|  |  | 
|  | let enLongUnit = new Intl.ListFormat( | 
|  | ["en"], {style: "long", type: 'unit'}); | 
|  |  | 
|  | assertEquals('', enLongUnit.format()); | 
|  | assertEquals('', enLongUnit.format([])); | 
|  | assertEquals('a', enLongUnit.format(['a'])); | 
|  | assertEquals('b', enLongUnit.format(['b'])); | 
|  | assertEquals('a, b', enLongUnit.format(['a', 'b'])); | 
|  | assertEquals('a, b, c', enLongUnit.format(['a', 'b', 'c'])); | 
|  | assertEquals('a, b, c, d', enLongUnit.format(['a', 'b', 'c', 'd'])); | 
|  | assertEquals('a, b, c, d, or', enLongUnit.format(['a', 'b', 'c', 'd', 'or'])); | 
|  |  | 
|  | let enShortConjunction = new Intl.ListFormat( | 
|  | ["en"], {style: "short", type: 'conjunction'}); | 
|  |  | 
|  | assertEquals('', enShortConjunction.format()); | 
|  | assertEquals('', enShortConjunction.format([])); | 
|  | assertEquals('a', enShortConjunction.format(['a'])); | 
|  | assertEquals('b', enShortConjunction.format(['b'])); | 
|  | assertEquals('a & b', enShortConjunction.format(['a', 'b'])); | 
|  | assertEquals('a, b, & c', enShortConjunction.format(['a', 'b', 'c'])); | 
|  | assertEquals('a, b, c, & d', enShortConjunction.format(['a', 'b', 'c', 'd'])); | 
|  | assertEquals('a, b, c, d, & and', | 
|  | enShortConjunction.format(['a', 'b', 'c', 'd', 'and'])); | 
|  |  | 
|  | let enShortDisjunction = new Intl.ListFormat( | 
|  | ["en"], {style: "short", type: 'disjunction'}); | 
|  |  | 
|  | assertEquals('', enShortDisjunction.format()); | 
|  | assertEquals('', enShortDisjunction.format([])); | 
|  | assertEquals('a', enShortDisjunction.format(['a'])); | 
|  | assertEquals('b', enShortDisjunction.format(['b'])); | 
|  | assertEquals('a or b', enShortDisjunction.format(['a', 'b'])); | 
|  | assertEquals('a, b, or c', enShortDisjunction.format(['a', 'b', 'c'])); | 
|  | assertEquals('a, b, c, or d', enShortDisjunction.format(['a', 'b', 'c', 'd'])); | 
|  | assertEquals('a, b, c, d, or or', enShortDisjunction.format(['a', 'b', 'c', 'd', 'or'])); | 
|  |  | 
|  | let enShortUnit = new Intl.ListFormat( | 
|  | ["en"], {style: "short", type: 'unit'}); | 
|  |  | 
|  | assertEquals('', enShortUnit.format()); | 
|  | assertEquals('', enShortUnit.format([])); | 
|  | assertEquals('a', enShortUnit.format(['a'])); | 
|  | assertEquals('b', enShortUnit.format(['b'])); | 
|  | assertEquals('a, b', enShortUnit.format(['a', 'b'])); | 
|  | assertEquals('a, b, c', enShortUnit.format(['a', 'b', 'c'])); | 
|  | assertEquals('a, b, c, d', enShortUnit.format(['a', 'b', 'c', 'd'])); | 
|  | assertEquals('a, b, c, d, or', enShortUnit.format(['a', 'b', 'c', 'd', 'or'])); | 
|  |  | 
|  | let enNarrowUnit = new Intl.ListFormat( | 
|  | ["en"], {style: "narrow", type: 'unit'}); | 
|  |  | 
|  | assertEquals('', enNarrowUnit.format()); | 
|  | assertEquals('', enNarrowUnit.format([])); | 
|  | assertEquals('a', enNarrowUnit.format(['a'])); | 
|  | assertEquals('b', enNarrowUnit.format(['b'])); | 
|  | assertEquals('a b', enNarrowUnit.format(['a', 'b'])); | 
|  | assertEquals('a b c', enNarrowUnit.format(['a', 'b', 'c'])); | 
|  | assertEquals('a b c d', enNarrowUnit.format(['a', 'b', 'c', 'd'])); | 
|  | assertEquals('a b c d or', enNarrowUnit.format(['a', 'b', 'c', 'd', 'or'])); |