|  | // Copyright 2019 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. | 
|  |  | 
|  | // Flags: --harmony-intl-numberformat-unified | 
|  | // | 
|  | // Test the handling of "percent" w/ "unit" | 
|  |  | 
|  | let nf1 = new Intl.NumberFormat("en-US", { | 
|  | style: "percent", | 
|  | unitDisplay: "long"  // Read, but ignored. | 
|  | }); | 
|  |  | 
|  | let resolved1 = nf1.resolvedOptions(); | 
|  | assertEquals("percent", resolved1.style); | 
|  | assertEquals(undefined, resolved1.unit); | 
|  | assertEquals(undefined, resolved1.unitDisplay); | 
|  |  | 
|  | let parts1 = nf1.formatToParts(100); | 
|  | assertEquals(4, parts1.length); | 
|  | assertEquals("integer", parts1[0].type); | 
|  | assertEquals("10", parts1[0].value); | 
|  | assertEquals("group", parts1[1].type); | 
|  | assertEquals(",", parts1[1].value); | 
|  | assertEquals("integer", parts1[2].type); | 
|  | assertEquals("000", parts1[2].value); | 
|  | assertEquals("percentSign", parts1[3].type); | 
|  | assertEquals("%", parts1[3].value); | 
|  |  | 
|  | let nf2 = new Intl.NumberFormat("en-US", { | 
|  | style: "unit", | 
|  | unit: "percent", | 
|  | unitDisplay: "long"  // This is OK | 
|  | }); | 
|  |  | 
|  | let resolved2 = nf2.resolvedOptions(); | 
|  | assertEquals("unit", resolved2.style); | 
|  | assertEquals("percent", resolved2.unit); | 
|  | assertEquals("long", resolved2.unitDisplay); | 
|  |  | 
|  | let parts2 = nf2.formatToParts(100); | 
|  | assertEquals(3, parts2.length); | 
|  | assertEquals("integer", parts2[0].type); | 
|  | assertEquals("100", parts2[0].value); | 
|  | assertEquals("literal", parts2[1].type); | 
|  | assertEquals(" ", parts2[1].value); | 
|  | assertEquals("unit", parts2[2].type); | 
|  | assertEquals("percent", parts2[2].value); | 
|  |  | 
|  | let nf3 = new Intl.NumberFormat("en-US", { | 
|  | style: "unit", | 
|  | unit: "percent" | 
|  | }); | 
|  |  | 
|  | let resolved3 = nf3.resolvedOptions(); | 
|  | assertEquals("unit", resolved3.style); | 
|  | assertEquals("percent", resolved3.unit); | 
|  | assertEquals("short", resolved3.unitDisplay); | 
|  |  | 
|  | let parts3 = nf3.formatToParts(100); | 
|  | assertEquals(2, parts3.length); | 
|  | assertEquals("integer", parts3[0].type); | 
|  | assertEquals("100", parts3[0].value); | 
|  | assertEquals("unit", parts3[1].type); | 
|  | assertEquals("%", parts3[1].value); |