_checkSystemColorScheme() {
		const window = this.document.defaultView;
		for ( const [ scheme, theme ] of Object.entries( systemThemes ) ) {
			let mql = window.matchMedia( `(prefers-color-scheme: ${scheme})` );
			if ( !mql.matches ) { continue; }
			let listener = e => {
				if ( e.matches ) { return; }
				mql.removeEventListener( "change", listener );
				mql = listener = null;
				this._checkSystemColorScheme();
			};
			mql.addEventListener( "change", listener );
			set( this, "systemTheme", theme );
			return;
		}
		// use the default theme if none actually matches (probably unnecessary)
		set( this, "systemTheme", systemThemes[ "no-preference" ] );
	}
Query registered color schemes until one matches and update the systemTheme property.
Add listener to matching query which re-checks color schemes once it doesn't match anymore.