@@ -1090,9 +1090,6 @@ function logloads(loads) {
10901090 load . status = 'failed' ;
10911091 load . exception = exc ;
10921092
1093- loader . loaderObj . failed = loader . loaderObj . failed || [ ] ;
1094- loader . loaderObj . failed . push ( load ) ;
1095-
10961093 var linkSets = load . linkSets . concat ( [ ] ) ;
10971094 for ( var i = 0 , l = linkSets . length ; i < l ; i ++ )
10981095 linkSetFailed ( linkSets [ i ] , exc ) ;
@@ -1213,7 +1210,8 @@ function logloads(loads) {
12131210 var startingLoad = linkSet . loads [ 0 ] ;
12141211
12151212 // non-executing link variation for loader tracing
1216- // on the server
1213+ // on the server. Not in spec.
1214+ /***/
12171215 if ( linkSet . loader . loaderObj . execute === false ) {
12181216 var loads = [ ] . concat ( linkSet . loads ) ;
12191217 for ( var i = 0 ; i < loads . length ; i ++ ) {
@@ -1230,6 +1228,7 @@ function logloads(loads) {
12301228 }
12311229 return linkSet . resolve ( startingLoad ) ;
12321230 }
1231+ /***/
12331232
12341233 try {
12351234 link ( linkSet ) ;
@@ -1245,9 +1244,16 @@ function logloads(loads) {
12451244
12461245 // 15.2.5.2.4
12471246 function linkSetFailed ( linkSet , exc ) {
1247+ var loader = linkSet . loader ;
12481248 var loads = linkSet . loads . concat ( [ ] ) ;
12491249 for ( var i = 0 , l = loads . length ; i < l ; i ++ ) {
12501250 var load = loads [ i ] ;
1251+
1252+ // store all failed load records
1253+ loader . loaderObj . failed = loader . loaderObj . failed || [ ] ;
1254+ if ( loader . loaderObj . failed . indexOf ( load ) == - 1 )
1255+ loader . loaderObj . failed . push ( load ) ;
1256+
12511257 var linkIndex = indexOf . call ( load . linkSets , linkSet ) ;
12521258 console . assert ( linkIndex != - 1 , 'link not present' ) ;
12531259 load . linkSets . splice ( linkIndex , 1 ) ;
0 commit comments