mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-04 13:44:29 +01:00 
			
		
		
		
	sourceRevisionAtLastExport: 33f2fb0e53d135f0ee17cfccd9d993eb2a6f47de targetRevisionAtLastExport: 31340cbd9add103f586d501b0c3354b7b182abc0
		
			
				
	
	
		
			122 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright 2016 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.
 | 
						|
 | 
						|
// No locale
 | 
						|
var collatorWithOptions = new Intl.Collator(undefined);
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag(%GetDefaultICULocale(), locale);
 | 
						|
assertEquals('sort', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
collatorWithOptions = new Intl.Collator(undefined, {usage: 'sort'});
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag(%GetDefaultICULocale(), locale);
 | 
						|
assertEquals('sort', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
collatorWithOptions = new Intl.Collator(undefined, {usage: 'search'});
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertEquals('search', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertLanguageTag(%GetDefaultICULocale(), locale);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
collatorWithOptions = new Intl.Collator(locale);
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag(%GetDefaultICULocale(), locale);
 | 
						|
assertEquals('sort', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
// With Locale
 | 
						|
collatorWithOptions = new Intl.Collator('en-US');
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag('en-US', locale);
 | 
						|
assertEquals('sort', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
collatorWithOptions = new Intl.Collator('en-US', {usage: 'sort'});
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag('en-US', locale);
 | 
						|
assertEquals('sort', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
collatorWithOptions = new Intl.Collator('en-US', {usage: 'search'});
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertEquals('search', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertLanguageTag('en-US', locale);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
// With invalid collation value = 'search'
 | 
						|
collatorWithOptions = new Intl.Collator('en-US-u-co-search');
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag('en-US', locale);
 | 
						|
assertEquals('sort', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
collatorWithOptions = new Intl.Collator('en-US-u-co-search', {usage: 'sort'});
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag('en-US', locale);
 | 
						|
assertEquals('sort', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
collatorWithOptions = new Intl.Collator('en-US-u-co-search', {usage: 'search'});
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag('en-US', locale);
 | 
						|
assertEquals('search', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
// With invalid collation value = 'standard'
 | 
						|
collatorWithOptions = new Intl.Collator('en-US-u-co-standard');
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag('en-US', locale);
 | 
						|
assertEquals('sort', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
collatorWithOptions = new Intl.Collator('en-US-u-co-standard', {usage: 'sort'});
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag('en-US', locale);
 | 
						|
assertEquals('sort', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
collatorWithOptions = new Intl.Collator('en-US-u-co-standard', {usage: 'search'});
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag('en-US', locale);
 | 
						|
assertEquals('search', usage);
 | 
						|
assertEquals('default', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
// With valid collation value = 'emoji'
 | 
						|
collatorWithOptions = new Intl.Collator('en-US-u-co-emoji');
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag('en-US', locale);
 | 
						|
assertEquals('sort', usage);
 | 
						|
assertEquals('emoji', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
collatorWithOptions = new Intl.Collator('en-US-u-co-emoji', {usage: 'sort'});
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag('en-US', locale);
 | 
						|
assertEquals('sort', usage);
 | 
						|
assertEquals('emoji', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 | 
						|
 | 
						|
collatorWithOptions = new Intl.Collator('en-US-u-co-emoji', {usage: 'search'});
 | 
						|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
 | 
						|
assertLanguageTag('en-US', locale);
 | 
						|
assertEquals('search', usage);
 | 
						|
// usage = search overwrites emoji as a collation value.
 | 
						|
assertEquals('default', collation);
 | 
						|
assertEquals(locale.indexOf('-co-search'), -1);
 |