From fc3c713f41bd3a825ed15bee8e55721c1ee4e4fb Mon Sep 17 00:00:00 2001
From: Michael Kauzmann <michael.kauzmann@colorado.edu>
Date: Tue, 4 Apr 2023 08:50:29 -0600
Subject: [PATCH] gracefully support no queryParameter,
 https://github.com/phetsims/axon/issues/215

---
 js/TinyEmitter.ts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/js/TinyEmitter.ts b/js/TinyEmitter.ts
index 8897cb84..7f46b14d 100644
--- a/js/TinyEmitter.ts
+++ b/js/TinyEmitter.ts
@@ -17,7 +17,7 @@ import dotRandom from '../../dot/js/dotRandom.js';
 const listenerOrder = _.hasIn( window, 'phet.chipper.queryParameters' ) && phet.chipper.queryParameters.listenerOrder;
 
 let random: Random | null = null;
-if ( listenerOrder.startsWith( 'random' ) ) {
+if ( listenerOrder && listenerOrder.startsWith( 'random' ) ) {
 
   // NOTE: this regular expression must be maintained in initialize-globals as well.
   const match = listenerOrder.match( /random(?:%28|\()(\d+)(?:%29|\))/ );
@@ -98,7 +98,7 @@ export default class TinyEmitter<T extends TEmitterParameter[] = []> implements
 
     // Support for a query parameter that shuffles listeners, but bury behind assert so it will be stripped out on build
     // so it won't impact production performance.
-    if ( assert && ( listenerOrder !== 'default' ) && !this.hasListenerOrderDependencies ) {
+    if ( assert && listenerOrder && ( listenerOrder !== 'default' ) && !this.hasListenerOrderDependencies ) {
       const asArray = Array.from( this.listeners );
 
       const reorderedListeners = listenerOrder.startsWith( 'random' ) ? random!.shuffle( asArray ) : asArray.reverse();