@@ -1340,6 +1340,18 @@ ClazzLoader.tryToLoadNext = function (file) {
1340
1340
ClazzLoader . updateNode ( n ) ;
1341
1341
lastNode = n ;
1342
1342
}
1343
+ var dList = [ ] ;
1344
+ while ( ( n = ClazzLoader . findNextMustClass ( ClazzLoader . clazzTreeRoot , ClazzNode . STATUS_DECLARED ) ) != null ) {
1345
+ dList [ dList . length ] = n ;
1346
+ n . status = ClazzNode . STATUS_OPTIONALS_LOADED ;
1347
+ }
1348
+ while ( ( n = ClazzLoader . findNextOptionalClass ( ClazzNode . STATUS_DECLARED ) ) != null ) {
1349
+ dList [ dList . length ] = n ;
1350
+ n . status = ClazzNode . STATUS_OPTIONALS_LOADED ;
1351
+ }
1352
+ for ( var i = 0 ; i < dList . length ; i ++ ) {
1353
+ ClazzLoader . updateNode ( dList [ i ] ) ;
1354
+ }
1343
1355
1344
1356
/*
1345
1357
* It seems ClazzLoader#globalLoaded is seldom overrided.
@@ -1657,7 +1669,8 @@ ClazzLoader.findNextMustClass = function (node, status) {
1657
1669
var n = node . musts [ i ] ;
1658
1670
if ( n . status == status && ( status != ClazzNode . STATUS_KNOWN
1659
1671
|| ClazzLoader . loadedScripts [ n . path ] != true )
1660
- && ! ClazzLoader . isClassDefined ( n . name ) ) {
1672
+ && ( status == ClazzNode . STATUS_DECLARED
1673
+ || ! ClazzLoader . isClassDefined ( n . name ) ) ) {
1661
1674
return n ;
1662
1675
} else {
1663
1676
var nn = ClazzLoader . findNextMustClass ( n , status ) ;
@@ -1669,7 +1682,8 @@ ClazzLoader.findNextMustClass = function (node, status) {
1669
1682
}
1670
1683
if ( node . status == status && ( status != ClazzNode . STATUS_KNOWN
1671
1684
|| ClazzLoader . loadedScripts [ node . path ] != true )
1672
- && ! ClazzLoader . isClassDefined ( node . name ) ) {
1685
+ && ( status == ClazzNode . STATUS_DECLARED
1686
+ || ! ClazzLoader . isClassDefined ( node . name ) ) ) {
1673
1687
return node ;
1674
1688
}
1675
1689
}
@@ -1711,7 +1725,8 @@ ClazzLoader.findNodeNextOptionalClass = function (node, status) {
1711
1725
var n = ClazzLoader . searchClassArray ( node . musts , rnd , status ) ;
1712
1726
if ( n != null && ( status != ClazzNode . STATUS_KNOWN
1713
1727
|| ClazzLoader . loadedScripts [ n . path ] != true )
1714
- && ! ClazzLoader . isClassDefined ( n . name ) ) {
1728
+ && ( status == ClazzNode . STATUS_DECLARED
1729
+ || ! ClazzLoader . isClassDefined ( n . name ) ) ) {
1715
1730
return n ;
1716
1731
}
1717
1732
}
@@ -1720,14 +1735,16 @@ ClazzLoader.findNodeNextOptionalClass = function (node, status) {
1720
1735
var n = ClazzLoader . searchClassArray ( node . optionals , rnd , status ) ;
1721
1736
if ( n != null && ( status != ClazzNode . STATUS_KNOWN
1722
1737
|| ClazzLoader . loadedScripts [ n . path ] != true )
1723
- && ! ClazzLoader . isClassDefined ( n . name ) ) {
1738
+ && ( status == ClazzNode . STATUS_DECLARED
1739
+ || ! ClazzLoader . isClassDefined ( n . name ) ) ) {
1724
1740
return n ;
1725
1741
}
1726
1742
}
1727
1743
// search itself
1728
1744
if ( node . status == status && ( status != ClazzNode . STATUS_KNOWN
1729
1745
|| ClazzLoader . loadedScripts [ node . path ] != true )
1730
- && ! ClazzLoader . isClassDefined ( node . name ) ) {
1746
+ && ( status == ClazzNode . STATUS_DECLARED
1747
+ || ! ClazzLoader . isClassDefined ( node . name ) ) ) {
1731
1748
return node ;
1732
1749
}
1733
1750
return null ;
@@ -1739,7 +1756,8 @@ ClazzLoader.searchClassArray = function (arr, rnd, status) {
1739
1756
var n = arr [ i ] ;
1740
1757
if ( n . status == status && ( status != ClazzNode . STATUS_KNOWN
1741
1758
|| ClazzLoader . loadedScripts [ n . path ] != true )
1742
- && ! ClazzLoader . isClassDefined ( n . name ) ) {
1759
+ && ( status == ClazzNode . STATUS_DECLARED
1760
+ || ! ClazzLoader . isClassDefined ( n . name ) ) ) {
1743
1761
return n ;
1744
1762
} else {
1745
1763
if ( n . random == rnd ) {
0 commit comments