third_party/es6-module-loader/loader.js
function ensureEvaluated(module, seen, loader) {
      if (module.evaluated || !module.dependencies)
        return;

      seen.push(module);

      var deps = module.dependencies;
      var err;

      for (var i = 0, l = deps.length; i < l; i++) {
        var dep = deps[i];
        if (indexOf.call(seen, dep) == -1) {
          err = ensureEvaluated(dep, seen, loader);
          // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996
          if (err)
            return err + '\n  in module ' + dep.name;
        }
      }

      if (module.failed)
        return new Error('Module failed execution.');

      if (module.evaluated)
        return;

      module.evaluated = true;
      err = doExecute(module);
      if (err)
        module.failed = true;
      
      // spec variation
      // we don't create a new module here because it was created and ammended
      // we just disable further extensions instead
      if (Object.preventExtensions)
        Object.preventExtensions(module.module);

      module.execute = undefined;
      return err;
    }
function ensureEvaluated(module, seen, loader) {
      if (module.evaluated || !module.dependencies)
        return;

      seen.push(module);

      var deps = module.dependencies;
      var err;

      for (var i = 0, l = deps.length; i < l; i++) {
        var dep = deps[i];
        if (indexOf.call(seen, dep) == -1) {
          err = ensureEvaluated(dep, seen, loader);
          // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996
          if (err)
            return err + '\n  in module ' + dep.name;
        }
      }

      if (module.failed)
        return new Error('Module failed execution.');

      if (module.evaluated)
        return;

      module.evaluated = true;
      err = doExecute(module);
      if (err)
        module.failed = true;
      
      // spec variation
      // we don't create a new module here because it was created and ammended
      // we just disable further extensions instead
      if (Object.preventExtensions)
        Object.preventExtensions(module.module);

      module.execute = undefined;
      return err;
    }
function ensureEvaluated ( module , seen , loader ) { if ( module . evaluated || ! module . dependencies ) return ; seen . push ( module ) ; var deps = module . dependencies ; var err ; for ( var i = 0 , l = deps . length ; i < l ; i ++ ) { var dep = deps [ i ] ; if ( indexOf . call ( seen , dep ) == - 1 ) { err = ensureEvaluated ( dep , seen , loader ) ; // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996 if ( err ) return err + '\n  in module ' + dep . name ; } } if ( module . failed ) return new Error ( 'Module failed execution.' ) ; if ( module . evaluated ) return ; module . evaluated = true ; err = doExecute ( module ) ; if ( err ) module . failed = true ; // spec variation // we don't create a new module here because it was created and ammended // we just disable further extensions instead if ( Object . preventExtensions ) Object . preventExtensions ( module . module ) ; module . execute = undefined ; return err ; }
15.2.6.2 EnsureEvaluated adjusted
15 . 2 . 6 . 2 EnsureEvaluated adjusted