@@ -1593,18 +1593,12 @@ const helperIndian = makeNonISOHelper([{ code: 'shaka', isoEpoch: { year: 79, mo
15931593 * ```
15941594 * */
15951595function adjustEras ( eras ) {
1596- if ( eras . length === 0 ) {
1597- throw new RangeErrorCtor ( 'Invalid era data: eras are required' ) ;
1598- }
1599- if ( eras . length === 1 && eras [ 0 ] . reverseOf ) {
1600- throw new RangeErrorCtor ( 'Invalid era data: anchor era cannot count years backwards' ) ;
1601- }
1602- if ( eras . length === 1 && ! eras [ 0 ] . code ) {
1603- throw new RangeErrorCtor ( 'Invalid era data: at least one named era is required' ) ;
1604- }
1605- if ( Call ( ArrayPrototypeFilter , eras , [ ( e ) => e . reverseOf != null ] ) . length > 1 ) {
1606- throw new RangeErrorCtor ( 'Invalid era data: only one era can count years backwards' ) ;
1607- }
1596+ // It's an internal error if the eras data are malformed
1597+ assert ( eras . length > 0 , 'Invalid era data: eras are required' ) ;
1598+ assert ( ! ( eras . length === 1 && eras [ 0 ] . reverseOf ) , 'Invalid era data: anchor era cannot count years backwards' ) ;
1599+ assert ( ! ( eras . length === 1 && ! eras [ 0 ] . code ) , 'Invalid era data: at least one named era is required' ) ;
1600+ const moreThanOneReverseOf = Call ( ArrayPrototypeFilter , eras , [ ( e ) => e . reverseOf != null ] ) . length > 1 ;
1601+ assert ( ! moreThanOneReverseOf , 'Invalid era data: only one era can count years backwards' ) ;
16081602
16091603 // Find the "anchor era" which is the era used for (era-less) `year`. Reversed
16101604 // eras can never be anchors. The era without an `anchorEpoch` property is the
@@ -1613,12 +1607,11 @@ function adjustEras(eras) {
16131607 Call ( ArrayPrototypeForEach , eras , [
16141608 ( e ) => {
16151609 if ( e . isAnchor || ( ! e . anchorEpoch && ! e . reverseOf ) ) {
1616- if ( anchorEra ) throw new RangeErrorCtor ( 'Invalid era data: cannot have multiple anchor eras' ) ;
1610+ assert ( ! anchorEra , 'Invalid era data: cannot have multiple anchor eras' ) ;
16171611 anchorEra = e ;
16181612 e . anchorEpoch = { year : e . hasYearZero ? 0 : 1 } ;
1619- } else if ( ! e . code ) {
1620- throw new RangeErrorCtor ( 'If era name is blank, it must be the anchor era' ) ;
16211613 }
1614+ assert ( e . code , 'Invalid era data: if era name is blank, it must be the anchor era' ) ;
16221615 }
16231616 ] ) ;
16241617
@@ -1636,9 +1629,7 @@ function adjustEras(eras) {
16361629 const { reverseOf } = e ;
16371630 if ( reverseOf ) {
16381631 const reversedEra = Call ( ArrayPrototypeFind , eras , [ ( era ) => era . code === reverseOf ] ) ;
1639- if ( reversedEra === undefined ) {
1640- throw new RangeErrorCtor ( `Invalid era data: unmatched reverseOf era: ${ reverseOf } ` ) ;
1641- }
1632+ assert ( reversedEra , `Invalid era data: unmatched reverseOf era: ${ reverseOf } ` ) ;
16421633 e . reverseOf = reversedEra ;
16431634 e . anchorEpoch = reversedEra . anchorEpoch ;
16441635 e . isoEpoch = reversedEra . isoEpoch ;
@@ -1655,7 +1646,7 @@ function adjustEras(eras) {
16551646 ( e1 , e2 ) => {
16561647 if ( e1 . reverseOf ) return 1 ;
16571648 if ( e2 . reverseOf ) return - 1 ;
1658- if ( ! e1 . isoEpoch || ! e2 . isoEpoch ) throw new RangeErrorCtor ( 'Invalid era data: missing ISO epoch' ) ;
1649+ assert ( e1 . isoEpoch && e2 . isoEpoch , 'Invalid era data: missing ISO epoch' ) ;
16591650 return e2 . isoEpoch . year - e1 . isoEpoch . year ;
16601651 }
16611652 ] ) ;
@@ -1664,9 +1655,7 @@ function adjustEras(eras) {
16641655 // being reversed.
16651656 const lastEraReversed = eras [ eras . length - 1 ] . reverseOf ;
16661657 if ( lastEraReversed ) {
1667- if ( lastEraReversed !== eras [ eras . length - 2 ] ) {
1668- throw new RangeErrorCtor ( 'Invalid era data: invalid reverse-sign era' ) ;
1669- }
1658+ assert ( lastEraReversed === eras [ eras . length - 2 ] , 'Invalid era data: invalid reverse-sign era' ) ;
16701659 }
16711660
16721661 // Finally, add a "genericName" property in the format "era{n} where `n` is
0 commit comments