mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-26 17:08:25 +00:00 
			
		
		
		
	Backport #34025 by wxiaoguang Fix #33407 Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
		
			
				
	
	
		
			35 lines
		
	
	
		
			997 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			997 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| try {
 | |
|   // some browsers like PaleMoon don't have full support for Intl.NumberFormat, so do the minimum polyfill to support "relative-time-element"
 | |
|   // https://repo.palemoon.org/MoonchildProductions/UXP/issues/2289
 | |
|   new Intl.NumberFormat('en', {style: 'unit', unit: 'minute'}).format(1);
 | |
| } catch {
 | |
|   const intlNumberFormat = Intl.NumberFormat;
 | |
|   // @ts-expect-error - polyfill is incomplete
 | |
|   Intl.NumberFormat = function(locales: string | string[], options: Intl.NumberFormatOptions) {
 | |
|     if (options.style === 'unit') {
 | |
|       return {
 | |
|         format(value: number | bigint | string) {
 | |
|           return ` ${value} ${options.unit}`;
 | |
|         },
 | |
|       };
 | |
|     }
 | |
|     return intlNumberFormat(locales, options);
 | |
|   };
 | |
| }
 | |
| 
 | |
| export function weakRefClass() {
 | |
|   const weakMap = new WeakMap();
 | |
|   return class {
 | |
|     constructor(target: any) {
 | |
|       weakMap.set(this, target);
 | |
|     }
 | |
|     deref() {
 | |
|       return weakMap.get(this);
 | |
|     }
 | |
|   };
 | |
| }
 | |
| 
 | |
| if (!window.WeakRef) {
 | |
|   window.WeakRef = weakRefClass() as any;
 | |
| }
 |