node_modules/browser-pack-flat/index.js
// This happens primarily if the call is inside a function, or inside a conditional branch
This happens primarily if the call is inside a function, or inside a conditional branch
This happens primarily if the call is inside a function or inside a conditional branch
function isOrderUnpredictable (node) {
    while ((node = node.parent)) {
      if (node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression') {
        if (node.parent && node.parent.type === 'CallExpression' && node.parent.callee === node) {
          continue
        }
        if (node.parent && node.parent.type === 'MemberExpression' &&
            node.parent.object === node &&
            (node.parent.property.name === 'call' || node.parent.property.name === 'apply') &&
            node.parent.parent && node.parent.parent.type === 'CallExpression') {
          continue
        }
      }
      if (node.parent && node.parent.type === 'IfStatement' && node.parent.test === node) {
        node = node.parent
        continue
      }
      if (node.type === 'IfStatement' || 
          node.type === 'WhileStatement' || 
          node.type === 'ForStatement' || 
          node.type === 'ForInStatement' || 
          node.type === 'FunctionExpression' || 
          node.type === 'FunctionDeclaration' || 
          node.type === 'ArrowFunctionExpression' 
      ) {
        return true
      }
    }
    return false
  }
function isOrderUnpredictable ( node ) { while ( ( node = node . parent ) ) { if ( node . type === 'FunctionExpression' || node . type === 'ArrowFunctionExpression' ) { if ( node . parent && node . parent . type === 'CallExpression' && node . parent . callee === node ) { continue } if ( node . parent && node . parent . type === 'MemberExpression' && node . parent . object === node && ( node . parent . property . name === 'call' || node . parent . property . name === 'apply' ) && node . parent . parent && node . parent . parent . type === 'CallExpression' ) { continue } } if ( node . parent && node . parent . type === 'IfStatement' && node . parent . test === node ) { node = node . parent continue } if ( node . type === 'IfStatement' || node . type === 'WhileStatement' || node . type === 'ForStatement' || node . type === 'ForInStatement' || node . type === 'FunctionExpression' || node . type === 'FunctionDeclaration' || node . type === 'ArrowFunctionExpression' ) { return true } } return false }
This happens primarily if the call is inside a function, or inside a conditional branch
This happens primarily if the call is inside a function or inside a conditional branch
// Special-case for IIFE, behaviour is the same as evaluating inline // (() => {})() // (function(){}).call(null) // this form is added by browserify to inject globals // if(require('d')) is still in-order // the same is technically true for while(require()) and for(require();;) but those are more rare // Skip the IfStatement // if(false) require() // while(false) require() // for(;false;) require() // for(x in []) require() // setTimeout(function(){ require() }) // function neverCalled(){ require() } // setTimeout(()=> require())