| Conditions | 9 | 
| Paths | 8 | 
| Total Lines | 31 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 3 | ||
| Bugs | 0 | Features | 1 | 
| 1 | (function() { | 
            ||
| 3 |     addEventListener('message', (event => { | 
            ||
| 4 |       if ( event.data.id !== 'patterns' ) { | 
            ||
| 5 | return;  | 
            ||
| 6 | }  | 
            ||
| 7 | |||
| 8 |       const patterns = event.data.patterns || {}; | 
            ||
| 9 | |||
| 10 |       const js = {}; | 
            ||
| 11 | |||
| 12 |       for ( let appName in patterns ) { | 
            ||
| 13 |         if ( patterns.hasOwnProperty(appName) ) { | 
            ||
| 14 |           js[appName] = {}; | 
            ||
| 15 | |||
| 16 |           for ( let chain in patterns[appName] ) { | 
            ||
| 17 |             if ( patterns[appName].hasOwnProperty(chain) ) { | 
            ||
| 18 |               js[appName][chain] = {}; | 
            ||
| 19 | |||
| 20 |               for ( let index in patterns[appName][chain] ) { | 
            ||
| 21 | const value = detectJs(chain);  | 
            ||
| 22 | |||
| 23 |                 if ( value && patterns[appName][chain].hasOwnProperty(index) ) { | 
            ||
| 24 | js[appName][chain][index] = value;  | 
            ||
| 25 | }  | 
            ||
| 26 | }  | 
            ||
| 27 | }  | 
            ||
| 28 | }  | 
            ||
| 29 | }  | 
            ||
| 30 | }  | 
            ||
| 31 | |||
| 32 |       postMessage({ id: 'js', js }, '*'); | 
            ||
| 33 | }), false);  | 
            ||
| 34 |   } catch(e) { | 
            ||
| 62 |