@@ -2913,22 +2913,26 @@ bool _isFunctionSubtype(
29132913 String sName = _Utils .asString (_Utils .arrayAt (sNamed, sIndex));
29142914 sIndex += 3 ;
29152915 if (_Utils .stringLessThan (tName, sName)) return false ;
2916- bool sIsRequired = _Utils .asBool (_Utils .arrayAt (sNamed, sIndex - 2 ));
2916+ bool sIsRequired = ! JS_GET_FLAG ('LEGACY' ) &&
2917+ _Utils .asBool (_Utils .arrayAt (sNamed, sIndex - 2 ));
29172918 if (_Utils .stringLessThan (sName, tName)) {
29182919 if (sIsRequired) return false ;
29192920 continue ;
29202921 }
2921- bool tIsRequired = _Utils .asBool (_Utils .arrayAt (tNamed, tIndex + 1 ));
2922+ bool tIsRequired = ! JS_GET_FLAG ('LEGACY' ) &&
2923+ _Utils .asBool (_Utils .arrayAt (tNamed, tIndex + 1 ));
29222924 if (sIsRequired && ! tIsRequired) return false ;
29232925 Rti sType = _Utils .asRti (_Utils .arrayAt (sNamed, sIndex - 1 ));
29242926 Rti tType = _Utils .asRti (_Utils .arrayAt (tNamed, tIndex + 2 ));
29252927 if (! _isSubtype (universe, tType, tEnv, sType, sEnv)) return false ;
29262928 break ;
29272929 }
29282930 }
2929- while (sIndex < sNamedLength) {
2930- if (_Utils .asBool (_Utils .arrayAt (sNamed, sIndex + 1 ))) return false ;
2931- sIndex += 3 ;
2931+ if (! JS_GET_FLAG ('LEGACY' )) {
2932+ while (sIndex < sNamedLength) {
2933+ if (_Utils .asBool (_Utils .arrayAt (sNamed, sIndex + 1 ))) return false ;
2934+ sIndex += 3 ;
2935+ }
29322936 }
29332937 return true ;
29342938}
0 commit comments